From f4657d2b522b19fd32f0fd0a55944c770bfecb84 Mon Sep 17 00:00:00 2001 From: Rory& Date: Fri, 18 Apr 2025 00:13:22 +0200 Subject: Add join room debug tool, finish room state resync --- MatrixUtils.Web/Pages/Tools/Debug/JoinRoom.razor | 59 +++++++++++++++++++++++ MatrixUtils.Web/Pages/Tools/Debug/LeaveRoom.razor | 2 +- MatrixUtils.Web/Pages/Tools/Index.razor | 1 + 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 MatrixUtils.Web/Pages/Tools/Debug/JoinRoom.razor (limited to 'MatrixUtils.Web/Pages/Tools') diff --git a/MatrixUtils.Web/Pages/Tools/Debug/JoinRoom.razor b/MatrixUtils.Web/Pages/Tools/Debug/JoinRoom.razor new file mode 100644 index 0000000..319c9e7 --- /dev/null +++ b/MatrixUtils.Web/Pages/Tools/Debug/JoinRoom.razor @@ -0,0 +1,59 @@ +@page "/Tools/Debug/JoinRoom" +@using System.Collections.ObjectModel +

Join room

+
+Room ID: + +
+Via server: + +
+Join +

+@foreach (var line in Log) { +
@line
+
+} + +@code { + AuthenticatedHomeserverGeneric? hs { get; set; } + ObservableCollection Log { get; set; } = new ObservableCollection(); + + [Parameter, SupplyParameterFromQuery(Name = "roomId")] + public string? RoomId { get; set; } + + [Parameter, SupplyParameterFromQuery(Name = "via")] + public string? Server { get; set; } + + protected override async Task OnInitializedAsync() { + hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true); + if (hs is null) return; + Log.CollectionChanged += (sender, args) => StateHasChanged(); + + StateHasChanged(); + Console.WriteLine("Rerendered!"); + await base.OnInitializedAsync(); + } + + private async Task Join() { + if (string.IsNullOrWhiteSpace(RoomId)) return; + var room = hs.GetRoom(RoomId); + Log.Add("Got room object..."); + + if (hs is AuthenticatedHomeserverSynapse synapse) { + await synapse.Admin.BlockRoom(RoomId, false); + Log.Add($"Synapse: unblocked room"); + } + + try { + await room.JoinAsync([Server], checkIfAlreadyMember: false); + Log.Add("Joined room!"); + } + catch (Exception e) { + Log.Add(e.ToString()); + } + + Log.Add("Done!"); + } + +} \ No newline at end of file diff --git a/MatrixUtils.Web/Pages/Tools/Debug/LeaveRoom.razor b/MatrixUtils.Web/Pages/Tools/Debug/LeaveRoom.razor index 9a56fc0..7844331 100644 --- a/MatrixUtils.Web/Pages/Tools/Debug/LeaveRoom.razor +++ b/MatrixUtils.Web/Pages/Tools/Debug/LeaveRoom.razor @@ -1,4 +1,4 @@ -@page "/Tools/LeaveRoom" +@page "/Tools/Debug/LeaveRoom" @using System.Collections.ObjectModel

Leave room


diff --git a/MatrixUtils.Web/Pages/Tools/Index.razor b/MatrixUtils.Web/Pages/Tools/Index.razor index f99e932..4a44753 100644 --- a/MatrixUtils.Web/Pages/Tools/Index.razor +++ b/MatrixUtils.Web/Pages/Tools/Index.razor @@ -30,6 +30,7 @@

Debugging tools


Debug space relationships
+Join room by ID
Leave room by ID
Locate lost media
Migrate users from a split room to a new room
-- cgit 1.5.1