about summary refs log tree commit diff
path: root/MatrixUtils.Web/Pages/Tools/MassCMEBan.razor
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2024-05-14 17:49:09 +0200
committerRory& <root@rory.gay>2024-05-14 17:49:09 +0200
commit41c5a84dacfd036b8d8f01f72226ac5a519995e3 (patch)
treea4bfc76541692cbbb0fc18f34463cf31a57440f5 /MatrixUtils.Web/Pages/Tools/MassCMEBan.razor
parentImprove the heatmap layout (diff)
downloadMatrixUtils-41c5a84dacfd036b8d8f01f72226ac5a519995e3.tar.xz
Organise tools somewhat, set proper icons for nav menu
Diffstat (limited to 'MatrixUtils.Web/Pages/Tools/MassCMEBan.razor')
-rw-r--r--MatrixUtils.Web/Pages/Tools/MassCMEBan.razor75
1 files changed, 0 insertions, 75 deletions
diff --git a/MatrixUtils.Web/Pages/Tools/MassCMEBan.razor b/MatrixUtils.Web/Pages/Tools/MassCMEBan.razor
deleted file mode 100644

index cbbca9e..0000000 --- a/MatrixUtils.Web/Pages/Tools/MassCMEBan.razor +++ /dev/null
@@ -1,75 +0,0 @@ -@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 -<h3>User Trace</h3> -<hr/> - -<br/> -<span>Users:</span> -<InputTextArea @bind-Value="@roomId"></InputTextArea> -<LinkButton OnClick="@Execute">Execute</LinkButton> - -<br/> - -<br/> -@foreach (var line in log.Reverse()) { - <pre>@line</pre> -} - -@code { - // TODO: Properly implement page to be more useful - private ObservableCollection<string> 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<string> 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>(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