summaryrefslogtreecommitdiff
path: root/src/discord
diff options
context:
space:
mode:
Diffstat (limited to 'src/discord')
-rw-r--r--src/discord/discord.cpp7
-rw-r--r--src/discord/errors.hpp1
2 files changed, 8 insertions, 0 deletions
diff --git a/src/discord/discord.cpp b/src/discord/discord.cpp
index 5dc0464..75d066b 100644
--- a/src/discord/discord.cpp
+++ b/src/discord/discord.cpp
@@ -1206,6 +1206,13 @@ void DiscordClient::RemoteAuthLogin(const std::string &ticket, const sigc::slot<
if (CheckCode(r)) {
callback(nlohmann::json::parse(r.text).at("encrypted_token").get<std::string>(), DiscordError::NONE);
} else {
+ try {
+ const auto j = nlohmann::json::parse(r.text);
+ if (j.contains("captcha_service")) {
+ callback(std::nullopt, DiscordError::CAPTCHA_REQUIRED);
+ return;
+ }
+ } catch (...) {}
callback(std::nullopt, GetCodeFromResponse(r));
}
});
diff --git a/src/discord/errors.hpp b/src/discord/errors.hpp
index 4579563..8ead4f2 100644
--- a/src/discord/errors.hpp
+++ b/src/discord/errors.hpp
@@ -11,6 +11,7 @@ enum class DiscordError {
RELATIONSHIP_ALREADY_FRIENDS = 80007,
NONE = -1,
+ CAPTCHA_REQUIRED = -2,
};
constexpr const char *GetDiscordErrorDisplayString(DiscordError error) {