about summary refs log tree commit diff
path: root/ExampleBots/MediaModeratorPoC/PolicyEngine.cs
diff options
context:
space:
mode:
authorEmma [it/its]@Rory& <root@rory.gay>2023-11-23 05:42:33 +0100
committerEmma [it/its]@Rory& <root@rory.gay>2023-11-23 05:42:33 +0100
commit3e934eee892f69a8f78b94950993000522702769 (patch)
tree6aa0d3d26c9a07a7a3e097fe28abb785400bfbd6 /ExampleBots/MediaModeratorPoC/PolicyEngine.cs
parentAdd license retroactively, matching where the code originated from (MatrixRoo... (diff)
downloadLibMatrix-3e934eee892f69a8f78b94950993000522702769.tar.xz
Moderation bot work
Diffstat (limited to 'ExampleBots/MediaModeratorPoC/PolicyEngine.cs')
-rw-r--r--ExampleBots/MediaModeratorPoC/PolicyEngine.cs86
1 files changed, 0 insertions, 86 deletions
diff --git a/ExampleBots/MediaModeratorPoC/PolicyEngine.cs b/ExampleBots/MediaModeratorPoC/PolicyEngine.cs
deleted file mode 100644
index 0a0a565..0000000
--- a/ExampleBots/MediaModeratorPoC/PolicyEngine.cs
+++ /dev/null
@@ -1,86 +0,0 @@
-using LibMatrix.EventTypes.Spec;
-using LibMatrix.Helpers;
-using LibMatrix.Homeservers;
-using LibMatrix.RoomTypes;
-using LibMatrix.Services;
-using MediaModeratorPoC.AccountData;
-using MediaModeratorPoC.StateEventTypes;
-using Microsoft.Extensions.Logging;
-
-namespace MediaModeratorPoC;
-
-public class PolicyEngine(AuthenticatedHomeserverGeneric hs, ILogger<MediaModBot> logger, MediaModBotConfiguration configuration,
-    HomeserverResolverService hsResolver) {
-    public List<PolicyList> ActivePolicyLists { get; set; } = new();
-    private GenericRoom? _logRoom;
-    private GenericRoom? _controlRoom;
-
-    public async Task ReloadActivePolicyLists() {
-        // first time init
-        if (_logRoom is null || _controlRoom is null) {
-            var botData = await hs.GetAccountDataAsync<BotData>("gay.rory.modbot_data");
-            _logRoom ??= hs.GetRoom(botData.LogRoom ?? botData.ControlRoom);
-            _controlRoom ??= hs.GetRoom(botData.ControlRoom);
-        }
-
-        await _controlRoom?.SendMessageEventAsync(MessageFormatter.FormatSuccess("Reloading policy lists!"))!;
-        await _logRoom?.SendMessageEventAsync(
-            new RoomMessageEventContent(
-                body: "Reloading policy lists!",
-                messageType: "m.text"))!;
-
-        await _controlRoom?.SendMessageEventAsync(MessageFormatter.FormatSuccess("0/? policy lists loaded"))!;
-
-        var policyLists = new List<PolicyList>();
-        var policyListAccountData = await hs.GetAccountDataAsync<Dictionary<string, PolicyList>>("gay.rory.modbot.policy_lists");
-        foreach (var (roomId, policyList) in policyListAccountData) {
-            _logRoom?.SendMessageEventAsync(
-                new RoomMessageEventContent(
-                    body: $"Loading policy list {MessageFormatter.HtmlFormatMention(roomId)}!",
-                    messageType: "m.text"));
-            var room = hs.GetRoom(roomId);
-
-            policyList.Room = room;
-
-            var stateEvents = room.GetFullStateAsync();
-            await foreach (var stateEvent in stateEvents) {
-                if (stateEvent != null && stateEvent.GetType.IsAssignableTo(typeof(BasePolicy))) {
-                    policyList.Policies.Add(stateEvent);
-                }
-            }
-
-            //html table of policy count by type
-            var policyCount = policyList.Policies.GroupBy(x => x.Type).ToDictionary(x => x.Key, x => x.Count());
-            var policyCountTable = policyCount.Aggregate(
-                "<table><tr><th>Policy Type</th><th>Count</th></tr>",
-                (current, policy) => current + $"<tr><td>{policy.Key}</td><td>{policy.Value}</td></tr>");
-            policyCountTable += "</table>";
-
-            var policyCountTablePlainText = policyCount.Aggregate(
-                "Policy Type       | Count\n",
-                (current, policy) => current + $"{policy.Key,-16} | {policy.Value}\n");
-            await _logRoom?.SendMessageEventAsync(
-                new RoomMessageEventContent() {
-                    MessageType = "org.matrix.custom.html",
-                    Body = $"Policy count for {roomId}:\n{policyCountTablePlainText}",
-                    FormattedBody = $"Policy count for {MessageFormatter.HtmlFormatMention(roomId)}:\n{policyCountTable}",
-                })!;
-
-            await _logRoom?.SendMessageEventAsync(
-                new RoomMessageEventContent(
-                    body: $"Loaded {policyList.Policies.Count} policies for {MessageFormatter.HtmlFormatMention(roomId)}!",
-                    messageType: "m.text"))!;
-
-            policyLists.Add(policyList);
-
-            var progressMsgContent = MessageFormatter.FormatSuccess($"{policyLists.Count}/{policyListAccountData.Count} policy lists loaded");
-            //edit old message
-            progressMsgContent.RelatesTo = new() {
-
-            };
-            _controlRoom?.SendMessageEventAsync(progressMsgContent);
-        }
-
-        ActivePolicyLists = policyLists;
-    }
-}