From a3a60fda1492c600383e166a20dd5e6f52120616 Mon Sep 17 00:00:00 2001 From: Rory& Date: Wed, 19 Jun 2024 23:32:59 +0200 Subject: Some cleanup, update libs --- LibMatrix | 2 +- MatrixRoomUtils.sln | 43 +++++++++++++ MatrixUtils.Desktop/MatrixUtils.Desktop.csproj | 14 ++-- .../MatrixUtils.Web.Server.csproj | 2 +- MatrixUtils.Web/App.razor | 3 +- MatrixUtils.Web/MatrixUtils.Web.csproj | 6 +- MatrixUtils.Web/Pages/Dev/DevOptions.razor | 4 +- MatrixUtils.Web/Pages/Dev/DevUtilities.razor | 3 +- MatrixUtils.Web/Pages/HSEInit.razor | 3 +- MatrixUtils.Web/Pages/Index.razor | 3 + .../Client/ClientComponents/MatrixClient.razor | 1 - MatrixUtils.Web/Pages/Labs/Client/Index.razor | 1 - .../Labs/DMSpace/DMSpaceStages/DMSpaceStage1.razor | 2 - .../Labs/DMSpace/DMSpaceStages/DMSpaceStage2.razor | 6 -- .../Labs/DMSpace/DMSpaceStages/DMSpaceStage3.razor | 4 -- MatrixUtils.Web/Pages/LoginPage.razor | 3 +- MatrixUtils.Web/Pages/Rooms/Create.razor | 1 + MatrixUtils.Web/Pages/Rooms/StateEditor.razor | 2 - MatrixUtils.Web/Pages/Rooms/StateViewer.razor | 2 +- MatrixUtils.Web/Pages/ServerInfo.razor | 2 +- MatrixUtils.Web/Pages/Tools/Index.razor | 4 ++ .../Pages/Tools/Info/PolicyListActivity.razor | 2 +- MatrixUtils.Web/Pages/Tools/InviteCounter.razor | 73 +++++++++++++++++++++ MatrixUtils.Web/Pages/Tools/MassCMEBan.razor | 75 ++++++++++++++++++++++ .../Pages/Tools/Room/SpaceRestrictedJoins.razor | 75 ++++++++++++++++++++++ MatrixUtils.Web/Pages/User/Profile.razor | 1 + MatrixUtils.Web/Shared/ActivityGraph.razor | 2 - MatrixUtils.Web/Shared/EditablePre.razor | 2 +- MatrixUtils.Web/Shared/InlineUserItem.razor | 3 - MatrixUtils.Web/Shared/RoomList.razor | 5 -- .../RoomListComponents/RoomListCategory.razor | 2 - MatrixUtils.Web/Shared/RoomListItem.razor | 4 -- MatrixUtils.Web/Shared/UserListItem.razor | 3 - MatrixUtils.Web/_Imports.razor | 7 +- MxApiExtensions | 2 +- global.json | 2 +- 36 files changed, 306 insertions(+), 63 deletions(-) create mode 100644 MatrixUtils.Web/Pages/Tools/InviteCounter.razor create mode 100644 MatrixUtils.Web/Pages/Tools/MassCMEBan.razor create mode 100644 MatrixUtils.Web/Pages/Tools/Room/SpaceRestrictedJoins.razor diff --git a/LibMatrix b/LibMatrix index b5860ce..16e314e 160000 --- a/LibMatrix +++ b/LibMatrix @@ -1 +1 @@ -Subproject commit b5860ce2011b96a2919d5306445b0e8bd8408b3d +Subproject commit 16e314ed714f8b3e298c0ecf2ebfe67b48e5f697 diff --git a/MatrixRoomUtils.sln b/MatrixRoomUtils.sln index f52a446..23d86b0 100644 --- a/MatrixRoomUtils.sln +++ b/MatrixRoomUtils.sln @@ -1,5 +1,6 @@  Microsoft Visual Studio Solution File, Format Version 12.00 +# Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MatrixUtils.Web", "MatrixUtils.Web\MatrixUtils.Web.csproj", "{D38DA95D-DD83-4340-96A4-6F59FC6AE3D9}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MatrixUtils.Web.Server", "MatrixUtils.Web.Server\MatrixUtils.Web.Server.csproj", "{F997F26F-2EC1-4D18-B3DD-C46FB2AD65C0}" @@ -60,6 +61,18 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.UsageTest", "Lib EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MatrixUtils.DmSpaced", "MatrixUtils.DmSpaced\MatrixUtils.DmSpaced.csproj", "{B3FEA1EF-6CFE-49C5-A0B2-11DB58D4CD1C}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.Legacy", "LibMatrix\ArcaneLibs\ArcaneLibs.Legacy\ArcaneLibs.Legacy.csproj", "{748D215E-CA40-4D0F-BE1D-D2350D4AB8CA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.Logging", "LibMatrix\ArcaneLibs\ArcaneLibs.Logging\ArcaneLibs.Logging.csproj", "{E33F7CB0-A03D-4ED0-9AE8-95B31A2D7ACC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.StringNormalisation", "LibMatrix\ArcaneLibs\ArcaneLibs.StringNormalisation\ArcaneLibs.StringNormalisation.csproj", "{FDB12B6A-01AA-46C0-A55E-0F984496AB81}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.Timings", "LibMatrix\ArcaneLibs\ArcaneLibs.Timings\ArcaneLibs.Timings.csproj", "{84EE78FF-E198-4090-BFE9-C47D266E115E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLib.Tests", "LibMatrix\ArcaneLibs\ArcaneLib.Tests\ArcaneLib.Tests.csproj", "{1607FCA9-7B5B-45B0-8D1F-205ABACB7173}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.MxApiExtensions", "LibMatrix\LibMatrix.MxApiExtensions\LibMatrix.MxApiExtensions.csproj", "{56A42391-4514-4352-B22B-622EE7A618AA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -162,6 +175,30 @@ Global {B3FEA1EF-6CFE-49C5-A0B2-11DB58D4CD1C}.Debug|Any CPU.Build.0 = Debug|Any CPU {B3FEA1EF-6CFE-49C5-A0B2-11DB58D4CD1C}.Release|Any CPU.ActiveCfg = Release|Any CPU {B3FEA1EF-6CFE-49C5-A0B2-11DB58D4CD1C}.Release|Any CPU.Build.0 = Release|Any CPU + {748D215E-CA40-4D0F-BE1D-D2350D4AB8CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {748D215E-CA40-4D0F-BE1D-D2350D4AB8CA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {748D215E-CA40-4D0F-BE1D-D2350D4AB8CA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {748D215E-CA40-4D0F-BE1D-D2350D4AB8CA}.Release|Any CPU.Build.0 = Release|Any CPU + {E33F7CB0-A03D-4ED0-9AE8-95B31A2D7ACC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E33F7CB0-A03D-4ED0-9AE8-95B31A2D7ACC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E33F7CB0-A03D-4ED0-9AE8-95B31A2D7ACC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E33F7CB0-A03D-4ED0-9AE8-95B31A2D7ACC}.Release|Any CPU.Build.0 = Release|Any CPU + {FDB12B6A-01AA-46C0-A55E-0F984496AB81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FDB12B6A-01AA-46C0-A55E-0F984496AB81}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FDB12B6A-01AA-46C0-A55E-0F984496AB81}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDB12B6A-01AA-46C0-A55E-0F984496AB81}.Release|Any CPU.Build.0 = Release|Any CPU + {84EE78FF-E198-4090-BFE9-C47D266E115E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {84EE78FF-E198-4090-BFE9-C47D266E115E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {84EE78FF-E198-4090-BFE9-C47D266E115E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {84EE78FF-E198-4090-BFE9-C47D266E115E}.Release|Any CPU.Build.0 = Release|Any CPU + {1607FCA9-7B5B-45B0-8D1F-205ABACB7173}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1607FCA9-7B5B-45B0-8D1F-205ABACB7173}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1607FCA9-7B5B-45B0-8D1F-205ABACB7173}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1607FCA9-7B5B-45B0-8D1F-205ABACB7173}.Release|Any CPU.Build.0 = Release|Any CPU + {56A42391-4514-4352-B22B-622EE7A618AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {56A42391-4514-4352-B22B-622EE7A618AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {56A42391-4514-4352-B22B-622EE7A618AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {56A42391-4514-4352-B22B-622EE7A618AA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {F4E241C3-0300-4B87-8707-BCBDEF1F0185} = {8F4F6BEC-0C66-486B-A21A-1C35B2EDAD33} @@ -185,5 +222,11 @@ Global {5CE239F8-C124-4A96-A0F8-B56B9AE27434} = {A4BCBF5F-4936-44B9-BAB3-FAF240BDF40D} {6D93DA72-69D8-43BD-BC19-7FFF8A313971} = {7D2C9959-8309-4110-A67F-DEE64E97C1D8} {EDFC9BA8-CAA9-4B51-AFAF-834C1D74DCF0} = {B00C5CB6-6200-4B41-96BE-C6EAF1085A14} + {748D215E-CA40-4D0F-BE1D-D2350D4AB8CA} = {B00C5CB6-6200-4B41-96BE-C6EAF1085A14} + {E33F7CB0-A03D-4ED0-9AE8-95B31A2D7ACC} = {B00C5CB6-6200-4B41-96BE-C6EAF1085A14} + {FDB12B6A-01AA-46C0-A55E-0F984496AB81} = {B00C5CB6-6200-4B41-96BE-C6EAF1085A14} + {84EE78FF-E198-4090-BFE9-C47D266E115E} = {B00C5CB6-6200-4B41-96BE-C6EAF1085A14} + {1607FCA9-7B5B-45B0-8D1F-205ABACB7173} = {B00C5CB6-6200-4B41-96BE-C6EAF1085A14} + {56A42391-4514-4352-B22B-622EE7A618AA} = {8F4F6BEC-0C66-486B-A21A-1C35B2EDAD33} EndGlobalSection EndGlobal diff --git a/MatrixUtils.Desktop/MatrixUtils.Desktop.csproj b/MatrixUtils.Desktop/MatrixUtils.Desktop.csproj index f1bd2b6..ce009d5 100644 --- a/MatrixUtils.Desktop/MatrixUtils.Desktop.csproj +++ b/MatrixUtils.Desktop/MatrixUtils.Desktop.csproj @@ -20,20 +20,20 @@ - - - - + + + + - - + + - + diff --git a/MatrixUtils.Web.Server/MatrixUtils.Web.Server.csproj b/MatrixUtils.Web.Server/MatrixUtils.Web.Server.csproj index c4318d0..f2d47ea 100644 --- a/MatrixUtils.Web.Server/MatrixUtils.Web.Server.csproj +++ b/MatrixUtils.Web.Server/MatrixUtils.Web.Server.csproj @@ -8,7 +8,7 @@ - + diff --git a/MatrixUtils.Web/App.razor b/MatrixUtils.Web/App.razor index a8cf817..5e87bc3 100644 --- a/MatrixUtils.Web/App.razor +++ b/MatrixUtils.Web/App.razor @@ -1,4 +1,5 @@ - +@using Microsoft.AspNetCore.Components.Routing + diff --git a/MatrixUtils.Web/MatrixUtils.Web.csproj b/MatrixUtils.Web/MatrixUtils.Web.csproj index f27ae40..8760e7a 100644 --- a/MatrixUtils.Web/MatrixUtils.Web.csproj +++ b/MatrixUtils.Web/MatrixUtils.Web.csproj @@ -16,10 +16,10 @@ - + - - + + diff --git a/MatrixUtils.Web/Pages/Dev/DevOptions.razor b/MatrixUtils.Web/Pages/Dev/DevOptions.razor index fa0cdff..7b646d1 100644 --- a/MatrixUtils.Web/Pages/Dev/DevOptions.razor +++ b/MatrixUtils.Web/Pages/Dev/DevOptions.razor @@ -2,8 +2,10 @@ @using ArcaneLibs.Extensions @using System.Text @using System.Text.Json +@using Microsoft.JSInterop @inject NavigationManager NavigationManager -@inject ILocalStorageService LocalStorage +@inject IJSRuntime JSRuntime +@inject TieredStorageService TieredStorage Developer options diff --git a/MatrixUtils.Web/Pages/Dev/DevUtilities.razor b/MatrixUtils.Web/Pages/Dev/DevUtilities.razor index 87416a2..bf5a396 100644 --- a/MatrixUtils.Web/Pages/Dev/DevUtilities.razor +++ b/MatrixUtils.Web/Pages/Dev/DevUtilities.razor @@ -1,8 +1,7 @@ @page "/Dev/Utilities" @using ArcaneLibs.Extensions @using MatrixUtils.Abstractions -@inject ILocalStorageService LocalStorage -@inject NavigationManager NavigationManager +

