diff options
author | Emma [it/its]@Rory& <root@rory.gay> | 2023-11-23 05:42:33 +0100 |
---|---|---|
committer | Emma [it/its]@Rory& <root@rory.gay> | 2023-11-23 05:42:33 +0100 |
commit | 3e934eee892f69a8f78b94950993000522702769 (patch) | |
tree | 6aa0d3d26c9a07a7a3e097fe28abb785400bfbd6 /ExampleBots/ModerationBot/StateEventTypes/Policies | |
parent | Add license retroactively, matching where the code originated from (MatrixRoo... (diff) | |
download | LibMatrix-3e934eee892f69a8f78b94950993000522702769.tar.xz |
Moderation bot work
Diffstat (limited to '')
-rw-r--r-- | ExampleBots/ModerationBot/StateEventTypes/Policies/BasePolicy.cs (renamed from ExampleBots/MediaModeratorPoC/StateEventTypes/BasePolicy.cs) | 15 | ||||
-rw-r--r-- | ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/MediaPolicyFile.cs (renamed from ExampleBots/MediaModeratorPoC/StateEventTypes/MediaPolicyStateEventData.cs) | 9 | ||||
-rw-r--r-- | ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/MediaPolicyHomeserver.cs | 11 | ||||
-rw-r--r-- | ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/MessagePolicyContainsText.cs | 11 | ||||
-rw-r--r-- | ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/UnknownPolicy.cs | 10 |
5 files changed, 48 insertions, 8 deletions
diff --git a/ExampleBots/MediaModeratorPoC/StateEventTypes/BasePolicy.cs b/ExampleBots/ModerationBot/StateEventTypes/Policies/BasePolicy.cs index 7735314..94b2f63 100644 --- a/ExampleBots/MediaModeratorPoC/StateEventTypes/BasePolicy.cs +++ b/ExampleBots/ModerationBot/StateEventTypes/Policies/BasePolicy.cs @@ -3,14 +3,14 @@ using System.Text.Json.Serialization; using LibMatrix; using LibMatrix.Interfaces; -namespace MediaModeratorPoC.StateEventTypes; +namespace ModerationBot.StateEventTypes.Policies; public abstract class BasePolicy : EventContent { /// <summary> - /// Entity this policy applies to + /// Entity this policy applies to, null if event was redacted /// </summary> [JsonPropertyName("entity")] - public string Entity { get; set; } + public string? Entity { get; set; } /// <summary> /// Reason this policy exists @@ -40,4 +40,13 @@ public abstract class BasePolicy : EventContent { get => Expiry == null ? null : DateTimeOffset.FromUnixTimeMilliseconds(Expiry.Value).DateTime; set => Expiry = value is null ? null : ((DateTimeOffset)value).ToUnixTimeMilliseconds(); } + +#region Internal metadata + + [JsonIgnore] + public PolicyList PolicyList { get; set; } + + public StateEventResponse OriginalEvent { get; set; } + +#endregion } diff --git a/ExampleBots/MediaModeratorPoC/StateEventTypes/MediaPolicyStateEventData.cs b/ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/MediaPolicyFile.cs index 603a858..c5b6ef2 100644 --- a/ExampleBots/MediaModeratorPoC/StateEventTypes/MediaPolicyStateEventData.cs +++ b/ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/MediaPolicyFile.cs @@ -1,17 +1,16 @@ using System.Text.Json.Serialization; using LibMatrix.EventTypes; -namespace MediaModeratorPoC.StateEventTypes; +namespace ModerationBot.StateEventTypes.Policies.Implementations; /// <summary> /// File policy event, entity is the MXC URI of the file, hashed with SHA3-256. /// </summary> -[MatrixEvent(EventName = "gay.rory.media_moderator_poc.rule.homeserver")] -[MatrixEvent(EventName = "gay.rory.media_moderator_poc.rule.media")] -public class MediaPolicyEventContent : BasePolicy { +[MatrixEvent(EventName = "gay.rory.moderation.rule.media")] +public class MediaPolicyFile : BasePolicy { /// <summary> /// Hash of the file /// </summary> [JsonPropertyName("file_hash")] - public byte[]? FileHash { get; set; } + public string? FileHash { get; set; } } diff --git a/ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/MediaPolicyHomeserver.cs b/ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/MediaPolicyHomeserver.cs new file mode 100644 index 0000000..3dfd937 --- /dev/null +++ b/ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/MediaPolicyHomeserver.cs @@ -0,0 +1,11 @@ +using System.Text.Json.Serialization; +using LibMatrix.EventTypes; + +namespace ModerationBot.StateEventTypes.Policies.Implementations; + +/// <summary> +/// Homeserver media policy event, entity is the MXC URI of the file, hashed with SHA3-256. +/// </summary> +[MatrixEvent(EventName = "gay.rory.moderation.rule.media.homeserver")] +public class MediaPolicyHomeserver : BasePolicy { +} diff --git a/ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/MessagePolicyContainsText.cs b/ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/MessagePolicyContainsText.cs new file mode 100644 index 0000000..daac162 --- /dev/null +++ b/ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/MessagePolicyContainsText.cs @@ -0,0 +1,11 @@ +using System.Text.Json.Serialization; +using LibMatrix.EventTypes; + +namespace ModerationBot.StateEventTypes.Policies.Implementations; + +/// <summary> +/// Text contains policy event, entity is the text to contain. +/// </summary> +[MatrixEvent(EventName = "gay.rory.moderation.rule.text.contains")] +public class MessagePolicyContainsText : BasePolicy { +} diff --git a/ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/UnknownPolicy.cs b/ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/UnknownPolicy.cs new file mode 100644 index 0000000..8dc8258 --- /dev/null +++ b/ExampleBots/ModerationBot/StateEventTypes/Policies/Implementations/UnknownPolicy.cs @@ -0,0 +1,10 @@ +using System.Text.Json.Serialization; +using LibMatrix.EventTypes; + +namespace ModerationBot.StateEventTypes.Policies.Implementations; + +/// <summary> +/// Unknown policy event, usually used for handling unknown cases +/// </summary> +public class UnknownPolicy : BasePolicy { +} |