mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2025-05-30 14:35:18 -04:00
[CLI] Cleanup
This commit is contained in:
parent
1d39fe9c53
commit
a01835efb6
8 changed files with 17 additions and 18 deletions
|
@ -8,8 +8,8 @@ namespace DiscordChatExporter.Cli.Commands
|
||||||
[Command("export", Description = "Export a channel.")]
|
[Command("export", Description = "Export a channel.")]
|
||||||
public class ExportChannelCommand : ExportCommandBase
|
public class ExportChannelCommand : ExportCommandBase
|
||||||
{
|
{
|
||||||
[CommandOption("channel", 'c', IsRequired = true, Description= "Channel ID.")]
|
[CommandOption("channel", 'c', IsRequired = true, Description = "Channel ID.")]
|
||||||
public string ChannelId { get; set; }
|
public string ChannelId { get; set; } = "";
|
||||||
|
|
||||||
public ExportChannelCommand(SettingsService settingsService, DataService dataService, ExportService exportService)
|
public ExportChannelCommand(SettingsService settingsService, DataService dataService, ExportService exportService)
|
||||||
: base(settingsService, dataService, exportService)
|
: base(settingsService, dataService, exportService)
|
||||||
|
|
|
@ -19,7 +19,7 @@ namespace DiscordChatExporter.Cli.Commands
|
||||||
public ExportFormat ExportFormat { get; set; } = ExportFormat.HtmlDark;
|
public ExportFormat ExportFormat { get; set; } = ExportFormat.HtmlDark;
|
||||||
|
|
||||||
[CommandOption("output", 'o', Description = "Output file or directory path.")]
|
[CommandOption("output", 'o', Description = "Output file or directory path.")]
|
||||||
public string? OutputPath { get; set; }
|
public string OutputPath { get; set; } = Directory.GetCurrentDirectory();
|
||||||
|
|
||||||
[CommandOption("after", Description = "Limit to messages sent after this date.")]
|
[CommandOption("after", Description = "Limit to messages sent after this date.")]
|
||||||
public DateTimeOffset? After { get; set; }
|
public DateTimeOffset? After { get; set; }
|
||||||
|
@ -48,9 +48,8 @@ namespace DiscordChatExporter.Cli.Commands
|
||||||
console.Output.Write($"Exporting channel [{channel.Name}]... ");
|
console.Output.Write($"Exporting channel [{channel.Name}]... ");
|
||||||
var progress = console.CreateProgressTicker();
|
var progress = console.CreateProgressTicker();
|
||||||
|
|
||||||
var outputPath = OutputPath ?? Directory.GetCurrentDirectory();
|
await ExportService.ExportChatLogAsync(Token, guild, channel,
|
||||||
await ExportService.ExportChatLogAsync(GetToken(), guild, channel,
|
OutputPath, ExportFormat, PartitionLimit,
|
||||||
outputPath, ExportFormat, PartitionLimit,
|
|
||||||
After, Before, progress);
|
After, Before, progress);
|
||||||
|
|
||||||
console.Output.WriteLine();
|
console.Output.WriteLine();
|
||||||
|
@ -58,13 +57,13 @@ namespace DiscordChatExporter.Cli.Commands
|
||||||
|
|
||||||
protected async ValueTask ExportAsync(IConsole console, Channel channel)
|
protected async ValueTask ExportAsync(IConsole console, Channel channel)
|
||||||
{
|
{
|
||||||
var guild = await DataService.GetGuildAsync(GetToken(), channel.GuildId);
|
var guild = await DataService.GetGuildAsync(Token, channel.GuildId);
|
||||||
await ExportAsync(console, guild, channel);
|
await ExportAsync(console, guild, channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async ValueTask ExportAsync(IConsole console, string channelId)
|
protected async ValueTask ExportAsync(IConsole console, string channelId)
|
||||||
{
|
{
|
||||||
var channel = await DataService.GetChannelAsync(GetToken(), channelId);
|
var channel = await DataService.GetChannelAsync(Token, channelId);
|
||||||
await ExportAsync(console, channel);
|
await ExportAsync(console, channel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace DiscordChatExporter.Cli.Commands
|
||||||
public override async ValueTask ExecuteAsync(IConsole console)
|
public override async ValueTask ExecuteAsync(IConsole console)
|
||||||
{
|
{
|
||||||
// Get channels
|
// Get channels
|
||||||
var channels = await DataService.GetDirectMessageChannelsAsync(GetToken());
|
var channels = await DataService.GetDirectMessageChannelsAsync(Token);
|
||||||
|
|
||||||
// Order channels
|
// Order channels
|
||||||
channels = channels.OrderBy(c => c.Name).ToArray();
|
channels = channels.OrderBy(c => c.Name).ToArray();
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace DiscordChatExporter.Cli.Commands
|
||||||
public class ExportGuildCommand : ExportCommandBase
|
public class ExportGuildCommand : ExportCommandBase
|
||||||
{
|
{
|
||||||
[CommandOption("guild", 'g', IsRequired = true, Description = "Guild ID.")]
|
[CommandOption("guild", 'g', IsRequired = true, Description = "Guild ID.")]
|
||||||
public string GuildId { get; set; }
|
public string GuildId { get; set; } = "";
|
||||||
|
|
||||||
public ExportGuildCommand(SettingsService settingsService, DataService dataService, ExportService exportService)
|
public ExportGuildCommand(SettingsService settingsService, DataService dataService, ExportService exportService)
|
||||||
: base(settingsService, dataService, exportService)
|
: base(settingsService, dataService, exportService)
|
||||||
|
@ -24,7 +24,7 @@ namespace DiscordChatExporter.Cli.Commands
|
||||||
public override async ValueTask ExecuteAsync(IConsole console)
|
public override async ValueTask ExecuteAsync(IConsole console)
|
||||||
{
|
{
|
||||||
// Get channels
|
// Get channels
|
||||||
var channels = await DataService.GetGuildChannelsAsync(GetToken(), GuildId);
|
var channels = await DataService.GetGuildChannelsAsync(Token, GuildId);
|
||||||
|
|
||||||
// Filter and order channels
|
// Filter and order channels
|
||||||
channels = channels.Where(c => c.Type.IsExportable()).OrderBy(c => c.Name).ToArray();
|
channels = channels.Where(c => c.Type.IsExportable()).OrderBy(c => c.Name).ToArray();
|
||||||
|
|
|
@ -11,7 +11,7 @@ namespace DiscordChatExporter.Cli.Commands
|
||||||
public class GetChannelsCommand : TokenCommandBase
|
public class GetChannelsCommand : TokenCommandBase
|
||||||
{
|
{
|
||||||
[CommandOption("guild", 'g', IsRequired = true, Description = "Guild ID.")]
|
[CommandOption("guild", 'g', IsRequired = true, Description = "Guild ID.")]
|
||||||
public string GuildId { get; set; }
|
public string GuildId { get; set; } = "";
|
||||||
|
|
||||||
public GetChannelsCommand(DataService dataService)
|
public GetChannelsCommand(DataService dataService)
|
||||||
: base(dataService)
|
: base(dataService)
|
||||||
|
@ -21,7 +21,7 @@ namespace DiscordChatExporter.Cli.Commands
|
||||||
public override async ValueTask ExecuteAsync(IConsole console)
|
public override async ValueTask ExecuteAsync(IConsole console)
|
||||||
{
|
{
|
||||||
// Get channels
|
// Get channels
|
||||||
var channels = await DataService.GetGuildChannelsAsync(GetToken(), GuildId);
|
var channels = await DataService.GetGuildChannelsAsync(Token, GuildId);
|
||||||
|
|
||||||
// Filter and order channels
|
// Filter and order channels
|
||||||
channels = channels.Where(c => c.Type.IsExportable()).OrderBy(c => c.Name).ToArray();
|
channels = channels.Where(c => c.Type.IsExportable()).OrderBy(c => c.Name).ToArray();
|
||||||
|
|
|
@ -17,7 +17,7 @@ namespace DiscordChatExporter.Cli.Commands
|
||||||
public override async ValueTask ExecuteAsync(IConsole console)
|
public override async ValueTask ExecuteAsync(IConsole console)
|
||||||
{
|
{
|
||||||
// Get channels
|
// Get channels
|
||||||
var channels = await DataService.GetDirectMessageChannelsAsync(GetToken());
|
var channels = await DataService.GetDirectMessageChannelsAsync(Token);
|
||||||
|
|
||||||
// Order channels
|
// Order channels
|
||||||
channels = channels.OrderBy(c => c.Name).ToArray();
|
channels = channels.OrderBy(c => c.Name).ToArray();
|
||||||
|
|
|
@ -17,7 +17,7 @@ namespace DiscordChatExporter.Cli.Commands
|
||||||
public override async ValueTask ExecuteAsync(IConsole console)
|
public override async ValueTask ExecuteAsync(IConsole console)
|
||||||
{
|
{
|
||||||
// Get guilds
|
// Get guilds
|
||||||
var guilds = await DataService.GetUserGuildsAsync(GetToken());
|
var guilds = await DataService.GetUserGuildsAsync(Token);
|
||||||
|
|
||||||
// Order guilds
|
// Order guilds
|
||||||
guilds = guilds.OrderBy(g => g.Name).ToArray();
|
guilds = guilds.OrderBy(g => g.Name).ToArray();
|
||||||
|
|
|
@ -11,18 +11,18 @@ namespace DiscordChatExporter.Cli.Commands
|
||||||
protected DataService DataService { get; }
|
protected DataService DataService { get; }
|
||||||
|
|
||||||
[CommandOption("token", 't', IsRequired = true, Description = "Authorization token.")]
|
[CommandOption("token", 't', IsRequired = true, Description = "Authorization token.")]
|
||||||
public string TokenValue { get; set; }
|
public string TokenValue { get; set; } = "";
|
||||||
|
|
||||||
[CommandOption("bot", 'b', Description = "Whether this authorization token belongs to a bot.")]
|
[CommandOption("bot", 'b', Description = "Whether this authorization token belongs to a bot.")]
|
||||||
public bool IsBotToken { get; set; }
|
public bool IsBotToken { get; set; }
|
||||||
|
|
||||||
|
protected AuthToken Token => new AuthToken(IsBotToken ? AuthTokenType.Bot : AuthTokenType.User, TokenValue);
|
||||||
|
|
||||||
protected TokenCommandBase(DataService dataService)
|
protected TokenCommandBase(DataService dataService)
|
||||||
{
|
{
|
||||||
DataService = dataService;
|
DataService = dataService;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected AuthToken GetToken() => new AuthToken(IsBotToken ? AuthTokenType.Bot : AuthTokenType.User, TokenValue);
|
|
||||||
|
|
||||||
public abstract ValueTask ExecuteAsync(IConsole console);
|
public abstract ValueTask ExecuteAsync(IConsole console);
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue