about summary refs log tree commit diff
path: root/MatrixRoomUtils.Web/Pages/Tools/MassJoinRoom.razor
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2024-01-24 02:31:56 +0100
committerRory& <root@rory.gay>2024-01-24 17:05:25 +0100
commit03313562d21d5db9bf6a14ebbeab80e06c883d3a (patch)
treee000546a2ee8e6a886a7ed9fd01ad674178fb7cb /MatrixRoomUtils.Web/Pages/Tools/MassJoinRoom.razor
parentMake RMU installable (diff)
downloadMatrixUtils-03313562d21d5db9bf6a14ebbeab80e06c883d3a.tar.xz
MRU->RMU, fixes, cleanup
Diffstat (limited to 'MatrixRoomUtils.Web/Pages/Tools/MassJoinRoom.razor')
-rw-r--r--MatrixRoomUtils.Web/Pages/Tools/MassJoinRoom.razor110
1 files changed, 0 insertions, 110 deletions
diff --git a/MatrixRoomUtils.Web/Pages/Tools/MassJoinRoom.razor b/MatrixRoomUtils.Web/Pages/Tools/MassJoinRoom.razor
deleted file mode 100644
index 816b7db..0000000
--- a/MatrixRoomUtils.Web/Pages/Tools/MassJoinRoom.razor
+++ /dev/null
@@ -1,110 +0,0 @@
-@page "/MassRoomJoin"
-@using System.Diagnostics
-@using ArcaneLibs.Extensions
-@using LibMatrix
-@using LibMatrix.EventTypes.Spec.State
-@using LibMatrix.Homeservers
-@using LibMatrix.RoomTypes
-<h3>Mass join room</h3>
-<hr/>
-<p>Room: </p>
-<FancyTextBox @bind-Value="@roomId"></FancyTextBox>
-
-<p>Users: </p>
-@foreach (var hs in hss) {
-    <p>@hs.WhoAmI.UserId</p>
-}
-
-<br/>
-<LinkButton OnClick="Execute">Execute</LinkButton>
-<br/>
-@foreach (var line in Enumerable.Reverse(log)) {
-    <p>@line</p>
-}
-
-@code {
-    private List<string> log { get; set; } = new();
-    List<AuthenticatedHomeserverGeneric> hss { get; set; } = new();
-    string roomId { get; set; }
-
-    protected override async Task OnInitializedAsync() {
-        var hs = await MRUStorage.GetCurrentSessionOrNavigate();
-        if (hs is null) return;
-        var sessions = await MRUStorage.GetAllTokens();
-        foreach (var userAuth in sessions) {
-            var session = await MRUStorage.GetSession(userAuth);
-            if (session is not null) {
-                hss.Add(session);
-                StateHasChanged();
-            }
-        }
-
-        StateHasChanged();
-        Console.WriteLine("Rerendered!");
-        await base.OnInitializedAsync();
-    }
-
-    private async Task Execute() {
-    // foreach (var hs in hss) {
-    // var rooms = await hs.GetJoinedRooms();
-        var tasks = hss.Select(ExecuteInvite).ToAsyncEnumerable();
-        await foreach (var a in tasks) {
-            if (!string.IsNullOrWhiteSpace(a)) {
-                log.Add(a);
-                StateHasChanged();
-            }
-        }
-        tasks = hss.Select(ExecuteJoin).ToAsyncEnumerable();
-        await foreach (var a in tasks) {
-            if (!string.IsNullOrWhiteSpace(a)) {
-                log.Add(a);
-                StateHasChanged();
-            }
-        }
-    // }
-    }
-
-    private async Task<string> ExecuteInvite(AuthenticatedHomeserverGeneric hs) {
-        var room = hs.GetRoom(roomId);
-        try {
-            try {
-                var joinRule = await room.GetJoinRuleAsync();
-                if (joinRule.JoinRule == RoomJoinRulesEventContent.JoinRules.Public) return "Room is public, no invite needed";
-            }
-            catch { }
-            var pls = await room.GetPowerLevelsAsync();
-            if (pls.GetUserPowerLevel(hs.WhoAmI.UserId) < pls.Invite) return "I do not have permission to send invite in " + room.RoomId;
-            await room.InviteUsersAsync(hss.Select(x => x.WhoAmI.UserId).ToList());
-            log.Add($"Invited to {room.RoomId} to {pls.GetUserPowerLevel(hs.WhoAmI.UserId)}");
-        }
-        catch (MatrixException e) {
-            return $"Failed to invite in {room.RoomId}: {e.Message}";
-        }
-        catch (Exception e) {
-            return $"Failed to invite in {room.RoomId}: {e.Message}";
-        }
-        StateHasChanged();
-        return "";
-    }
-
-    private async Task<string> ExecuteJoin(AuthenticatedHomeserverGeneric hs) {
-        var room = hs.GetRoom(roomId);
-        try {
-            try {
-                var mse = await room.GetStateOrNullAsync<RoomMemberEventContent>(RoomMemberEventContent.EventId, hs.WhoAmI.UserId);
-                if (mse?.Membership == "join") return $"User {hs.WhoAmI.UserId} already in room";
-            }
-            catch { }
-            await room.JoinAsync();
-        }
-        catch (MatrixException e) {
-            return $"Failed to join {hs.WhoAmI.UserId} to {room.RoomId}: {e.Message}";
-        }
-        catch (Exception e) {
-            return $"Failed to join {hs.WhoAmI.UserId} to {room.RoomId}: {e.Message}";
-        }
-        StateHasChanged();
-        return "";
-    }
-
-}
\ No newline at end of file