From 8612d2c84a5cd28ab57534a97f5ba9122b4c00f8 Mon Sep 17 00:00:00 2001 From: gan-of-culture <53971163+gan-of-culture@users.noreply.github.com> Date: Tue, 13 Sep 2022 22:51:10 +0200 Subject: [PATCH] Add HTML formatting for system messages (#926) --- .gitignore | 1 + .../Discord/Data/MessageKind.cs | 14 +++- .../Writers/Html/MessageGroupTemplate.cshtml | 70 +++++++++++++++---- .../Writers/Html/PreambleTemplate.cshtml | 43 ++++++++++-- .../Exporting/Writers/HtmlMessageWriter.cs | 21 +++++- 5 files changed, 123 insertions(+), 26 deletions(-) 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;