From 08f5483df2c01eba7c764cdaec94fca71e4976b8 Mon Sep 17 00:00:00 2001 From: Rory& Date: Thu, 30 May 2024 09:31:29 +0000 Subject: Clarify LegacyEvent types --- .../State/Policy/PolicyRuleStateEventContent.cs | 107 --------------------- 1 file changed, 107 deletions(-) delete mode 100644 LibMatrix.EventTypes/Spec/State/Policy/PolicyRuleStateEventContent.cs (limited to 'LibMatrix.EventTypes/Spec/State/Policy/PolicyRuleStateEventContent.cs') diff --git a/LibMatrix.EventTypes/Spec/State/Policy/PolicyRuleStateEventContent.cs b/LibMatrix.EventTypes/Spec/State/Policy/PolicyRuleStateEventContent.cs deleted file mode 100644 index 6006048..0000000 --- a/LibMatrix.EventTypes/Spec/State/Policy/PolicyRuleStateEventContent.cs +++ /dev/null @@ -1,107 +0,0 @@ -using System.Text.Json.Serialization; -using ArcaneLibs.Attributes; - -namespace LibMatrix.EventTypes.Spec.State.Policy; - -//spec -[MatrixEvent(EventName = EventId)] //spec -[MatrixEvent(EventName = "m.room.rule.server", Legacy = true)] //??? -[MatrixEvent(EventName = "org.matrix.mjolnir.rule.server", Legacy = true)] //legacy -[FriendlyName(Name = "Server policy", NamePlural = "Server policies")] -public class ServerPolicyRuleEventContent : PolicyRuleEventContent { - public const string EventId = "m.policy.rule.server"; -} - -[MatrixEvent(EventName = EventId)] //spec -[MatrixEvent(EventName = "m.room.rule.user", Legacy = true)] //??? -[MatrixEvent(EventName = "org.matrix.mjolnir.rule.user", Legacy = true)] //legacy -[FriendlyName(Name = "User policy", NamePlural = "User policies")] -public class UserPolicyRuleEventContent : PolicyRuleEventContent { - public const string EventId = "m.policy.rule.user"; -} - -[MatrixEvent(EventName = EventId)] //spec -[MatrixEvent(EventName = "m.room.rule.room", Legacy = true)] //??? -[MatrixEvent(EventName = "org.matrix.mjolnir.rule.room", Legacy = true)] //legacy -[FriendlyName(Name = "Room policy", NamePlural = "Room policies")] -public class RoomPolicyRuleEventContent : PolicyRuleEventContent { - public const string EventId = "m.policy.rule.room"; -} - -public abstract class PolicyRuleEventContent : EventContent { - public PolicyRuleEventContent() => Console.WriteLine($"init policy {GetType().Name}"); - private string? _reason; - - /// - /// Entity this ban applies to, can use * and ? as globs. - /// Policy is invalid if entity is null - /// - [JsonPropertyName("entity")] - [FriendlyName(Name = "Entity")] - public string? Entity { get; set; } - - private bool init; - - /// - /// Reason this user is banned - /// - [JsonPropertyName("reason")] - [FriendlyName(Name = "Reason")] - public virtual string? Reason { - get => - // Console.WriteLine($"Read policy reason: {_reason}"); - _reason; - set => - // Console.WriteLine($"Set policy reason: {value}"); - // if(init) - // Console.WriteLine(string.Join('\n', Environment.StackTrace.Split('\n')[..5])); - // init = true; - _reason = value; - } - - /// - /// Suggested action to take - /// - [JsonPropertyName("recommendation")] - [FriendlyName(Name = "Recommendation")] - public string? Recommendation { get; set; } - - /// - /// Expiry time in milliseconds since the unix epoch, or null if the ban has no expiry. - /// - [JsonPropertyName("support.feline.policy.expiry.rev.2")] //stable prefix: expiry, msc pending - [TableHide] - public long? Expiry { get; set; } - - //utils - /// - /// Readable expiry time, provided for easy interaction - /// - [JsonPropertyName("gay.rory.matrix_room_utils.readable_expiry_time_utc")] - [FriendlyName(Name = "Expires at")] - public DateTime? ExpiryDateTime { - get => Expiry == null ? null : DateTimeOffset.FromUnixTimeMilliseconds(Expiry.Value).DateTime; - set { - if (value is not null) - Expiry = ((DateTimeOffset)value).ToUnixTimeMilliseconds(); - } - } -} - -public static class PolicyRecommendationTypes { - /// - /// Ban this user - /// - public static string Ban = "m.ban"; - - /// - /// Mute this user - /// - public static string Mute = "support.feline.policy.recommendation_mute"; //stable prefix: m.mute, msc pending -} - -// public class PolicySchemaDefinition { -// public required string Name { get; set; } -// public required bool Optional { get; set; } -// -// } \ No newline at end of file -- cgit 1.4.1