about summary refs log tree commit diff
path: root/LibMatrix/Helpers/RoomUpgradeBuilder.cs
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-08-22 17:36:27 +0200
committerRory& <root@rory.gay>2025-08-22 17:36:27 +0200
commit013f1693885a5de01ae357af2909589e925863d5 (patch)
treeb506dfd0eacdd1e25159141478b643e4da04ab38 /LibMatrix/Helpers/RoomUpgradeBuilder.cs
parentSome cleanup, further room builder work (diff)
downloadLibMatrix-013f1693885a5de01ae357af2909589e925863d5.tar.xz
Bulk sending, policy interpreting improvements, room upgrade builder work
Diffstat (limited to 'LibMatrix/Helpers/RoomUpgradeBuilder.cs')
-rw-r--r--LibMatrix/Helpers/RoomUpgradeBuilder.cs15
1 files changed, 14 insertions, 1 deletions
diff --git a/LibMatrix/Helpers/RoomUpgradeBuilder.cs b/LibMatrix/Helpers/RoomUpgradeBuilder.cs

index 8eaf9b8..85a5e36 100644 --- a/LibMatrix/Helpers/RoomUpgradeBuilder.cs +++ b/LibMatrix/Helpers/RoomUpgradeBuilder.cs
@@ -143,6 +143,18 @@ public class RoomUpgradeBuilder : RoomBuilder { public override async Task<GenericRoom> Create(AuthenticatedHomeserverGeneric homeserver) { var oldRoom = homeserver.GetRoom(OldRoomId); + // set the previous room relation + AdditionalCreationContent["predecessor"] = new { + room_id = OldRoomId, + // event_id = (await oldRoom.GetMessagesAsync(limit: 1)).Chunk.Last().EventId + }; + + if (UpgradeOptions.NoopUpgrade) { + AliasLocalPart = null; + CanonicalAlias = new(); + return await base.Create(homeserver); + } + // prepare old room first... if (!string.IsNullOrWhiteSpace(AliasLocalPart)) { var aliasResult = await homeserver.ResolveRoomAliasAsync($"#{AliasLocalPart}:{homeserver.ServerName}"); @@ -185,6 +197,7 @@ public class RoomUpgradeBuilder : RoomBuilder { public bool MigrateEmptyStateEvents { get; set; } public bool UpgradeUnstableValues { get; set; } public bool ForceUpgrade { get; set; } + public bool NoopUpgrade { get; set; } public Msc4321PolicyListUpgradeOptions Msc4321PolicyListUpgradeOptions { get; set; } = new(); [JsonIgnore] @@ -211,7 +224,7 @@ public class RoomUpgradeBuilder : RoomBuilder { Move, /// <summary> - /// Don't copy policies + /// Don't copy policies, watch both lists /// </summary> Transition }