aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2026-04-20 14:39:38 +0300
committerlevlam <levlam@telegram.org>2026-04-20 14:39:38 +0300
commitbf6a7b1197b55bfd9786f30ee6d7a531aee82aee (patch)
tree73f4308e789a5395e2ee4b9f3fbf670bb0582b00
parent8b5fd5d79a4bc2156f7326a470b56e057074d596 (diff)
Use get_sticker_set_names in TdOnGetGiftsCallback.
-rw-r--r--telegram-bot-api/Client.cpp21
-rw-r--r--telegram-bot-api/Client.h2
2 files changed, 19 insertions, 4 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp
index 4f30b42..505108e 100644
--- a/telegram-bot-api/Client.cpp
+++ b/telegram-bot-api/Client.cpp
@@ -7337,7 +7337,7 @@ class Client::TdOnGetReceivedGiftsCallback final : public TdQueryCallback {
auto gifts = move_object_as<td_api::receivedGifts>(result);
td::vector<int64> sticker_set_ids;
for (const auto &gift : gifts->gifts_) {
- td::combine(sticker_set_ids, Client::get_sent_gift_sticker_set_ids(gift->gift_));
+ td::combine(sticker_set_ids, get_sent_gift_sticker_set_ids(gift->gift_));
}
client_->get_sticker_set_names(
std::move(sticker_set_ids),
@@ -7495,7 +7495,7 @@ class Client::TdOnGetUserChatBoostsCallback final : public TdQueryCallback {
class Client::TdOnGetGiftsCallback final : public TdQueryCallback {
public:
- TdOnGetGiftsCallback(const Client *client, PromisedQueryPtr query) : client_(client), query_(std::move(query)) {
+ TdOnGetGiftsCallback(Client *client, PromisedQueryPtr query) : client_(client), query_(std::move(query)) {
}
void on_result(object_ptr<td_api::Object> result) final {
@@ -7506,11 +7506,20 @@ class Client::TdOnGetGiftsCallback final : public TdQueryCallback {
CHECK(result->get_id() == td_api::availableGifts::ID);
auto available_gifts = move_object_as<td_api::availableGifts>(result);
auto gifts = td::transform(std::move(available_gifts->gifts_), [](auto &&gift) { return std::move(gift->gift_); });
- answer_query(JsonGifts(gifts, client_), std::move(query_));
+ td::vector<int64> sticker_set_ids;
+ for (const auto &gift : gifts) {
+ td::combine(sticker_set_ids, get_gift_sticker_set_ids(gift));
+ }
+ client_->get_sticker_set_names(
+ std::move(sticker_set_ids),
+ td::PromiseCreator::lambda([actor_id = client_->actor_id(client_), gifts = std::move(gifts),
+ query = std::move(query_)](td::Unit) mutable {
+ send_closure(actor_id, &Client::return_gifts, std::move(gifts), std::move(query));
+ }));
}
private:
- const Client *client_;
+ Client *client_;
PromisedQueryPtr query_;
};
@@ -15370,6 +15379,10 @@ void Client::return_stickers(object_ptr<td_api::stickers> stickers, PromisedQuer
answer_query(JsonStickers(stickers->stickers_, this), std::move(query));
}
+void Client::return_gifts(td::vector<object_ptr<td_api::gift>> gifts, PromisedQueryPtr query) {
+ answer_query(JsonGifts(gifts, this), std::move(query));
+}
+
void Client::return_received_gifts(object_ptr<td_api::receivedGifts> gifts, bool can_be_managed,
PromisedQueryPtr query) {
answer_query(JsonReceivedGifts(gifts.get(), can_be_managed, this), std::move(query));
diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h
index cccbcaf..a019c63 100644
--- a/telegram-bot-api/Client.h
+++ b/telegram-bot-api/Client.h
@@ -947,6 +947,8 @@ class Client final : public WebhookActor::Callback {
void return_stickers(object_ptr<td_api::stickers> stickers, PromisedQueryPtr query);
+ void return_gifts(td::vector<object_ptr<td_api::gift>> gifts, PromisedQueryPtr query);
+
void return_received_gifts(object_ptr<td_api::receivedGifts> gifts, bool can_be_managed, PromisedQueryPtr query);
void return_chat_full_info(int64 chat_id, int64 pinned_message_id, PromisedQueryPtr query);