mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2025-05-23 03:06:53 -04:00
Update avatar resolving for users without discriminator
This commit is contained in:
parent
c3abeadf01
commit
bd4cfcdaf6
3 changed files with 7 additions and 5 deletions
|
@ -47,8 +47,8 @@ public static class ImageCdn
|
|||
? $"https://cdn.discordapp.com/avatars/{userId}/{avatarHash}.gif?size={size}"
|
||||
: $"https://cdn.discordapp.com/avatars/{userId}/{avatarHash}.png?size={size}";
|
||||
|
||||
public static string GetFallbackUserAvatarUrl(int discriminator) =>
|
||||
$"https://cdn.discordapp.com/embed/avatars/{discriminator % 5}.png";
|
||||
public static string GetFallbackUserAvatarUrl(int index = 0) =>
|
||||
$"https://cdn.discordapp.com/embed/avatars/{index}.png";
|
||||
|
||||
public static string GetMemberAvatarUrl(Snowflake guildId, Snowflake userId, string avatarHash, int size = 512) =>
|
||||
avatarHash.StartsWith("a_", StringComparison.Ordinal)
|
||||
|
|
|
@ -12,7 +12,7 @@ public record Guild(Snowflake Id, string Name, string IconUrl) : IHasId
|
|||
public static Guild DirectMessages { get; } = new(
|
||||
Snowflake.Zero,
|
||||
"Direct Messages",
|
||||
ImageCdn.GetFallbackUserAvatarUrl(0)
|
||||
ImageCdn.GetFallbackUserAvatarUrl()
|
||||
);
|
||||
|
||||
public static Guild Parse(JsonElement json)
|
||||
|
@ -25,7 +25,7 @@ public record Guild(Snowflake Id, string Name, string IconUrl) : IHasId
|
|||
.GetPropertyOrNull("icon")?
|
||||
.GetNonWhiteSpaceStringOrNull()?
|
||||
.Pipe(h => ImageCdn.GetGuildIconUrl(id, h)) ??
|
||||
ImageCdn.GetFallbackUserAvatarUrl(0);
|
||||
ImageCdn.GetFallbackUserAvatarUrl();
|
||||
|
||||
return new Guild(id, name, iconUrl);
|
||||
}
|
||||
|
|
|
@ -45,12 +45,14 @@ public partial record User
|
|||
var name = json.GetProperty("username").GetNonNullString();
|
||||
var displayName = json.GetPropertyOrNull("global_name")?.GetNonWhiteSpaceStringOrNull() ?? name;
|
||||
|
||||
var avatarIndex = discriminator % 5 ?? (int)((id.Value >> 22) % 6);
|
||||
|
||||
var avatarUrl =
|
||||
json
|
||||
.GetPropertyOrNull("avatar")?
|
||||
.GetNonWhiteSpaceStringOrNull()?
|
||||
.Pipe(h => ImageCdn.GetUserAvatarUrl(id, h)) ??
|
||||
ImageCdn.GetFallbackUserAvatarUrl(discriminator ?? 0);
|
||||
ImageCdn.GetFallbackUserAvatarUrl(avatarIndex);
|
||||
|
||||
return new User(id, isBot, discriminator, name, displayName, avatarUrl);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue