From f6e710909ca2819e45349d0b1b6f3f479404b8e7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Apr 2026 11:33:13 +0000 Subject: [PATCH] Fix export JSON detection to use numeric check; rename GuildIds to ServerIds in GetChannelsCommand Agent-Logs-Url: https://github.com/Tyrrrz/DiscordChatExporter/sessions/ab01ba49-ad07-42ba-b382-27f4d105a92b Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com> --- DiscordChatExporter.Cli/Commands/ExportChannelsCommand.cs | 4 ++-- DiscordChatExporter.Cli/Commands/GetChannelsCommand.cs | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/DiscordChatExporter.Cli/Commands/ExportChannelsCommand.cs b/DiscordChatExporter.Cli/Commands/ExportChannelsCommand.cs index c07fc37b..ae2e4559 100644 --- a/DiscordChatExporter.Cli/Commands/ExportChannelsCommand.cs +++ b/DiscordChatExporter.Cli/Commands/ExportChannelsCommand.cs @@ -39,8 +39,8 @@ public partial class ExportChannelsCommand : ExportCommandBase if (string.IsNullOrEmpty(trimmed)) continue; - // JSON array produced by 'list channels' / 'list channels dm' - if (trimmed.StartsWith('[')) + // Snowflake IDs are numeric; non-numeric input is treated as a JSON array + if (!char.IsAsciiDigit(trimmed[0])) { using var doc = JsonDocument.Parse(trimmed); foreach (var element in doc.RootElement.EnumerateArray()) diff --git a/DiscordChatExporter.Cli/Commands/GetChannelsCommand.cs b/DiscordChatExporter.Cli/Commands/GetChannelsCommand.cs index f0c8839e..f0bd5e65 100644 --- a/DiscordChatExporter.Cli/Commands/GetChannelsCommand.cs +++ b/DiscordChatExporter.Cli/Commands/GetChannelsCommand.cs @@ -18,7 +18,7 @@ namespace DiscordChatExporter.Cli.Commands; public partial class GetChannelsCommand : DiscordCommandBase { [CommandParameter(0, Name = "server-ids", Description = "Server ID(s).")] - public required IReadOnlyList GuildIds { get; set; } + public required IReadOnlyList ServerIds { get; set; } [CommandOption("include-vc", Description = "Include voice channels.")] public bool IncludeVoiceChannels { get; set; } = true; @@ -38,9 +38,9 @@ public partial class GetChannelsCommand : DiscordCommandBase var allChannels = new List(); - foreach (var guildId in GuildIds) + foreach (var serverId in ServerIds) { - var channels = (await Discord.GetGuildChannelsAsync(guildId, cancellationToken)) + var channels = (await Discord.GetGuildChannelsAsync(serverId, cancellationToken)) .Where(c => !c.IsCategory) .Where(c => IncludeVoiceChannels || !c.IsVoice) .OrderBy(c => c.Parent?.Position) @@ -51,7 +51,7 @@ public partial class GetChannelsCommand : DiscordCommandBase ThreadInclusionMode != ThreadInclusionMode.None ? ( await Discord.GetGuildThreadsAsync( - guildId, + serverId, ThreadInclusionMode == ThreadInclusionMode.All, null, null,