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;
@@ -15,7 +15,7 @@ public static class ChannelIds
public static Snowflake GroupingTestCases { get; } = Snowflake.Parse("992092091545034842");
public static Snowflake FilterTestCases { get; } = Snowflake.Parse("866744075033641020");
public static Snowflake ForwardTestCases { get; } = Snowflake.Parse("1455202357204877477");
public static Snowflake MarkdownTestCases { get; } = Snowflake.Parse("866459526819348521");

View File

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

View File

@@ -14,8 +14,6 @@ public class PlainTextForwardSpecs
var document = await ExportWrapper.ExportAsPlainTextAsync(ChannelIds.ForwardTestCases);
// Assert
document
.Should()
.ContainAll("{Forwarded Message}", @"¯\_(ツ)_/¯", "December 29, 2025");
document.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
var forwardedMessage = json.GetPropertyOrNull("message_snapshots")
?.EnumerateArrayOrNull()
?.Select(j => j.GetPropertyOrNull("message"))
?.Select(j => j.GetPropertyOrNull("message"))
.WhereNotNull()
.Select(MessageSnapshot.Parse)
.FirstOrDefault();

View File

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

View File

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

View File

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

View File

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

View File

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