From 51ff4a3b95ab38dd46c88f4e5482bf78449bb88c Mon Sep 17 00:00:00 2001 From: Rory& Date: Fri, 9 May 2025 07:09:57 +0200 Subject: msc4222 fixes --- LibMatrix/Helpers/SyncProcessors/Msc4222EmulationSyncProcessor.cs | 6 ++++++ LibMatrix/Helpers/SyncProcessors/SimpleSyncProcessors.cs | 4 ++++ 2 files changed, 10 insertions(+) (limited to 'LibMatrix') diff --git a/LibMatrix/Helpers/SyncProcessors/Msc4222EmulationSyncProcessor.cs b/LibMatrix/Helpers/SyncProcessors/Msc4222EmulationSyncProcessor.cs index 9baeaa4..6cb42ca 100644 --- a/LibMatrix/Helpers/SyncProcessors/Msc4222EmulationSyncProcessor.cs +++ b/LibMatrix/Helpers/SyncProcessors/Msc4222EmulationSyncProcessor.cs @@ -26,6 +26,12 @@ public class Msc4222EmulationSyncProcessor(AuthenticatedHomeserverGeneric homese return resp; } + resp = await EmulateMsc4222Internal(resp, sw); + + return SimpleSyncProcessors.FillRoomIds(resp); + } + + private async Task EmulateMsc4222Internal(SyncResponse? resp, Stopwatch sw) { var modified = false; List> tasks = []; if (resp.Rooms is { Join.Count: > 0 }) { diff --git a/LibMatrix/Helpers/SyncProcessors/SimpleSyncProcessors.cs b/LibMatrix/Helpers/SyncProcessors/SimpleSyncProcessors.cs index 5cf5c36..5981cb5 100644 --- a/LibMatrix/Helpers/SyncProcessors/SimpleSyncProcessors.cs +++ b/LibMatrix/Helpers/SyncProcessors/SimpleSyncProcessors.cs @@ -18,6 +18,8 @@ public class SimpleSyncProcessors { Parallel.ForEach(data.Timeline.Events, evt => evt.RoomId = id); if (data.State is { Events.Count: > 0 }) Parallel.ForEach(data.State.Events, evt => evt.RoomId = id); + if (data.StateAfter is { Events.Count: > 0 }) + Parallel.ForEach(data.StateAfter.Events, evt => evt.RoomId = id); }); if (resp.Rooms.Leave is { Count: > 0 }) Parallel.ForEach(resp.Rooms.Leave, (roomEntry) => { @@ -28,6 +30,8 @@ public class SimpleSyncProcessors { Parallel.ForEach(data.Timeline.Events, evt => evt.RoomId = id); if (data.State is { Events.Count: > 0 }) Parallel.ForEach(data.State.Events, evt => evt.RoomId = id); + if (data.StateAfter is { Events.Count: > 0 }) + Parallel.ForEach(data.StateAfter.Events, evt => evt.RoomId = id); }); if (resp.Rooms.Invite is { Count: > 0 }) Parallel.ForEach(resp.Rooms.Invite, (roomEntry) => { -- cgit 1.5.1