Formatting

This commit is contained in:
Tyrrrz
2026-02-27 17:56:29 +02:00
parent 28f26e45fb
commit 675d910ea3
10 changed files with 29 additions and 35 deletions

View File

@@ -1,4 +1,4 @@
using DiscordChatExporter.Core.Discord; using DiscordChatExporter.Core.Discord;
namespace DiscordChatExporter.Cli.Tests.Infra; namespace DiscordChatExporter.Cli.Tests.Infra;
@@ -15,7 +15,7 @@ public static class ChannelIds
public static Snowflake GroupingTestCases { get; } = Snowflake.Parse("992092091545034842"); public static Snowflake GroupingTestCases { get; } = Snowflake.Parse("992092091545034842");
public static Snowflake FilterTestCases { get; } = Snowflake.Parse("866744075033641020"); public static Snowflake FilterTestCases { get; } = Snowflake.Parse("866744075033641020");
public static Snowflake ForwardTestCases { get; } = Snowflake.Parse("1455202357204877477"); public static Snowflake ForwardTestCases { get; } = Snowflake.Parse("1455202357204877477");
public static Snowflake MarkdownTestCases { get; } = Snowflake.Parse("866459526819348521"); public static Snowflake MarkdownTestCases { get; } = Snowflake.Parse("866459526819348521");

View File

@@ -19,9 +19,6 @@ public class HtmlForwardSpecs
); );
// Assert // Assert
message message.Text().Should().ContainAll("Forwarded", @"¯\_(ツ)_/¯", "December 29, 2025");
.Text()
.Should()
.ContainAll("Forwarded", @"¯\_(ツ)_/¯", "December 29, 2025");
} }
} }

View File

@@ -27,4 +27,3 @@ public class JsonForwardSpecs
forwardedMessage.GetProperty("timestamp").GetString().Should().StartWith("2025-12-29"); forwardedMessage.GetProperty("timestamp").GetString().Should().StartWith("2025-12-29");
} }
} }

View File

@@ -14,8 +14,6 @@ public class PlainTextForwardSpecs
var document = await ExportWrapper.ExportAsPlainTextAsync(ChannelIds.ForwardTestCases); var document = await ExportWrapper.ExportAsPlainTextAsync(ChannelIds.ForwardTestCases);
// Assert // Assert
document document.Should().ContainAll("{Forwarded Message}", @"¯\_(ツ)_/¯", "December 29, 2025");
.Should()
.ContainAll("{Forwarded Message}", @"¯\_(ツ)_/¯", "December 29, 2025");
} }
} }

View File

@@ -180,7 +180,7 @@ public partial record Message
// Currently Discord only supports 1 snapshot per forward // Currently Discord only supports 1 snapshot per forward
var forwardedMessage = json.GetPropertyOrNull("message_snapshots") var forwardedMessage = json.GetPropertyOrNull("message_snapshots")
?.EnumerateArrayOrNull() ?.EnumerateArrayOrNull()
?.Select(j => j.GetPropertyOrNull("message")) ?.Select(j => j.GetPropertyOrNull("message"))
.WhereNotNull() .WhereNotNull()
.Select(MessageSnapshot.Parse) .Select(MessageSnapshot.Parse)
.FirstOrDefault(); .FirstOrDefault();

View File

