From ad8ca77ece2b3185ca546f120dc4f7a13e602aa2 Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Tue, 29 May 2018 21:55:25 +0900 Subject: Bot API 2.2 (Game) update --- src/Api.cpp | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'src/Api.cpp') diff --git a/src/Api.cpp b/src/Api.cpp index 269b8a6..dfb5dcc 100644 --- a/src/Api.cpp +++ b/src/Api.cpp @@ -497,6 +497,22 @@ Message::Ptr Api::sendVoice(int64_t chatId, const string& voiceId, const string return TgTypeParser::getInstance().parseJsonAndGetMessage(sendRequest("sendVoice", args)); } +Message::Ptr Api::sendGame(int64_t chatId, const std::string& gameShortName, int32_t replyToMessageId, const InlineKeyboardMarkup::Ptr replyMarkup, bool disableNotification) const { + vector args; + args.push_back(HttpReqArg("chat_id", chatId)); + args.push_back(HttpReqArg("game_short_name", gameShortName)); + if (replyToMessageId) { + args.push_back(HttpReqArg("reply_to_message_id", replyToMessageId)); + } + if (replyMarkup) { + args.push_back(HttpReqArg("reply_markup", TgTypeParser::getInstance().parseGenericReply(replyMarkup))); + } + if (disableNotification){ + args.push_back(HttpReqArg("disable_notification", disableNotification)); + } + return TgTypeParser::getInstance().parseJsonAndGetMessage(sendRequest("sendGame", args)); +} + Message::Ptr Api::sendLocation(int64_t chatId, float latitude, float longitude, uint32_t livePeriod, int32_t replyToMessageId, const GenericReply::Ptr replyMarkup, bool disableNotification) const { vector args; args.push_back(HttpReqArg("chat_id", chatId)); @@ -975,6 +991,50 @@ bool Api::unpinChatMessage(int64_t chatId) const { return sendRequest("unpinChatMessage", args).get("", false); } +Message::Ptr Api::setGameScore(int32_t userId, int32_t score, bool force, bool disableEditMessage, int64_t chatId, int32_t messageId, const std::string& inlineMessageId) const { + vector args; + args.push_back(HttpReqArg("user_id", user_id)); + args.push_back(HttpReqArg("score", score)); + if (force) { + args.push_back(HttpReqArg("force", force)); + } + if (disableEditMessage) { + args.push_back(HttpReqArg("disable_edit_message", disableEditMessage)); + } + if (chatId){ + args.push_back(HttpReqArg("chat_id", chat_id)); + } + if (messageId){ + args.push_back(HttpReqArg("message_id", messageId)); + } + if (!inlineMessageId.empty()){ + args.push_back(HttpReqArg("inline_message_id", inlineMessageId)); + } + return TgTypeParser::getInstance().parseJsonAndGetMessage(sendRequest("setGameScore", args)); +} + +vector Api::getGameHighScores(int32_t userId, int32_t score, bool force, bool disableEditMessage, int64_t chatId, int32_t messageId, const std::string& inlineMessageId) const { + vector args; + args.push_back(HttpReqArg("user_id", userId)); + args.push_back(HttpReqArg("score", score)); + if (force) { + args.push_back(HttpReqArg("force", force)); + } + if (disableEditMessage) { + args.push_back(HttpReqArg("disable_edit_message", disableEditMessage)); + } + if (chatId) { + args.push_back(HttpReqArg("chat_id", chatId)); + } + if (messageId) { + args.push_back(HttpReqArg("message_id", messageId)); + } + if (!inlineMessageId.empty()){ + args.push_back(HttpReqArg("inline_message_id", inlineMessageId)); + } + return TgTypeParser::getInstance().parseJsonAndGetArray(&TgTypeParser::parseJsonAndGetGameHighScore, sendRequest("getGameHighScores", args)); +} + void Api::deleteMessage(int64_t chatId, int32_t messageId) const { sendRequest("deleteMessage", { HttpReqArg("chat_id", chatId), HttpReqArg("message_id", messageId) }); } -- cgit v1.2.3 From fa662a813bc36db87a83e2eae02f598f4342240f Mon Sep 17 00:00:00 2001 From: JellyBrick Date: Tue, 29 May 2018 22:18:08 +0900 Subject: Fix build error (no matching function) --- src/Api.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/Api.cpp') diff --git a/src/Api.cpp b/src/Api.cpp index dfb5dcc..11349e9 100644 --- a/src/Api.cpp +++ b/src/Api.cpp @@ -993,7 +993,7 @@ bool Api::unpinChatMessage(int64_t chatId) const { Message::Ptr Api::setGameScore(int32_t userId, int32_t score, bool force, bool disableEditMessage, int64_t chatId, int32_t messageId, const std::string& inlineMessageId) const { vector args; - args.push_back(HttpReqArg("user_id", user_id)); + args.push_back(HttpReqArg("user_id", userId)); args.push_back(HttpReqArg("score", score)); if (force) { args.push_back(HttpReqArg("force", force)); @@ -1002,7 +1002,7 @@ Message::Ptr Api::setGameScore(int32_t userId, int32_t score, bool force, bool d args.push_back(HttpReqArg("disable_edit_message", disableEditMessage)); } if (chatId){ - args.push_back(HttpReqArg("chat_id", chat_id)); + args.push_back(HttpReqArg("chat_id", chatId)); } if (messageId){ args.push_back(HttpReqArg("message_id", messageId)); -- cgit v1.2.3