summaryrefslogtreecommitdiff
path: root/src/discord/user.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2022-03-26 02:58:59 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2022-03-26 02:58:59 -0400
commita0b3c9f8a4f8d2c39258d4c142f8604423576d91 (patch)
tree841155a65b439b61a5c58c1f64878152c20d4f51 /src/discord/user.cpp
parent481685b3bbb2b0270870dec5de87e60fc2d84d15 (diff)
parenta2a45757e917aa97e71cf0b84a01dc843759a5f6 (diff)
downloadabaddon-portaudio-a0b3c9f8a4f8d2c39258d4c142f8604423576d91.tar.gz
abaddon-portaudio-a0b3c9f8a4f8d2c39258d4c142f8604423576d91.zip
Merge branch 'master' into msys
Diffstat (limited to 'src/discord/user.cpp')
-rw-r--r--src/discord/user.cpp29
1 files changed, 24 insertions, 5 deletions
diff --git a/src/discord/user.cpp b/src/discord/user.cpp
index fae212d..c2e6069 100644
--- a/src/discord/user.cpp
+++ b/src/discord/user.cpp
@@ -6,22 +6,41 @@ bool UserData::IsDeleted() const {
}
bool UserData::HasAvatar() const {
- return Avatar.size() > 0;
+ return !Avatar.empty();
}
-bool UserData::HasAnimatedAvatar() const {
- return Avatar.size() > 0 && Avatar[0] == 'a' && Avatar[1] == '_';
+bool UserData::HasAnimatedAvatar() const noexcept {
+ return !Avatar.empty() && Avatar[0] == 'a' && Avatar[1] == '_';
+}
+
+bool UserData::HasAnimatedAvatar(Snowflake guild_id) const {
+ const auto member = Abaddon::Get().GetDiscordClient().GetMember(ID, guild_id);
+ if (member.has_value() && member->Avatar.has_value() && member->Avatar.value()[0] == 'a' && member->Avatar.value()[1] == '_')
+ return true;
+ else if (member.has_value() && !member->Avatar.has_value())
+ return HasAnimatedAvatar();
+ return false;
+}
+
+bool UserData::HasAnimatedAvatar(const std::optional<Snowflake> &guild_id) const {
+ if (guild_id.has_value())
+ return HasAnimatedAvatar(*guild_id);
+ else
+ return HasAnimatedAvatar();
}
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())
+ if (member.has_value() && member->Avatar.has_value()) {
+ if (ext == "gif" && !(member->Avatar.value()[0] == 'a' && member->Avatar.value()[1] == '_'))
+ return GetAvatarURL(ext, size);
return "https://cdn.discordapp.com/guilds/" +
std::to_string(guild_id) + "/users/" + std::to_string(ID) +
"/avatars/" + *member->Avatar + "." +
ext + "?" + "size=" + size;
- else
+ } else {
return GetAvatarURL(ext, size);
+ }
}
std::string UserData::GetAvatarURL(const std::optional<Snowflake> &guild_id, std::string ext, std::string size) const {