SupportChild/Transcriber.cs

63 lines
1.7 KiB
C#
Raw Permalink Normal View History

2022-04-18 10:52:03 +00:00
using System.IO;
2022-02-21 08:40:09 +00:00
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;
2022-08-21 07:33:27 +00:00
namespace SupportChild;
internal static class Transcriber
2022-02-21 08:40:09 +00:00
{
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);
2024-10-29 09:52:02 +00:00
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";
}
2022-05-17 13:11:57 +00:00
}