Debug Tools


@if (Rooms.Count == 0) { diff --git a/MatrixUtils.Web/Pages/HSEInit.razor b/MatrixUtils.Web/Pages/HSEInit.razor index b76dfe6..cabc671 100644 --- a/MatrixUtils.Web/Pages/HSEInit.razor +++ b/MatrixUtils.Web/Pages/HSEInit.razor @@ -1,6 +1,7 @@ @page "/HSEInit" +@using Blazored.LocalStorage @inject ILocalStorageService LocalStorage -@inject IJSRuntime JsRuntime +

HSE Initialising...


diff --git a/MatrixUtils.Web/Pages/Index.razor b/MatrixUtils.Web/Pages/Index.razor index 8dfd1be..a7619ae 100644 --- a/MatrixUtils.Web/Pages/Index.razor +++ b/MatrixUtils.Web/Pages/Index.razor @@ -107,6 +107,9 @@ Small collection of tools to do not-so-everyday things. }

+ + Re-login + Remove diff --git a/MatrixUtils.Web/Pages/Labs/Client/ClientComponents/MatrixClient.razor b/MatrixUtils.Web/Pages/Labs/Client/ClientComponents/MatrixClient.razor index 7d3e52a..67dcae5 100644 --- a/MatrixUtils.Web/Pages/Labs/Client/ClientComponents/MatrixClient.razor +++ b/MatrixUtils.Web/Pages/Labs/Client/ClientComponents/MatrixClient.razor @@ -1,5 +1,4 @@ @using Index = MatrixUtils.Web.Pages.Labs.Client.Index -@using MatrixUtils.Web.Pages.Client.ClientComponents
diff --git a/MatrixUtils.Web/Pages/Labs/Client/Index.razor b/MatrixUtils.Web/Pages/Labs/Client/Index.razor index 5b489b0..ef4a0b9 100644 --- a/MatrixUtils.Web/Pages/Labs/Client/Index.razor +++ b/MatrixUtils.Web/Pages/Labs/Client/Index.razor @@ -1,5 +1,4 @@ @page "/Labs/Client" -@using LibMatrix @using MatrixUtils.Abstractions @using MatrixUtils.Web.Pages.Client.ClientComponents @using System.Collections.ObjectModel diff --git a/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpaceStages/DMSpaceStage1.razor b/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpaceStages/DMSpaceStage1.razor index 2176467..55e17d6 100644 --- a/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpaceStages/DMSpaceStage1.razor +++ b/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpaceStages/DMSpaceStage1.razor @@ -1,10 +1,8 @@ -@using LibMatrix.Homeservers @using LibMatrix.RoomTypes @using LibMatrix @using LibMatrix.Responses @using MatrixUtils.LibDMSpace @using MatrixUtils.LibDMSpace.StateEvents -@using Microsoft.Extensions.Primitives @using ArcaneLibs.Extensions @using LibMatrix.EventTypes.Spec.State @using MatrixUtils.Abstractions diff --git a/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpaceStages/DMSpaceStage2.razor b/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpaceStages/DMSpaceStage2.razor index a70e9c5..be6027a 100644 --- a/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpaceStages/DMSpaceStage2.razor +++ b/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpaceStages/DMSpaceStage2.razor @@ -1,12 +1,6 @@ -@using LibMatrix.Homeservers @using LibMatrix.RoomTypes -@using LibMatrix @using LibMatrix.EventTypes.Spec.State -@using LibMatrix.Responses -@using MatrixUtils.LibDMSpace -@using MatrixUtils.LibDMSpace.StateEvents @using ArcaneLibs.Extensions -@using System.Text.Json.Serialization @using MatrixUtils.Abstractions DM Space setup tool - stage 2: Fix DM room attribution diff --git a/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpaceStages/DMSpaceStage3.razor b/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpaceStages/DMSpaceStage3.razor index 865e956..09de5d3 100644 --- a/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpaceStages/DMSpaceStage3.razor +++ b/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpaceStages/DMSpaceStage3.razor @@ -1,11 +1,7 @@ -@using LibMatrix.Homeservers @using LibMatrix.RoomTypes -@using LibMatrix @using LibMatrix.EventTypes.Spec.State @using LibMatrix.Responses @using MatrixUtils.LibDMSpace -@using MatrixUtils.LibDMSpace.StateEvents -@using ArcaneLibs.Extensions @using System.Text.Json.Serialization @using MatrixUtils.Abstractions diff --git a/MatrixUtils.Web/Pages/LoginPage.razor b/MatrixUtils.Web/Pages/LoginPage.razor index ec4f57d..6c869ac 100644 --- a/MatrixUtils.Web/Pages/LoginPage.razor +++ b/MatrixUtils.Web/Pages/LoginPage.razor @@ -2,8 +2,7 @@ @using System.Text.Json @using System.Text.Json.Serialization @using LibMatrix -@inject ILocalStorageService LocalStorage -@inject IJSRuntime JsRuntime +

