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 --- .../Homeservers/AuthenticatedHomeserverGeneric.cs | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs') diff --git a/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs b/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs index 02f3e3a..1c93235 100644 --- a/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs +++ b/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs @@ -295,6 +295,27 @@ public class AuthenticatedHomeserverGeneric(string serverName, string accessToke } public async Task UploadFilterAsync(SyncFilter filter) { + List?> senderLists = [ + filter.AccountData?.Senders, + filter.AccountData?.NotSenders, + filter.Presence?.Senders, + filter.Presence?.NotSenders, + filter.Room?.AccountData?.Senders, + filter.Room?.AccountData?.NotSenders, + filter.Room?.Ephemeral?.Senders, + filter.Room?.Ephemeral?.NotSenders, + filter.Room?.State?.Senders, + filter.Room?.State?.NotSenders, + filter.Room?.Timeline?.Senders, + filter.Room?.Timeline?.NotSenders + ]; + + foreach (var list in senderLists) + if (list is { Count: > 0 } && list.Contains("@me")) { + list.Remove("@me"); + list.Add(UserId); + } + var resp = await ClientHttpClient.PostAsJsonAsync("/_matrix/client/v3/user/" + UserId + "/filter", filter); return await resp.Content.ReadFromJsonAsync() ?? throw new Exception("Failed to upload filter?"); } @@ -327,8 +348,7 @@ public class AuthenticatedHomeserverGeneric(string serverName, string accessToke /// Filter ID response /// public async Task UploadNamedFilterAsync(string filterName, SyncFilter filter) { - var resp = await ClientHttpClient.PostAsJsonAsync("/_matrix/client/v3/user/" + UserId + "/filter", filter); - var idResp = await resp.Content.ReadFromJsonAsync() ?? throw new Exception("Failed to upload filter?"); + var idResp = await UploadFilterAsync(filter); var filterList = await GetNamedFilterListOrNullAsync() ?? new Dictionary(); filterList[filterName] = idResp.FilterId; -- cgit 1.4.1