mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2025-06-05 01:03:44 -04:00
Refactor
This commit is contained in:
parent
af11064a85
commit
ea31b1b270
19 changed files with 67 additions and 98 deletions
|
@ -27,6 +27,8 @@ namespace DiscordChatExporter.Core.Discord.Data
|
|||
|
||||
public partial class ChannelCategory
|
||||
{
|
||||
public static ChannelCategory Unknown { get; } = new(Snowflake.Zero, "<unknown category>", 0);
|
||||
|
||||
public static ChannelCategory Parse(JsonElement json, int? position = null)
|
||||
{
|
||||
var id = json.GetProperty("id").GetString().Pipe(Snowflake.Parse);
|
||||
|
@ -41,7 +43,5 @@ namespace DiscordChatExporter.Core.Discord.Data
|
|||
position ?? json.GetPropertyOrNull("position")?.GetInt32()
|
||||
);
|
||||
}
|
||||
|
||||
public static ChannelCategory Empty { get; } = new(Snowflake.Zero, "<unknown category>", 0);
|
||||
}
|
||||
}
|
|
@ -10,20 +10,6 @@ using JsonExtensions.Reading;
|
|||
|
||||
namespace DiscordChatExporter.Core.Discord.Data
|
||||
{
|
||||
// https://discord.com/developers/docs/resources/channel#message-object-message-types
|
||||
public enum MessageKind
|
||||
{
|
||||
Default = 0,
|
||||
RecipientAdd = 1,
|
||||
RecipientRemove = 2,
|
||||
Call = 3,
|
||||
ChannelNameChange = 4,
|
||||
ChannelIconChange = 5,
|
||||
ChannelPinnedMessage = 6,
|
||||
GuildMemberJoin = 7,
|
||||
Reply = 19
|
||||
}
|
||||
|
||||
// https://discord.com/developers/docs/resources/channel#message-object
|
||||
public partial class Message : IHasId
|
||||
{
|
||||
|
|
16
DiscordChatExporter.Core/Discord/Data/MessageKind.cs
Normal file
16
DiscordChatExporter.Core/Discord/Data/MessageKind.cs
Normal file
|
@ -0,0 +1,16 @@
|
|||
namespace DiscordChatExporter.Core.Discord.Data
|
||||
{
|
||||
// https://discord.com/developers/docs/resources/channel#message-object-message-types
|
||||
public enum MessageKind
|
||||
{
|
||||
Default = 0,
|
||||
RecipientAdd = 1,
|
||||
RecipientRemove = 2,
|
||||
Call = 3,
|
||||
ChannelNameChange = 4,
|
||||
ChannelIconChange = 5,
|
||||
ChannelPinnedMessage = 6,
|
||||
GuildMemberJoin = 7,
|
||||
Reply = 19
|
||||
}
|
||||
}
|
|
@ -160,13 +160,13 @@ namespace DiscordChatExporter.Core.Discord
|
|||
yield return Role.Parse(roleJson);
|
||||
}
|
||||
|
||||
public async ValueTask<Member?> TryGetGuildMemberAsync(Snowflake guildId, User user)
|
||||
public async ValueTask<Member> GetGuildMemberAsync(Snowflake guildId, User user)
|
||||
{
|
||||
if (guildId == Guild.DirectMessages.Id)
|
||||
return Member.CreateForUser(user);
|
||||
|
||||
var response = await TryGetJsonResponseAsync($"guilds/{guildId}/members/{user.Id}");
|
||||
return response?.Pipe(Member.Parse);
|
||||
return response?.Pipe(Member.Parse) ?? Member.CreateForUser(user);
|
||||
}
|
||||
|
||||
public async ValueTask<ChannelCategory> GetChannelCategoryAsync(Snowflake channelId)
|
||||
|
@ -180,7 +180,7 @@ namespace DiscordChatExporter.Core.Discord
|
|||
// Instead, we use an empty channel category as a fallback.
|
||||
catch (DiscordChatExporterException)
|
||||
{
|
||||
return ChannelCategory.Empty;
|
||||
return ChannelCategory.Unknown;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,12 +5,12 @@ namespace DiscordChatExporter.Core.Exceptions
|
|||
{
|
||||
public partial class DiscordChatExporterException : Exception
|
||||
{
|
||||
public bool IsCritical { get; }
|
||||
public bool IsFatal { get; }
|
||||
|
||||
public DiscordChatExporterException(string message, bool isCritical = false)
|
||||
public DiscordChatExporterException(string message, bool isFatal = false)
|
||||
: base(message)
|
||||
{
|
||||
IsCritical = isCritical;
|
||||
IsFatal = isFatal;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ Failed to perform an HTTP request.
|
|||
}
|
||||
|
||||
internal static DiscordChatExporterException Unauthorized() =>
|
||||
new("Authentication token is invalid.");
|
||||
new("Authentication token is invalid.", true);
|
||||
|
||||
internal static DiscordChatExporterException Forbidden() =>
|
||||
new("Access is forbidden.");
|
||||
|
|
|
@ -49,10 +49,7 @@ namespace DiscordChatExporter.Core.Exporting
|
|||
if (!encounteredUsers.Add(referencedUser))
|
||||
continue;
|
||||
|
||||
var member =
|
||||
await _discord.TryGetGuildMemberAsync(request.Guild.Id, referencedUser) ??
|
||||
Member.CreateForUser(referencedUser);
|
||||
|
||||
var member = await _discord.GetGuildMemberAsync(request.Guild.Id, referencedUser);
|
||||
contextMembers.Add(member);
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace DiscordChatExporter.Core.Exporting
|
|||
|
||||
private async ValueTask<MessageWriter> GetWriterAsync()
|
||||
{
|
||||
// Ensure partition limit has not been exceeded
|
||||
// Ensure partition limit has not been reached
|
||||
if (_writer is not null &&
|
||||
_context.Request.PartitionLimit.IsReached(_writer.MessagesWritten, _writer.BytesWritten))
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue