From f9e16bde59f57c3b6990c47e5082e3edeb527e4d Mon Sep 17 00:00:00 2001 From: llnulldisk <48621230+llnulldisk@users.noreply.github.com> Date: Tue, 20 Sep 2022 15:38:45 +0200 Subject: Add function to check if bot is blocked by user --- src/Api.cpp | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/Api.cpp b/src/Api.cpp index ea9a550..875a79a 100644 --- a/src/Api.cpp +++ b/src/Api.cpp @@ -1024,17 +1024,6 @@ File::Ptr Api::getFile(const std::string& fileId) const { return _tgTypeParser.parseJsonAndGetFile(sendRequest("getFile", args)); } -std::string Api::downloadFile(const std::string& filePath, - const std::vector& args) const { - std::string url(_url); - url += "/file/bot"; - url += _token; - url += "/"; - url += filePath; - - return _httpClient.makeRequest(url, args); -} - bool Api::banChatMember(boost::variant chatId, std::int64_t userId, std::int32_t untilDate, @@ -2243,6 +2232,34 @@ std::vector Api::getGameHighScores(std::int64_t userId, return _tgTypeParser.parseJsonAndGetArray(&TgTypeParser::parseJsonAndGetGameHighScore, sendRequest("getGameHighScores", args)); } +std::string Api::downloadFile(const std::string& filePath, + const std::vector& args) const { + std::string url(_url); + url += "/file/bot"; + url += _token; + url += "/"; + url += filePath; + + return _httpClient.makeRequest(url, args); +} + +bool Api::blockedByUser(std::int64_t chatId) const { + bool isBotBlocked = false; + + try { + sendChatAction(chatId, "typing"); + + } catch (std::exception& e) { + std::string error = e.what(); + + if (error.compare("Forbidden: bot was blocked by the user") == 0) { + isBotBlocked = true; + } + } + + return isBotBlocked; +} + boost::property_tree::ptree Api::sendRequest(const std::string& method, const std::vector& args) const { std::string url(_url); url += "/bot"; -- cgit v1.2.3