@@ -9,14 +9,15 @@ public record MessageReference(
MessageReferenceKind Kind, MessageReferenceKind Kind,
Snowflake? MessageId, Snowflake? MessageId,
Snowflake? ChannelId, Snowflake? ChannelId,
Snowflake? GuildId) Snowflake? GuildId
)
{ {
public static MessageReference Parse(JsonElement json) public static MessageReference Parse(JsonElement json)
{ {
var kind = var kind =
json.GetPropertyOrNull("type")?.GetInt32OrNull()?.Pipe(t => (MessageReferenceKind)t) json.GetPropertyOrNull("type")?.GetInt32OrNull()?.Pipe(t => (MessageReferenceKind)t)
?? MessageReferenceKind.Default; ?? MessageReferenceKind.Default;
var messageId = json.GetPropertyOrNull("message_id") var messageId = json.GetPropertyOrNull("message_id")
?.GetNonWhiteSpaceStringOrNull() ?.GetNonWhiteSpaceStringOrNull()
?.Pipe(Snowflake.Parse); ?.Pipe(Snowflake.Parse);

View File

@@ -15,7 +15,8 @@ public record MessageSnapshot(
string Content, string Content,
IReadOnlyList<Attachment> Attachments, IReadOnlyList<Attachment> Attachments,
IReadOnlyList<Embed> Embeds, IReadOnlyList<Embed> Embeds,
IReadOnlyList<Sticker> Stickers) IReadOnlyList<Sticker> Stickers
)
{ {
public static MessageSnapshot Parse(JsonElement json) public static MessageSnapshot Parse(JsonElement json)
{ {
@@ -23,37 +24,35 @@ public record MessageSnapshot(
json.GetPropertyOrNull("timestamp")?.GetDateTimeOffsetOrNull() json.GetPropertyOrNull("timestamp")?.GetDateTimeOffsetOrNull()
?? DateTimeOffset.MinValue; ?? DateTimeOffset.MinValue;
var editedTimestamp = json var editedTimestamp = json.GetPropertyOrNull("edited_timestamp")?.GetDateTimeOffsetOrNull();
.GetPropertyOrNull("edited_timestamp")
?.GetDateTimeOffsetOrNull();
var content = json.GetPropertyOrNull("content")?.GetStringOrNull() ?? ""; var content = json.GetPropertyOrNull("content")?.GetStringOrNull() ?? "";
var attachments = var attachments =
json json.GetPropertyOrNull("attachments")
.GetPropertyOrNull("attachments")
?.EnumerateArrayOrNull() ?.EnumerateArrayOrNull()
?.Select(Attachment.Parse) ?.Select(Attachment.Parse)
.ToArray() .ToArray()
?? []; ?? [];
var embeds = var embeds =
json json.GetPropertyOrNull("embeds")?.EnumerateArrayOrNull()?.Select(Embed.Parse).ToArray()
.GetPropertyOrNull("embeds")
?.EnumerateArrayOrNull()
?.Select(Embed.Parse)
.ToArray()
?? []; ?? [];
var stickers = var stickers =
json json.GetPropertyOrNull("sticker_items")
.GetPropertyOrNull("sticker_items")
?.EnumerateArrayOrNull() ?.EnumerateArrayOrNull()
?.Select(Sticker.Parse) ?.Select(Sticker.Parse)
.ToArray() .ToArray()
?? []; ?? [];
return new MessageSnapshot(timestamp, return new MessageSnapshot(
editedTimestamp, content, attachments, embeds, stickers); timestamp,
editedTimestamp,
content,
attachments,
embeds,
stickers
);
} }
} }

View File

@@ -352,7 +352,7 @@ internal class JsonMessageWriter(Stream stream, ExportContext context)
_writer.WriteEndObject(); _writer.WriteEndObject();
await _writer.FlushAsync(cancellationToken); await _writer.FlushAsync(cancellationToken);
} }
private async ValueTask WriteStickerAsync( private async ValueTask WriteStickerAsync(
Sticker sticker, Sticker sticker,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
@@ -553,14 +553,14 @@ internal class JsonMessageWriter(Stream stream, ExportContext context)
_writer.WriteString( _writer.WriteString(
"timestamp", "timestamp",
Context.NormalizeDate(message.ForwardedMessage.Timestamp) Context.NormalizeDate(message.ForwardedMessage.Timestamp)
); );
_writer.WriteString( _writer.WriteString(
"timestampEdited", "timestampEdited",
message.ForwardedMessage.EditedTimestamp?.Pipe(Context.NormalizeDate) message.ForwardedMessage.EditedTimestamp?.Pipe(Context.NormalizeDate)
); );
_writer.WriteString( _writer.WriteString(
"content", "content",
await FormatMarkdownAsync(message.ForwardedMessage.Content, cancellationToken) await FormatMarkdownAsync(message.ForwardedMessage.Content, cancellationToken)

View File

@@ -239,9 +239,9 @@ internal class PlainTextMessageWriter(Stream stream, ExportContext context)
); );
} }
await _writer.WriteLineAsync( await _writer.WriteLineAsync(
$"Originally sent: {Context.FormatDate(forwardedMessage.Timestamp)}" $"Originally sent: {Context.FormatDate(forwardedMessage.Timestamp)}"
); );
await WriteAttachmentsAsync(forwardedMessage.Attachments, cancellationToken); await WriteAttachmentsAsync(forwardedMessage.Attachments, cancellationToken);
await WriteEmbedsAsync(forwardedMessage.Embeds, cancellationToken); await WriteEmbedsAsync(forwardedMessage.Embeds, cancellationToken);

View File

@@ -24,7 +24,7 @@ public static class CollectionExtensions
} }
} }
} }
extension<T>(IEnumerable<T?> source) extension<T>(IEnumerable<T?> source)
where T : struct where T : struct
{ {