From cf90f02e1f9c9f7d037976cace2b9c49119c741c Mon Sep 17 00:00:00 2001 From: Rory& Date: Thu, 30 May 2024 19:07:09 +0000 Subject: Start implementing new event system --- LibMatrix/Filters/MatrixFilter.cs | 87 +++++++++++++++++++++++++++++++++++++++ LibMatrix/Filters/SyncFilter.cs | 87 --------------------------------------- 2 files changed, 87 insertions(+), 87 deletions(-) create mode 100644 LibMatrix/Filters/MatrixFilter.cs delete mode 100644 LibMatrix/Filters/SyncFilter.cs (limited to 'LibMatrix/Filters') diff --git a/LibMatrix/Filters/MatrixFilter.cs b/LibMatrix/Filters/MatrixFilter.cs new file mode 100644 index 0000000..08dc2fc --- /dev/null +++ b/LibMatrix/Filters/MatrixFilter.cs @@ -0,0 +1,87 @@ +using System.Text.Json.Serialization; + +namespace LibMatrix.Filters; + +public class MatrixFilter { + [JsonPropertyName("account_data")] + public EventFilter? AccountData { get; set; } + + [JsonPropertyName("presence")] + public EventFilter? Presence { get; set; } + + [JsonPropertyName("room")] + public RoomFilter? Room { get; set; } + + public class RoomFilter { + [JsonPropertyName("account_data")] + public StateFilter? AccountData { get; set; } + + [JsonPropertyName("ephemeral")] + public StateFilter? Ephemeral { get; set; } + + [JsonPropertyName("state")] + public StateFilter? State { get; set; } + + [JsonPropertyName("timeline")] + public StateFilter? Timeline { get; set; } + + [JsonPropertyName("rooms")] + public List? Rooms { get; set; } + + [JsonPropertyName("not_rooms")] + public List? NotRooms { get; set; } + + [JsonPropertyName("include_leave")] + public bool? IncludeLeave { get; set; } + + public class StateFilter( + bool? containsUrl = null, + bool? includeRedundantMembers = null, + bool? lazyLoadMembers = null, + List? rooms = null, + List? notRooms = null, + bool? unreadThreadNotifications = null, + //base ctor + int? limit = null, + List? types = null, + List? notTypes = null, + List? senders = null, + List? notSenders = null + ) : EventFilter(limit, types, notTypes, senders, notSenders) { + [JsonPropertyName("contains_url")] + public bool? ContainsUrl { get; set; } = containsUrl; + + [JsonPropertyName("include_redundant_members")] + public bool? IncludeRedundantMembers { get; set; } = includeRedundantMembers; + + [JsonPropertyName("lazy_load_members")] + public bool? LazyLoadMembers { get; set; } = lazyLoadMembers; + + [JsonPropertyName("rooms")] + public List? Rooms { get; set; } = rooms; + + [JsonPropertyName("not_rooms")] + public List? NotRooms { get; set; } = notRooms; + + [JsonPropertyName("unread_thread_notifications")] + public bool? UnreadThreadNotifications { get; set; } = unreadThreadNotifications; + } + } + + public class EventFilter(int? limit = null, List? types = null, List? notTypes = null, List? senders = null, List? notSenders = null) { + [JsonPropertyName("limit")] + public int? Limit { get; set; } = limit; + + [JsonPropertyName("types")] + public List? Types { get; set; } = types; + + [JsonPropertyName("not_types")] + public List? NotTypes { get; set; } = notTypes; + + [JsonPropertyName("senders")] + public List? Senders { get; set; } = senders; + + [JsonPropertyName("not_senders")] + public List? NotSenders { get; set; } = notSenders; + } +} \ No newline at end of file diff --git a/LibMatrix/Filters/SyncFilter.cs b/LibMatrix/Filters/SyncFilter.cs deleted file mode 100644 index 787ffa7..0000000 --- a/LibMatrix/Filters/SyncFilter.cs +++ /dev/null @@ -1,87 +0,0 @@ -using System.Text.Json.Serialization; - -namespace LibMatrix.Filters; - -public class SyncFilter { - [JsonPropertyName("account_data")] - public EventFilter? AccountData { get; set; } - - [JsonPropertyName("presence")] - public EventFilter? Presence { get; set; } - - [JsonPropertyName("room")] - public RoomFilter? Room { get; set; } - - public class RoomFilter { - [JsonPropertyName("account_data")] - public StateFilter? AccountData { get; set; } - - [JsonPropertyName("ephemeral")] - public StateFilter? Ephemeral { get; set; } - - [JsonPropertyName("state")] - public StateFilter? State { get; set; } - - [JsonPropertyName("timeline")] - public StateFilter? Timeline { get; set; } - - [JsonPropertyName("rooms")] - public List? Rooms { get; set; } - - [JsonPropertyName("not_rooms")] - public List? NotRooms { get; set; } - - [JsonPropertyName("include_leave")] - public bool? IncludeLeave { get; set; } - - public class StateFilter( - bool? containsUrl = null, - bool? includeRedundantMembers = null, - bool? lazyLoadMembers = null, - List? rooms = null, - List? notRooms = null, - bool? unreadThreadNotifications = null, - //base ctor - int? limit = null, - List? types = null, - List? notTypes = null, - List? senders = null, - List? notSenders = null - ) : EventFilter(limit, types, notTypes, senders, notSenders) { - [JsonPropertyName("contains_url")] - public bool? ContainsUrl { get; set; } = containsUrl; - - [JsonPropertyName("include_redundant_members")] - public bool? IncludeRedundantMembers { get; set; } = includeRedundantMembers; - - [JsonPropertyName("lazy_load_members")] - public bool? LazyLoadMembers { get; set; } = lazyLoadMembers; - - [JsonPropertyName("rooms")] - public List? Rooms { get; set; } = rooms; - - [JsonPropertyName("not_rooms")] - public List? NotRooms { get; set; } = notRooms; - - [JsonPropertyName("unread_thread_notifications")] - public bool? UnreadThreadNotifications { get; set; } = unreadThreadNotifications; - } - } - - public class EventFilter(int? limit = null, List? types = null, List? notTypes = null, List? senders = null, List? notSenders = null) { - [JsonPropertyName("limit")] - public int? Limit { get; set; } = limit; - - [JsonPropertyName("types")] - public List? Types { get; set; } = types; - - [JsonPropertyName("not_types")] - public List? NotTypes { get; set; } = notTypes; - - [JsonPropertyName("senders")] - public List? Senders { get; set; } = senders; - - [JsonPropertyName("not_senders")] - public List? NotSenders { get; set; } = notSenders; - } -} \ No newline at end of file -- cgit 1.5.1