Login


diff --git a/MatrixUtils.Web/Pages/Rooms/Create.razor b/MatrixUtils.Web/Pages/Rooms/Create.razor index 368211a..f2dfb01 100644 --- a/MatrixUtils.Web/Pages/Rooms/Create.razor +++ b/MatrixUtils.Web/Pages/Rooms/Create.razor @@ -7,6 +7,7 @@ @using LibMatrix.EventTypes.Spec.State.RoomInfo @using LibMatrix.Responses @using MatrixUtils.Web.Classes.RoomCreationTemplates +@using Microsoft.AspNetCore.Components.Forms @* @* ReSharper disable once RedundantUsingDirective - Must not remove this, Rider marks this as "unused" when it's not */ *@

Room Manager - Create Room

diff --git a/MatrixUtils.Web/Pages/Rooms/StateEditor.razor b/MatrixUtils.Web/Pages/Rooms/StateEditor.razor index fc3a310..6110b83 100644 --- a/MatrixUtils.Web/Pages/Rooms/StateEditor.razor +++ b/MatrixUtils.Web/Pages/Rooms/StateEditor.razor @@ -1,8 +1,6 @@ @page "/Rooms/{RoomId}/State/Edit" @using ArcaneLibs.Extensions @using LibMatrix -@inject ILocalStorageService LocalStorage -@inject NavigationManager NavigationManager

