From 6769b0fd6f37cbc27646fa0ca8e458489c935039 Mon Sep 17 00:00:00 2001
From: Rory&
Date: Tue, 9 Dec 2025 23:42:07 +0100
Subject: Commit various changes that never made it into git
---
.../Pages/Tools/Info/PolicyListActivity.razor | 8 +-
.../Pages/Tools/Info/SessionCount.razor | 4 +-
.../Pages/Tools/Moderation/FindUsersByRegex.razor | 2 +-
.../Pages/Tools/Moderation/MembershipHistory.razor | 181 +++++++++++++--------
.../Pages/Tools/Moderation/RoomIntersections.razor | 8 +-
.../Pages/Tools/Moderation/UserTrace.razor | 4 +-
6 files changed, 125 insertions(+), 82 deletions(-)
(limited to 'MatrixUtils.Web/Pages/Tools')
diff --git a/MatrixUtils.Web/Pages/Tools/Info/PolicyListActivity.razor b/MatrixUtils.Web/Pages/Tools/Info/PolicyListActivity.razor
index bfd5fd3..ba8036c 100644
--- a/MatrixUtils.Web/Pages/Tools/Info/PolicyListActivity.razor
+++ b/MatrixUtils.Web/Pages/Tools/Info/PolicyListActivity.razor
@@ -74,7 +74,7 @@ else
}
//use timeline
- var types = StateEventResponse.KnownStateEventTypes.Where(x => x.IsAssignableTo(typeof(PolicyRuleEventContent)));
+ var types = MatrixEvent.KnownEventTypes.Where(x => x.IsAssignableTo(typeof(PolicyRuleEventContent)));
var filter = new SyncFilter.EventFilter(types: types.SelectMany(x => x.GetCustomAttributes().Select(y => y.EventName)).ToList());
var timeline = room.GetManyMessagesAsync(limit: int.MaxValue, chunkSize: 2500, filter: filter.ToJson(indent: false, ignoreNull: true));
await foreach (var response in timeline) {
@@ -119,10 +119,10 @@ else
private readonly struct StateEventEntry {
public required DateTime Timestamp { get; init; }
public required StateEventTransition State { get; init; }
- public required StateEventResponse Event { get; init; }
- public required StateEventResponse? Previous { get; init; }
+ public required MatrixEventResponse Event { get; init; }
+ public required MatrixEventResponse? Previous { get; init; }
- public void Deconstruct(out StateEventTransition transition, out StateEventResponse evt, out StateEventResponse? prev) {
+ public void Deconstruct(out StateEventTransition transition, out MatrixEventResponse evt, out MatrixEventResponse? prev) {
transition = State;
evt = Event;
prev = Previous;
diff --git a/MatrixUtils.Web/Pages/Tools/Info/SessionCount.razor b/MatrixUtils.Web/Pages/Tools/Info/SessionCount.razor
index dc5333b..76ff629 100644
--- a/MatrixUtils.Web/Pages/Tools/Info/SessionCount.razor
+++ b/MatrixUtils.Web/Pages/Tools/Info/SessionCount.razor
@@ -60,7 +60,7 @@
private ObservableCollection log { get; set; } = new();
List hss { get; set; } = new();
ObservableCollection rooms { get; set; } = new();
- Dictionary> roomMembers { get; set; } = new();
+ Dictionary> roomMembers { get; set; } = new();
Dictionary> matches = new();
private string UserIdString {
@@ -147,7 +147,7 @@
private class Matches {
public GenericRoom Room;
- public StateEventResponse Event;
+ public MatrixEventResponse Event;
// public
}
diff --git a/MatrixUtils.Web/Pages/Tools/Moderation/FindUsersByRegex.razor b/MatrixUtils.Web/Pages/Tools/Moderation/FindUsersByRegex.razor
index 5ad9de4..9139561 100644
--- a/MatrixUtils.Web/Pages/Tools/Moderation/FindUsersByRegex.razor
+++ b/MatrixUtils.Web/Pages/Tools/Moderation/FindUsersByRegex.razor
@@ -145,7 +145,7 @@
private class Match {
public GenericRoom Room;
- public StateEventResponse Event;
+ public MatrixEventResponse Event;
public string RoomName { get; set; }
}
diff --git a/MatrixUtils.Web/Pages/Tools/Moderation/MembershipHistory.razor b/MatrixUtils.Web/Pages/Tools/Moderation/MembershipHistory.razor
index 11c4a80..ec1d190 100644
--- a/MatrixUtils.Web/Pages/Tools/Moderation/MembershipHistory.razor
+++ b/MatrixUtils.Web/Pages/Tools/Moderation/MembershipHistory.razor
@@ -31,23 +31,23 @@
Hide all
+ ShowJoins = ShowLeaves = ShowKnocks = ShowInvites = ShowBans = false;
+ StateHasChanged();
+ })">Hide all
Show all
+ ShowJoins = ShowLeaves = ShowKnocks = ShowInvites = ShowBans = true;
+ StateHasChanged();
+ })">Show all
Toggle all
+ ShowJoins ^= true;
+ ShowLeaves ^= true;
+ ShowKnocks ^= true;
+ ShowInvites ^= true;
+ ShowBans ^= true;
+ StateHasChanged();
+ })">Toggle all
@@ -56,25 +56,25 @@
kicks
unbans
profile updates
-
-
-
- invite actions
-
- accepted
- rejected
- retracted
-
-
-
-
- knock actions
-
- accepted
- rejected
- retracted
-
- }
+
+
+
+ invite actions
+
+ accepted
+ rejected
+ retracted
+
+
+
+
+ knock actions
+
+ accepted
+ rejected
+ retracted
+
+}
@if (DoDisambiguate) {
@@ -130,29 +130,29 @@
Un-disambiguate all
+ DoDisambiguate = DisambiguateProfileUpdates = DisambiguateKicks = DisambiguateUnbans = DisambiguateInviteAccepted = DisambiguateInviteRejected = DisambiguateInviteRetracted = DisambiguateKnockAccepted = DisambiguateKnockRejected = DisambiguateKnockRetracted = DisambiguateKnockActions = DisambiguateInviteActions = false;
+ StateHasChanged();
+ })">Un-disambiguate all
Disambiguate all
+ DoDisambiguate = DisambiguateProfileUpdates = DisambiguateKicks = DisambiguateUnbans = DisambiguateInviteAccepted = DisambiguateInviteRejected = DisambiguateInviteRetracted = DisambiguateKnockAccepted = DisambiguateKnockRejected = DisambiguateKnockRetracted = DisambiguateKnockActions = DisambiguateInviteActions = true;
+ StateHasChanged();
+ })">Disambiguate all
Toggle all
+ DisambiguateProfileUpdates ^= true;
+ DisambiguateKicks ^= true;
+ DisambiguateUnbans ^= true;
+ DisambiguateInviteAccepted ^= true;
+ DisambiguateInviteRejected ^= true;
+ DisambiguateInviteRetracted ^= true;
+ DisambiguateKnockAccepted ^= true;
+ DisambiguateKnockRejected ^= true;
+ DisambiguateKnockRetracted ^= true;
+ DisambiguateKnockActions ^= true;
+ DisambiguateInviteActions ^= true;
+ StateHasChanged();
+ })">Toggle all
}
@@ -306,18 +306,61 @@
private bool ShowBans { get; set; } = true;
private bool DoDisambiguate { get; set; } = true;
- private bool DisambiguateProfileUpdates { get => field && DoDisambiguate; set; } = true;
- private bool DisambiguateKicks { get => field && DoDisambiguate; set; } = true;
- private bool DisambiguateUnbans { get => field && DoDisambiguate; set; } = true;
- private bool DisambiguateInviteAccepted { get => field && DoDisambiguate && DisambiguateInviteActions; set; } = true;
- private bool DisambiguateInviteRejected { get => field && DoDisambiguate && DisambiguateInviteActions; set; } = true;
- private bool DisambiguateInviteRetracted { get => field && DoDisambiguate && DisambiguateInviteActions; set; } = true;
- private bool DisambiguateKnockAccepted { get => field && DoDisambiguate && DisambiguateKnockActions; set; } = true;
- private bool DisambiguateKnockRejected { get => field && DoDisambiguate && DisambiguateKnockActions; set; } = true;
- private bool DisambiguateKnockRetracted { get => field && DoDisambiguate && DisambiguateKnockActions; set; } = true;
-
- private bool DisambiguateKnockActions { get => field && DoDisambiguate; set; } = true;
- private bool DisambiguateInviteActions { get => field && DoDisambiguate; set; } = true;
+
+ private bool DisambiguateProfileUpdates {
+ get => field && DoDisambiguate;
+ set;
+ } = true;
+
+ private bool DisambiguateKicks {
+ get => field && DoDisambiguate;
+ set;
+ } = true;
+
+ private bool DisambiguateUnbans {
+ get => field && DoDisambiguate;
+ set;
+ } = true;
+
+ private bool DisambiguateInviteAccepted {
+ get => field && DoDisambiguate && DisambiguateInviteActions;
+ set;
+ } = true;
+
+ private bool DisambiguateInviteRejected {
+ get => field && DoDisambiguate && DisambiguateInviteActions;
+ set;
+ } = true;
+
+ private bool DisambiguateInviteRetracted {
+ get => field && DoDisambiguate && DisambiguateInviteActions;
+ set;
+ } = true;
+
+ private bool DisambiguateKnockAccepted {
+ get => field && DoDisambiguate && DisambiguateKnockActions;
+ set;
+ } = true;
+
+ private bool DisambiguateKnockRejected {
+ get => field && DoDisambiguate && DisambiguateKnockActions;
+ set;
+ } = true;
+
+ private bool DisambiguateKnockRetracted {
+ get => field && DoDisambiguate && DisambiguateKnockActions;
+ set;
+ } = true;
+
+ private bool DisambiguateKnockActions {
+ get => field && DoDisambiguate;
+ set;
+ } = true;
+
+ private bool DisambiguateInviteActions {
+ get => field && DoDisambiguate;
+ set;
+ } = true;
private bool ShowProfileUpdates {
get => field && DisambiguateProfileUpdates;
@@ -399,7 +442,7 @@
#endregion
private ObservableCollection Log { get; set; } = new();
- private List Memberships { get; set; } = [];
+ private List Memberships { get; set; } = [];
private AuthenticatedHomeserverGeneric Homeserver { get; set; }
[Parameter, SupplyParameterFromQuery(Name = "room")]
@@ -444,10 +487,10 @@
private readonly struct MembershipEntry {
public required MembershipTransition State { get; init; }
- public required StateEventResponse Event { get; init; }
- public required StateEventResponse? Previous { get; init; }
+ public required MatrixEventResponse Event { get; init; }
+ public required MatrixEventResponse? Previous { get; init; }
- public void Deconstruct(out MembershipTransition transition, out StateEventResponse evt, out StateEventResponse? prev) {
+ public void Deconstruct(out MembershipTransition transition, out MatrixEventResponse evt, out MatrixEventResponse? prev) {
transition = State;
evt = Event;
prev = Previous;
@@ -474,7 +517,7 @@
KnockRetracted
}
- private static IEnumerable GetTransitions(List evts) {
+ private static IEnumerable GetTransitions(List evts) {
Dictionary transitions = new();
foreach (var evt in evts.OrderBy(x => x.OriginServerTs)) {
var content = evt.TypedContent as RoomMemberEventContent ?? throw new InvalidOperationException("Event is not a RoomMemberEventContent!");
@@ -528,7 +571,7 @@
{ MembershipTransition.KnockRejected, MembershipTransition.Leave },
{ MembershipTransition.KnockRetracted, MembershipTransition.Leave }
}.ToFrozenDictionary();
-
+
foreach (var entry in entries) {
if (!DoDisambiguate) {
yield return entry;
diff --git a/MatrixUtils.Web/Pages/Tools/Moderation/RoomIntersections.razor b/MatrixUtils.Web/Pages/Tools/Moderation/RoomIntersections.razor
index ee77532..a8ae603 100644
--- a/MatrixUtils.Web/Pages/Tools/Moderation/RoomIntersections.razor
+++ b/MatrixUtils.Web/Pages/Tools/Moderation/RoomIntersections.razor
@@ -55,7 +55,7 @@
@sets.Item2[0].Room.RoomId |
@((sets.Item2[i].Member.TypedContent as RoomMemberEventContent).Membership) |
@(roomNames.ContainsKey(sets.Item2[i].Room) ? roomNames[sets.Item2[i].Room] : "") |
- @(roomAliasses.ContainsKey(sets.Item2[i].Room) ? roomAliasses[sets.Item2[i].Room] : "") |
+ @(roomAliasses.ContainsKey(sets.Item2[i].Room) ? roomAliasses[sets.Item2[i].Room] : "") |
}
else {
|
@@ -88,7 +88,7 @@
[Parameter, SupplyParameterFromQuery(Name = "b")]
public string ImportSetBSpaceId { get; set; } = "";
- Dictionary> roomMembers { get; set; } = new();
+ Dictionary> roomMembers { get; set; } = new();
Dictionary, List)> matches { get; set; } = new();
@@ -127,7 +127,7 @@
var setBusers = new Dictionary>();
await Task.WhenAll(GetMembers(RoomsA, setAusers), GetMembers(RoomsB, setBusers));
-
+
Log.Add($"Got {setAusers.Count} users in set A");
Log.Add($"Got {setBusers.Count} users in set B");
Log.Add("Calculating intersections...");
@@ -191,7 +191,7 @@
public class Match {
public GenericRoom Room { get; set; }
- public StateEventResponse Member { get; set; }
+ public MatrixEventResponse Member { get; set; }
}
}
\ No newline at end of file
diff --git a/MatrixUtils.Web/Pages/Tools/Moderation/UserTrace.razor b/MatrixUtils.Web/Pages/Tools/Moderation/UserTrace.razor
index 2261cb8..d160922 100644
--- a/MatrixUtils.Web/Pages/Tools/Moderation/UserTrace.razor
+++ b/MatrixUtils.Web/Pages/Tools/Moderation/UserTrace.razor
@@ -139,7 +139,7 @@
private class Match {
public GenericRoom Room;
- public StateEventResponse Event;
+ public MatrixEventResponse Event;
public string RoomName { get; set; }
}
@@ -169,7 +169,7 @@
}
}
- public string SummarizeMembership(StateEventResponse state) {
+ public string SummarizeMembership(MatrixEventResponse state) {
var membership = state.ContentAs();
var time = DateTimeOffset.FromUnixTimeMilliseconds(state.OriginServerTs!.Value);
return membership switch {
--
cgit 1.5.1