From c7b7dbe3d929d787fe0c76015082a117c4222278 Mon Sep 17 00:00:00 2001 From: "Emma [it/its]@Rory&" Date: Fri, 23 Feb 2024 12:33:45 +0100 Subject: Unknown changes --- LibMatrix/Utilities/CommonSyncFilters.cs | 47 +++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 13 deletions(-) (limited to 'LibMatrix/Utilities') diff --git a/LibMatrix/Utilities/CommonSyncFilters.cs b/LibMatrix/Utilities/CommonSyncFilters.cs index 8e727be..bf8b987 100644 --- a/LibMatrix/Utilities/CommonSyncFilters.cs +++ b/LibMatrix/Utilities/CommonSyncFilters.cs @@ -1,5 +1,7 @@ using System.Collections.Frozen; +using LibMatrix.EventTypes.Common; using LibMatrix.EventTypes.Spec.State; +using LibMatrix.EventTypes.Spec.State.RoomInfo; using LibMatrix.Filters; namespace LibMatrix.Utilities; @@ -9,15 +11,16 @@ public static class CommonSyncFilters { public const string GetAccountDataWithRooms = "gay.rory.libmatrix.get_account_data_with_rooms.v0"; public const string GetBasicRoomInfo = "gay.rory.matrixutils.get_basic_room_info.v0"; public const string GetSpaceRelations = "gay.rory.matrixutils.get_space_relations.v0"; + public const string GetOwnMemberEvents = "gay.rory.matrixutils.get_own_member_events.v0"; - public static readonly SyncFilter GetAccountDataFilter = new() { + public static SyncFilter GetAccountDataFilter => new() { Presence = new SyncFilter.EventFilter(notTypes: ["*"]), Room = new SyncFilter.RoomFilter() { Rooms = [] } }; - public static readonly SyncFilter GetAccountDataWithRoomsFilter = new() { + public static SyncFilter GetAccountDataWithRoomsFilter => new() { Presence = new SyncFilter.EventFilter(notTypes: ["*"]), Room = new SyncFilter.RoomFilter() { State = new SyncFilter.RoomFilter.StateFilter(notTypes: ["*"]), @@ -26,7 +29,7 @@ public static class CommonSyncFilters { } }; - public static readonly SyncFilter GetBasicRoomDataFilter = new() { + public static SyncFilter GetBasicRoomDataFilter => new() { AccountData = new SyncFilter.EventFilter(notTypes: ["*"], limit: 1), Presence = new SyncFilter.EventFilter(notTypes: ["*"], limit: 1), Room = new SyncFilter.RoomFilter { @@ -34,11 +37,11 @@ public static class CommonSyncFilters { Ephemeral = new SyncFilter.RoomFilter.StateFilter(rooms: []), State = new SyncFilter.RoomFilter.StateFilter { Types = new List { - "m.room.create", - "m.room.name", - "m.room.avatar", - "org.matrix.mjolnir.shortcode", - "m.room.power_levels" + RoomCreateEventContent.EventId, + RoomNameEventContent.EventId, + RoomAvatarEventContent.EventId, + MjolnirShortcodeEventContent.EventId, + RoomPowerLevelEventContent.EventId }, LazyLoadMembers = true, IncludeRedundantMembers = false }, @@ -46,7 +49,7 @@ public static class CommonSyncFilters { } }; - public static readonly SyncFilter GetSpaceRelationsFilter = new() { + public static SyncFilter GetSpaceRelationsFilter => new() { AccountData = new SyncFilter.EventFilter(notTypes: ["*"], limit: 1), Presence = new SyncFilter.EventFilter(notTypes: ["*"], limit: 1), Room = new SyncFilter.RoomFilter { @@ -54,8 +57,8 @@ public static class CommonSyncFilters { Ephemeral = new SyncFilter.RoomFilter.StateFilter(rooms: []), State = new SyncFilter.RoomFilter.StateFilter { Types = new List { - "m.space.child", - "m.space.parent" + SpaceChildEventContent.EventId, + SpaceParentEventContent.EventId }, LazyLoadMembers = true, IncludeRedundantMembers = false }, @@ -63,11 +66,29 @@ public static class CommonSyncFilters { } }; + public static SyncFilter GetOwnMemberEventsFilter => new() { + AccountData = new SyncFilter.EventFilter(types: ["m.room.member"], limit: 1), + Presence = new SyncFilter.EventFilter(notTypes: ["*"], limit: 1), + Room = new SyncFilter.RoomFilter { + AccountData = new SyncFilter.RoomFilter.StateFilter(rooms: []), + Ephemeral = new SyncFilter.RoomFilter.StateFilter(rooms: []), + State = new SyncFilter.RoomFilter.StateFilter { + Types = new List { + RoomMemberEventContent.EventId + }, + LazyLoadMembers = true, IncludeRedundantMembers = false, + Senders = ["@me"] + }, + Timeline = new SyncFilter.RoomFilter.StateFilter(rooms: []) + } + }; + // This must be down here, due to statics load order - public static readonly FrozenDictionary FilterMap = new Dictionary() { + public static FrozenDictionary FilterMap => new Dictionary() { [GetAccountData] = GetAccountDataFilter, [GetAccountDataWithRooms] = GetAccountDataWithRoomsFilter, [GetBasicRoomInfo] = GetBasicRoomDataFilter, - [GetSpaceRelations] = GetSpaceRelationsFilter + [GetSpaceRelations] = GetSpaceRelationsFilter, + [GetOwnMemberEvents] = GetOwnMemberEventsFilter }.ToFrozenDictionary(); } \ No newline at end of file -- cgit 1.4.1