diff --git a/.gitignore b/.gitignore index 1923141..33e5fdf 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ *.sln.docstates .idea/ .vs/ +.vscode/ # Build results [Dd]ebug/ diff --git a/DiscordChatExporter.Core/Discord/Data/MessageKind.cs b/DiscordChatExporter.Core/Discord/Data/MessageKind.cs index c64fdac..67fb609 100644 --- a/DiscordChatExporter.Core/Discord/Data/MessageKind.cs +++ b/DiscordChatExporter.Core/Discord/Data/MessageKind.cs @@ -1,4 +1,6 @@ -namespace DiscordChatExporter.Core.Discord.Data; +using System.Text.RegularExpressions; + +namespace DiscordChatExporter.Core.Discord.Data; // https://discord.com/developers/docs/resources/channel#message-object-message-types public enum MessageKind @@ -12,4 +14,14 @@ public enum MessageKind ChannelPinnedMessage = 6, GuildMemberJoin = 7, Reply = 19 +} + +public static class MessageKindExtensions +{ + public static bool IsSystemMessage(this MessageKind c) => + c is not MessageKind.Default and not MessageKind.Reply; + + public static string ToCssIdFormat(this MessageKind c) => + string.Join("-", Regex.Split(c.ToString(), @"(? @foreach (var (message, i) in Model.Messages.WithIndex()) { + var isSystemMessage = message.Kind.IsSystemMessage(); + var isFirst = i == 0;