Bulk sending, policy interpreting improvements, room upgrade builder work
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
}
|