summaryrefslogtreecommitdiff
path: root/discord/user.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-06-03 03:59:25 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2021-06-03 03:59:25 -0400
commit14d0968c926b36da2d8d4e5c12b456ea52d5f8f3 (patch)
treea23a4a1785c7283ca6b1f4013e91a086a96f1849 /discord/user.cpp
parentfe9642f1f163761d059f48843a125030223fd512 (diff)
downloadabaddon-portaudio-14d0968c926b36da2d8d4e5c12b456ea52d5f8f3.tar.gz
abaddon-portaudio-14d0968c926b36da2d8d4e5c12b456ea52d5f8f3.zip
basic support of per-guild avatars
Diffstat (limited to 'discord/user.cpp')
-rw-r--r--discord/user.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/discord/user.cpp b/discord/user.cpp
index d1f6755..a68346e 100644
--- a/discord/user.cpp
+++ b/discord/user.cpp
@@ -13,11 +13,33 @@ bool UserData::HasAnimatedAvatar() const {
return Avatar.size() > 0 && Avatar[0] == 'a' && Avatar[1] == '_';
}
+std::string UserData::GetAvatarURL(Snowflake guild_id, std::string ext, std::string size) const {
+ const auto member = Abaddon::Get().GetDiscordClient().GetMember(ID, guild_id);
+ if (member.has_value() && member->Avatar.has_value())
+ return "https://cdn.discordapp.com/guilds/" +
+ std::to_string(guild_id) + "/users/" + std::to_string(ID) +
+ "/avatars/" + *member->Avatar + "." +
+ ext + "?" + "size=" + size;
+ else
+ return GetAvatarURL(ext, size);
+}
+
+std::string UserData::GetAvatarURL(const std::optional<Snowflake> &guild_id, std::string ext, std::string size) const {
+ if (guild_id.has_value())
+ return GetAvatarURL(*guild_id, ext, size);
+ else
+ return GetAvatarURL(ext, size);
+}
+
std::string UserData::GetAvatarURL(std::string ext, std::string size) const {
if (HasAvatar())
return "https://cdn.discordapp.com/avatars/" + std::to_string(ID) + "/" + Avatar + "." + ext + "?size=" + size;
else
- return "https://cdn.discordapp.com/embed/avatars/" + std::to_string(std::stoul(Discriminator) % 5) + ".png"; // size isn't respected by the cdn
+ return GetDefaultAvatarURL();
+}
+
+std::string UserData::GetDefaultAvatarURL() const {
+ return "https://cdn.discordapp.com/embed/avatars/" + std::to_string(std::stoul(Discriminator) % 5) + ".png"; // size isn't respected by the cdn
}
Snowflake UserData::GetHoistedRole(Snowflake guild_id, bool with_color) const {