From db7c26bd0ec5c310b209930ed1220029efb93f78 Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 31 Mar 2025 12:03:25 +0300 Subject: [PATCH] Add giftPremiumSubscription. --- telegram-bot-api/Client.cpp | 16 ++++++++++++++++ telegram-bot-api/Client.h | 1 + 2 files changed, 17 insertions(+) diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index 61c95bd..e155274 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -256,6 +256,7 @@ bool Client::init_methods() { methods_.emplace("edituserstarsubscription", &Client::process_edit_user_star_subscription_query); methods_.emplace("getavailablegifts", &Client::process_get_available_gifts_query); methods_.emplace("sendgift", &Client::process_send_gift_query); + methods_.emplace("giftpremiumsubscription", &Client::process_gift_premium_subscription_query); methods_.emplace("verifyuser", &Client::process_verify_user_query); methods_.emplace("verifychat", &Client::process_verify_chat_query); methods_.emplace("removeuserverification", &Client::process_remove_user_verification_query); @@ -12008,6 +12009,21 @@ td::Status Client::process_send_gift_query(PromisedQueryPtr &query) { return td::Status::OK(); } +td::Status Client::process_gift_premium_subscription_query(PromisedQueryPtr &query) { + TRY_RESULT(user_id, get_user_id(query.get())); + auto star_count = td::to_integer(query->arg("star_count")); + auto month_count = get_integer_arg(query.get(), "month_count", 0, 0, 1000); + TRY_RESULT(text, get_formatted_text(query->arg("text").str(), query->arg("text_parse_mode").str(), + get_input_entities(query.get(), "text_entities"))); + check_user(user_id, std::move(query), + [this, star_count, month_count, user_id, text = std::move(text)](PromisedQueryPtr query) mutable { + send_request( + make_object(user_id, star_count, month_count, std::move(text)), + td::make_unique(std::move(query))); + }); + return td::Status::OK(); +} + td::Status Client::process_verify_user_query(PromisedQueryPtr &query) { TRY_RESULT(user_id, get_user_id(query.get())); auto custom_description = query->arg("custom_description"); diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h index dd0180e..e6603a2 100644 --- a/telegram-bot-api/Client.h +++ b/telegram-bot-api/Client.h @@ -715,6 +715,7 @@ class Client final : public WebhookActor::Callback { td::Status process_edit_user_star_subscription_query(PromisedQueryPtr &query); td::Status process_get_available_gifts_query(PromisedQueryPtr &query); td::Status process_send_gift_query(PromisedQueryPtr &query); + td::Status process_gift_premium_subscription_query(PromisedQueryPtr &query); td::Status process_verify_user_query(PromisedQueryPtr &query); td::Status process_verify_chat_query(PromisedQueryPtr &query); td::Status process_remove_user_verification_query(PromisedQueryPtr &query);