Room state editor - Editing @RoomId


diff --git a/MatrixUtils.Web/Pages/Rooms/StateViewer.razor b/MatrixUtils.Web/Pages/Rooms/StateViewer.razor index fabc33c..7c31136 100644 --- a/MatrixUtils.Web/Pages/Rooms/StateViewer.razor +++ b/MatrixUtils.Web/Pages/Rooms/StateViewer.razor @@ -1,7 +1,7 @@ @page "/Rooms/{RoomId}/State/View" @using ArcaneLibs.Extensions @using LibMatrix -@inject ILocalStorageService LocalStorage + @inject NavigationManager NavigationManager

Room state viewer - Viewing @RoomId


diff --git a/MatrixUtils.Web/Pages/ServerInfo.razor b/MatrixUtils.Web/Pages/ServerInfo.razor index aa6ad51..e6f1f16 100644 --- a/MatrixUtils.Web/Pages/ServerInfo.razor +++ b/MatrixUtils.Web/Pages/ServerInfo.razor @@ -1,7 +1,7 @@ @page "/ServerInfo/{Homeserver}" @using LibMatrix.Responses @using ArcaneLibs.Extensions -

ServerInfo

+

Server info for @Homeserver


@if (ServerVersionResponse is not null) {

Server version: @ServerVersionResponse.Server.Name @ServerVersionResponse.Server.Version

diff --git a/MatrixUtils.Web/Pages/Tools/Index.razor b/MatrixUtils.Web/Pages/Tools/Index.razor index 3aec2e3..e68bb9a 100644 --- a/MatrixUtils.Web/Pages/Tools/Index.razor +++ b/MatrixUtils.Web/Pages/Tools/Index.razor @@ -13,6 +13,10 @@ Copy highest powerlevel across all session
View account data
+

Room tools

+
+Change space children join access rules
+

Moderation tools


Count invites by inviter
diff --git a/MatrixUtils.Web/Pages/Tools/Info/PolicyListActivity.razor b/MatrixUtils.Web/Pages/Tools/Info/PolicyListActivity.razor index c94d0b0..de0bfe7 100644 --- a/MatrixUtils.Web/Pages/Tools/Info/PolicyListActivity.razor +++ b/MatrixUtils.Web/Pages/Tools/Info/PolicyListActivity.razor @@ -1,4 +1,4 @@ -@page "/Tools/PolicyListActivity" +@page "/Tools/Info/PolicyListActivity" @using LibMatrix.EventTypes.Spec.State.Policy @using System.Diagnostics @using LibMatrix.RoomTypes diff --git a/MatrixUtils.Web/Pages/Tools/InviteCounter.razor b/MatrixUtils.Web/Pages/Tools/InviteCounter.razor new file mode 100644 index 0000000..8f4b4dd --- /dev/null +++ b/MatrixUtils.Web/Pages/Tools/InviteCounter.razor @@ -0,0 +1,73 @@ +@page "/Tools/InviteCounter" +@using ArcaneLibs.Extensions +@using LibMatrix.RoomTypes +@using System.Collections.ObjectModel +@using LibMatrix +@using System.Collections.Frozen +@using LibMatrix.EventTypes.Spec.State +@using MatrixUtils.Abstractions +

User Trace

+
+ +
+Room ID: + +Execute + +
+ +
+ Results + @foreach (var (userId, events) in invites.OrderByDescending(x=>x.Value).ToList()) { +

@userId: @events

+ } +
+ +
+@foreach (var line in log.Reverse()) { +
@line
+} + +@code { + private ObservableCollection log { get; set; } = new(); + private Dictionary invites { get; set; } = new(); + private AuthenticatedHomeserverGeneric hs { get; set; } + + [Parameter, SupplyParameterFromQuery(Name = "room")] + public string roomId { get; set; } + + + protected override async Task OnInitializedAsync() { + log.CollectionChanged += (sender, args) => StateHasChanged(); + hs = await RMUStorage.GetCurrentSessionOrNavigate(); + if (hs is null) return; + + StateHasChanged(); + Console.WriteLine("Rerendered!"); + await base.OnInitializedAsync(); + } + + private async Task Execute() { + var room = hs.GetRoom(roomId); + var events = room.GetManyMessagesAsync(limit: int.MaxValue); + await foreach (var resp in events) { + var all = resp.State.Concat(resp.Chunk); + foreach (var evt in all) { + if(evt.Type != RoomMemberEventContent.EventId) continue; + var content = evt.TypedContent as RoomMemberEventContent; + if(content.Membership != "invite") continue; + if(!invites.ContainsKey(evt.Sender)) invites[evt.Sender] = 0; + invites[evt.Sender]++; + } + + log.Add($"{resp.State.Count} state, {resp.Chunk.Count} timeline"); + } + + + + StateHasChanged(); + + return ""; + } + +} \ No newline at end of file diff --git a/MatrixUtils.Web/Pages/Tools/MassCMEBan.razor b/MatrixUtils.Web/Pages/Tools/MassCMEBan.razor new file mode 100644 index 0000000..cbbca9e --- /dev/null +++ b/MatrixUtils.Web/Pages/Tools/MassCMEBan.razor @@ -0,0 +1,75 @@ +@page "/Tools/MassCMEBan" +@using ArcaneLibs.Extensions +@using LibMatrix.RoomTypes +@using System.Collections.ObjectModel +@using LibMatrix +@using System.Collections.Frozen +@using LibMatrix.EventTypes.Spec.State +@using LibMatrix.EventTypes.Spec.State.Policy +@using MatrixUtils.Abstractions +

User Trace

+
+ +
+Users: + +Execute + +
+ +
+@foreach (var line in log.Reverse()) { +
@line
+} + +@code { + // TODO: Properly implement page to be more useful + private ObservableCollection log { get; set; } = new(); + private AuthenticatedHomeserverGeneric hs { get; set; } + + [Parameter, SupplyParameterFromQuery(Name = "room")] + public string roomId { get; set; } + + + protected override async Task OnInitializedAsync() { + log.CollectionChanged += (sender, args) => StateHasChanged(); + hs = await RMUStorage.GetCurrentSessionOrNavigate(); + if (hs is null) return; + + StateHasChanged(); + Console.WriteLine("Rerendered!"); + await base.OnInitializedAsync(); + } + + private async Task Execute() { + var room = hs.GetRoom("!fTjMjIzNKEsFlUIiru:neko.dev"); + // var room = hs.GetRoom("!yf7OpOiRDXx6zUGpT6:conduit.rory.gay"); + var users = roomId.Split("\n").Select(x => x.Trim()).Where(x=>x.StartsWith('@')).ToList(); + foreach (var user in users) { + var exists = false; + try { + exists = !string.IsNullOrWhiteSpace((await room.GetStateAsync(UserPolicyRuleEventContent.EventId, user.Replace('@', '_'))).Entity); + } catch (Exception e) { + log.Add($"Failed to get {user}"); + } + + if (!exists) { + var evt = await room.SendStateEventAsync(UserPolicyRuleEventContent.EventId, user.Replace('@', '_'), new UserPolicyRuleEventContent() { + Entity = user, + Reason = "spam (invite)", + Recommendation = "m.ban" + }); + log.Add($"Sent {evt.EventId} to ban {user}"); + } + else { + log.Add($"User {user} already exists"); + } + } + + + StateHasChanged(); + + return ""; + } + +} \ No newline at end of file diff --git a/MatrixUtils.Web/Pages/Tools/Room/SpaceRestrictedJoins.razor b/MatrixUtils.Web/Pages/Tools/Room/SpaceRestrictedJoins.razor new file mode 100644 index 0000000..80a03f2 --- /dev/null +++ b/MatrixUtils.Web/Pages/Tools/Room/SpaceRestrictedJoins.razor @@ -0,0 +1,75 @@ +@page "/Tools/Room/SpaceRestrictedJoins" +@using System.Collections.ObjectModel +@using LibMatrix.EventTypes.Spec.State +

Allow space to restricted join children

+
+ +

Room ID:

+ +

Change guest access:

+

Change knock access:

+ +
+Execute +
+ +
+@foreach (var line in log.Reverse()) { +
@line
+} + +@code { + private ObservableCollection log { get; set; } = new(); + + private string RoomId { get; set; } + private AuthenticatedHomeserverGeneric hs { get; set; } + + private bool ChangeGuestAccess { get; set; } + private bool GuestAccess { get; set; } + private bool ChangeKnocking { get; set; } + private bool Knocking { get; set; } + + protected override async Task OnInitializedAsync() { + log.CollectionChanged += (sender, args) => StateHasChanged(); + hs = await RMUStorage.GetCurrentSessionOrNavigate(); + if (hs is null) return; + + StateHasChanged(); + Console.WriteLine("Rerendered!"); + await base.OnInitializedAsync(); + } + + private async Task Execute() { + var space = hs.GetRoom(RoomId).AsSpace; + await foreach (var room in space.GetChildrenAsync()) { + log.Add($"Got room {room.RoomId}"); + if (ChangeGuestAccess) { + var targetGuestAccess = GuestAccess ? "can_join" : "forbidden"; + var currentGuestAccess = (await room.GetStateAsync(RoomGuestAccessEventContent.EventId))?.GuestAccess; + if (currentGuestAccess != targetGuestAccess) { + log.Add($"Changing guest access from {currentGuestAccess} to {targetGuestAccess}"); + await room.SendStateEventAsync(RoomGuestAccessEventContent.EventId, new RoomGuestAccessEventContent { GuestAccess = targetGuestAccess }); + } + } + + var currentJoinRules = (await room.GetStateOrNullAsync(RoomJoinRulesEventContent.EventId)) ?? new(); + if (ChangeKnocking) { + var targetJoinRule = Knocking ? "knock_restricted" : "restricted"; + if (currentJoinRules.JoinRuleValue != targetJoinRule) { + log.Add($"Changing knocking from {currentJoinRules.JoinRuleValue} to {targetJoinRule}"); + currentJoinRules.JoinRuleValue = targetJoinRule; + await room.SendStateEventAsync(RoomJoinRulesEventContent.EventId, currentJoinRules); + } + } + + if (currentJoinRules.Allow == null || !currentJoinRules.Allow.Any(x => x.Type == "m.room_membership" && x.RoomId == RoomId)) { + log.Add($"Adding {RoomId} to allowed rooms"); + currentJoinRules.Allow ??= new(); + currentJoinRules.Allow.Add(new RoomJoinRulesEventContent.AllowEntry() { Type = "m.room_membership", RoomId = RoomId }); + await room.SendStateEventAsync(RoomJoinRulesEventContent.EventId, currentJoinRules); + } + } + log.Add("Done!"); + } + +} \ No newline at end of file diff --git a/MatrixUtils.Web/Pages/User/Profile.razor b/MatrixUtils.Web/Pages/User/Profile.razor index 129f706..49af22f 100644 --- a/MatrixUtils.Web/Pages/User/Profile.razor +++ b/MatrixUtils.Web/Pages/User/Profile.razor @@ -4,6 +4,7 @@ @using LibMatrix @using LibMatrix.Responses @using MatrixUtils.Abstractions +@using Microsoft.AspNetCore.Components.Forms

Manage Profile - @Homeserver?.WhoAmI?.UserId


diff --git a/MatrixUtils.Web/Shared/ActivityGraph.razor b/MatrixUtils.Web/Shared/ActivityGraph.razor index fa648c7..0f970af 100644 --- a/MatrixUtils.Web/Shared/ActivityGraph.razor +++ b/MatrixUtils.Web/Shared/ActivityGraph.razor @@ -1,6 +1,4 @@ -@using System.Drawing @using System.Runtime.InteropServices -@using System.Diagnostics @if (Data is { Count: > 0 }) { diff --git a/MatrixUtils.Web/Shared/EditablePre.razor b/MatrixUtils.Web/Shared/EditablePre.razor index acb477c..acb39c9 100644 --- a/MatrixUtils.Web/Shared/EditablePre.razor +++ b/MatrixUtils.Web/Shared/EditablePre.razor @@ -1,4 +1,4 @@ -@inherits InputBase +@inherits Microsoft.AspNetCore.Components.Forms.InputBase
@CurrentValue
@code { diff --git a/MatrixUtils.Web/Shared/InlineUserItem.razor b/MatrixUtils.Web/Shared/InlineUserItem.razor index 6df2307..9c6608a 100644 --- a/MatrixUtils.Web/Shared/InlineUserItem.razor +++ b/MatrixUtils.Web/Shared/InlineUserItem.razor @@ -1,7 +1,4 @@ -@using LibMatrix @using LibMatrix.EventTypes.Spec.State -@using LibMatrix.Helpers -@using LibMatrix.Homeservers @using LibMatrix.Responses
diff --git a/MatrixUtils.Web/Shared/RoomList.razor b/MatrixUtils.Web/Shared/RoomList.razor index 2ab3cef..42c5a9f 100644 --- a/MatrixUtils.Web/Shared/RoomList.razor +++ b/MatrixUtils.Web/Shared/RoomList.razor @@ -1,12 +1,7 @@ @using MatrixUtils.Web.Shared.RoomListComponents; -@using LibMatrix -@using LibMatrix.Extensions -@using ArcaneLibs.Extensions -@using LibMatrix.EventTypes.Spec.State @using System.Collections.ObjectModel @using LibMatrix.Responses @using MatrixUtils.Abstractions -@using _Imports = MatrixUtils.Web._Imports @if (!StillFetching) {

Fetching room details... @RoomsWithTypes.Sum(x => x.Value.Count) out of @Rooms.Count done!

@foreach (var category in RoomsWithTypes.OrderBy(x => x.Value.Count)) { diff --git a/MatrixUtils.Web/Shared/RoomListComponents/RoomListCategory.razor b/MatrixUtils.Web/Shared/RoomListComponents/RoomListCategory.razor index 7670ec5..1f5ce89 100644 --- a/MatrixUtils.Web/Shared/RoomListComponents/RoomListCategory.razor +++ b/MatrixUtils.Web/Shared/RoomListComponents/RoomListCategory.razor @@ -1,7 +1,5 @@ @using MatrixUtils.Web.Classes.Constants -@using LibMatrix @using LibMatrix.EventTypes.Spec.State -@using LibMatrix.Homeservers @using LibMatrix.Responses @using MatrixUtils.Abstractions
diff --git a/MatrixUtils.Web/Shared/RoomListItem.razor b/MatrixUtils.Web/Shared/RoomListItem.razor index 5a33b65..bfaa900 100644 --- a/MatrixUtils.Web/Shared/RoomListItem.razor +++ b/MatrixUtils.Web/Shared/RoomListItem.razor @@ -1,10 +1,6 @@ -@using System.Text.Json @using LibMatrix @using LibMatrix.EventTypes.Spec.State -@using LibMatrix.Helpers -@using LibMatrix.Homeservers @using LibMatrix.Responses -@using LibMatrix.RoomTypes @using MatrixUtils.Abstractions @using MatrixUtils.Web.Classes.Constants @if (RoomInfo is not null) { diff --git a/MatrixUtils.Web/Shared/UserListItem.razor b/MatrixUtils.Web/Shared/UserListItem.razor index daa9c9e..d4652b2 100644 --- a/MatrixUtils.Web/Shared/UserListItem.razor +++ b/MatrixUtils.Web/Shared/UserListItem.razor @@ -1,6 +1,3 @@ -@using LibMatrix.Helpers -@using LibMatrix.EventTypes.Spec.State -@using LibMatrix.Homeservers @using LibMatrix.Responses @using ArcaneLibs
diff --git a/MatrixUtils.Web/_Imports.razor b/MatrixUtils.Web/_Imports.razor index 87d7cb2..81c7874 100644 --- a/MatrixUtils.Web/_Imports.razor +++ b/MatrixUtils.Web/_Imports.razor @@ -1,18 +1,19 @@ @using System.Net.Http @using System.Net.Http.Json -@using Blazored.LocalStorage +@* @using Blazored.LocalStorage *@ @using LibMatrix.Services @using Microsoft.AspNetCore.Components.Forms @using Microsoft.AspNetCore.Components.Routing @using Microsoft.AspNetCore.Components.Web -@using Microsoft.AspNetCore.Components.Web.Virtualization +@* @using Microsoft.AspNetCore.Components.Web.Virtualization *@ @using Microsoft.AspNetCore.Components.WebAssembly.Http -@using Microsoft.JSInterop +@* @using Microsoft.JSInterop *@ @using MatrixUtils.Web @using MatrixUtils.Web.Classes @using MatrixUtils.Web.Shared @using ArcaneLibs.Blazor.Components @using LibMatrix.Homeservers +@using Microsoft.JSInterop @inject NavigationManager NavigationManager @inject RMUStorageWrapper RMUStorage diff --git a/MxApiExtensions b/MxApiExtensions index c673f70..86e41aa 160000 --- a/MxApiExtensions +++ b/MxApiExtensions @@ -1 +1 @@ -Subproject commit c673f705cd62346f5995415414e309bb56b18c66 +Subproject commit 86e41aa749d961c5731ea52e570cf0f9e8f8d3ae diff --git a/global.json b/global.json index 37704f0..ecc6db8 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "7.0.0", + "version": "8.0.0", "rollForward": "latestMajor", "allowPrerelease": true } -- cgit 1.4.1