Add answerGuestQuery.

main
levlam 2 months ago
parent 696d523e8a
commit bda9f10aa3

@ -293,6 +293,7 @@ bool Client::init_methods() {
methods_.emplace("setgamescore", &Client::process_set_game_score_query); methods_.emplace("setgamescore", &Client::process_set_game_score_query);
methods_.emplace("getgamehighscores", &Client::process_get_game_high_scores_query); methods_.emplace("getgamehighscores", &Client::process_get_game_high_scores_query);
methods_.emplace("answerwebappquery", &Client::process_answer_web_app_query_query); methods_.emplace("answerwebappquery", &Client::process_answer_web_app_query_query);
methods_.emplace("answerguestquery", &Client::process_answer_guest_query_query);
methods_.emplace("answerinlinequery", &Client::process_answer_inline_query_query); methods_.emplace("answerinlinequery", &Client::process_answer_inline_query_query);
methods_.emplace("savepreparedinlinemessage", &Client::process_save_prepared_inline_message_query); methods_.emplace("savepreparedinlinemessage", &Client::process_save_prepared_inline_message_query);
methods_.emplace("savepreparedkeyboardbutton", &Client::process_save_prepared_keyboard_button_query); methods_.emplace("savepreparedkeyboardbutton", &Client::process_save_prepared_keyboard_button_query);
@ -7452,6 +7453,25 @@ class Client::TdOnAnswerWebAppQueryCallback final : public TdQueryCallback {
PromisedQueryPtr query_; PromisedQueryPtr query_;
}; };
class Client::TdOnAnswerGuestQueryCallback final : public TdQueryCallback {
public:
explicit TdOnAnswerGuestQueryCallback(PromisedQueryPtr query) : query_(std::move(query)) {
}
void on_result(object_ptr<td_api::Object> result) final {
if (result->get_id() == td_api::error::ID) {
return fail_query_with_error(std::move(query_), move_object_as<td_api::error>(result));
}
CHECK(result->get_id() == td_api::inlineMessageId::ID);
auto inline_message_id = move_object_as<td_api::inlineMessageId>(result);
answer_query(JsonInlineMessageId(inline_message_id.get()), std::move(query_));
}
private:
PromisedQueryPtr query_;
};
class Client::TdOnSavePreparedInlineMessageCallback final : public TdQueryCallback { class Client::TdOnSavePreparedInlineMessageCallback final : public TdQueryCallback {
public: public:
explicit TdOnSavePreparedInlineMessageCallback(PromisedQueryPtr query) : query_(std::move(query)) { explicit TdOnSavePreparedInlineMessageCallback(PromisedQueryPtr query) : query_(std::move(query)) {
@ -13974,6 +13994,22 @@ td::Status Client::process_answer_web_app_query_query(PromisedQueryPtr &query) {
return td::Status::OK(); return td::Status::OK();
} }
td::Status Client::process_answer_guest_query_query(PromisedQueryPtr &query) {
auto guest_query_id = td::to_integer<int64>(query->arg("guest_query_id"));
TRY_RESULT(result, get_inline_query_result(query.get(), bot_user_ids_));
td::vector<object_ptr<td_api::InputInlineQueryResult>> results;
results.push_back(std::move(result));
resolve_inline_query_results_bot_usernames(
std::move(results), std::move(query),
[this, guest_query_id](td::vector<object_ptr<td_api::InputInlineQueryResult>> results, PromisedQueryPtr query) {
CHECK(results.size() == 1);
send_request(make_object<td_api::answerGuestQuery>(guest_query_id, std::move(results[0])),
td::make_unique<TdOnAnswerWebAppQueryCallback>(std::move(query)));
});
return td::Status::OK();
}
td::Status Client::process_answer_inline_query_query(PromisedQueryPtr &query) { td::Status Client::process_answer_inline_query_query(PromisedQueryPtr &query) {
auto inline_query_id = td::to_integer<int64>(query->arg("inline_query_id")); auto inline_query_id = td::to_integer<int64>(query->arg("inline_query_id"));
auto is_personal = to_bool(query->arg("is_personal")); auto is_personal = to_bool(query->arg("is_personal"));

@ -304,6 +304,7 @@ class Client final : public WebhookActor::Callback {
class TdOnGetChatInviteLinkCallback; class TdOnGetChatInviteLinkCallback;
class TdOnGetGameHighScoresCallback; class TdOnGetGameHighScoresCallback;
class TdOnAnswerWebAppQueryCallback; class TdOnAnswerWebAppQueryCallback;
class TdOnAnswerGuestQueryCallback;
class TdOnSavePreparedInlineMessageCallback; class TdOnSavePreparedInlineMessageCallback;
class TdOnSavePreparedKeyboardButtonCallback; class TdOnSavePreparedKeyboardButtonCallback;
class TdOnReturnFileCallback; class TdOnReturnFileCallback;
@ -829,6 +830,7 @@ class Client final : public WebhookActor::Callback {
td::Status process_set_game_score_query(PromisedQueryPtr &query); td::Status process_set_game_score_query(PromisedQueryPtr &query);
td::Status process_get_game_high_scores_query(PromisedQueryPtr &query); td::Status process_get_game_high_scores_query(PromisedQueryPtr &query);
td::Status process_answer_web_app_query_query(PromisedQueryPtr &query); td::Status process_answer_web_app_query_query(PromisedQueryPtr &query);
td::Status process_answer_guest_query_query(PromisedQueryPtr &query);
td::Status process_answer_inline_query_query(PromisedQueryPtr &query); td::Status process_answer_inline_query_query(PromisedQueryPtr &query);
td::Status process_save_prepared_inline_message_query(PromisedQueryPtr &query); td::Status process_save_prepared_inline_message_query(PromisedQueryPtr &query);
td::Status process_save_prepared_keyboard_button_query(PromisedQueryPtr &query); td::Status process_save_prepared_keyboard_button_query(PromisedQueryPtr &query);

Loading…
Cancel
Save