aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2026-04-20 15:35:26 +0300
committerlevlam <levlam@telegram.org>2026-04-20 15:35:26 +0300
commit73c41fb004b8b67cb3b1f02e967316a210ce8049 (patch)
tree6448716cb18f96dc2e4fb14d9f6bbe62ef44dab8
parentd7b2b493da62b81bd1941b628573d1f024533031 (diff)
Use get_sticker_set_names in TdOnGetStarTransactionsCallback.
-rw-r--r--telegram-bot-api/Client.cpp24
-rw-r--r--telegram-bot-api/Client.h2
2 files changed, 22 insertions, 4 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp
index 11d2665..e524765 100644
--- a/telegram-bot-api/Client.cpp
+++ b/telegram-bot-api/Client.cpp
@@ -7374,8 +7374,7 @@ class Client::TdOnGetMyStarBalanceCallback final : public TdQueryCallback {
class Client::TdOnGetStarTransactionsCallback final : public TdQueryCallback {
public:
- TdOnGetStarTransactionsCallback(const Client *client, PromisedQueryPtr query)
- : client_(client), query_(std::move(query)) {
+ TdOnGetStarTransactionsCallback(Client *client, PromisedQueryPtr query) : client_(client), query_(std::move(query)) {
}
void on_result(object_ptr<td_api::Object> result) final {
@@ -7385,11 +7384,24 @@ class Client::TdOnGetStarTransactionsCallback final : public TdQueryCallback {
CHECK(result->get_id() == td_api::starTransactions::ID);
auto transactions = move_object_as<td_api::starTransactions>(result);
- answer_query(JsonStarTransactions(transactions.get(), client_), std::move(query_));
+ td::vector<int64> sticker_set_ids;
+ for (const auto &transaction : transactions->transactions_) {
+ if (transaction->type_->get_id() == td_api::starTransactionTypeGiftPurchase::ID) {
+ td::combine(sticker_set_ids,
+ get_gift_sticker_set_ids(
+ static_cast<const td_api::starTransactionTypeGiftPurchase *>(transaction->type_.get())->gift_));
+ }
+ }
+ client_->get_sticker_set_names(
+ std::move(sticker_set_ids),
+ td::PromiseCreator::lambda([actor_id = client_->actor_id(client_), transactions = std::move(transactions),
+ query = std::move(query_)](td::Unit) mutable {
+ send_closure(actor_id, &Client::return_star_transactions, std::move(transactions), std::move(query));
+ }));
}
private:
- const Client *client_;
+ Client *client_;
PromisedQueryPtr query_;
};
@@ -15388,6 +15400,10 @@ void Client::return_received_gifts(object_ptr<td_api::receivedGifts> gifts, bool
answer_query(JsonReceivedGifts(gifts.get(), can_be_managed, this), std::move(query));
}
+void Client::return_star_transactions(object_ptr<td_api::starTransactions> transactions, PromisedQueryPtr query) {
+ answer_query(JsonStarTransactions(transactions.get(), this), std::move(query));
+}
+
void Client::return_chat_full_info(int64 chat_id, int64 pinned_message_id, PromisedQueryPtr query) {
answer_query(JsonChat(chat_id, this, true, pinned_message_id), std::move(query));
}
diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h
index a019c63..576230c 100644
--- a/telegram-bot-api/Client.h
+++ b/telegram-bot-api/Client.h
@@ -951,6 +951,8 @@ class Client final : public WebhookActor::Callback {
void return_received_gifts(object_ptr<td_api::receivedGifts> gifts, bool can_be_managed, PromisedQueryPtr query);
+ void return_star_transactions(object_ptr<td_api::starTransactions> transactions, PromisedQueryPtr query);
+
void return_chat_full_info(int64 chat_id, int64 pinned_message_id, PromisedQueryPtr query);
void fix_reply_markup_bot_user_ids(object_ptr<td_api::ReplyMarkup> &reply_markup) const;