using System.IO; using System.Threading.Tasks; using DiscordChatExporter.Core.Discord; using DiscordChatExporter.Core.Discord.Data; using DiscordChatExporter.Core.Exporting; using DiscordChatExporter.Core.Exporting.Filtering; using DiscordChatExporter.Core.Exporting.Partitioning; namespace SupportChild; internal static class Transcriber { private static string transcriptDir = "./transcripts"; internal static async Task ExecuteAsync(ulong channelID, uint ticketID) { DiscordClient discordClient = new DiscordClient(Config.token); ChannelExporter exporter = new ChannelExporter(discordClient); if (!string.IsNullOrEmpty(SupportChild.commandLineArgs.transcriptDir)) { transcriptDir = SupportChild.commandLineArgs.transcriptDir; } if (!Directory.Exists(transcriptDir)) { Directory.CreateDirectory(transcriptDir); } Channel channel = await discordClient.GetChannelAsync(new Snowflake(channelID)); Guild guild = await discordClient.GetGuildAsync(channel.GuildId); ExportRequest request = new( guild, channel, GetPath(ticketID), null, ExportFormat.HtmlDark, null, null, PartitionLimit.Null, MessageFilter.Null, true, false, false, "en-US", true ); await exporter.ExportChannelAsync(request); } internal static string GetPath(uint ticketNumber) { return transcriptDir + "/" + GetFilename(ticketNumber); } internal static string GetFilename(uint ticketNumber) { return "ticket-" + ticketNumber.ToString("00000") + ".html"; } }