diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index 6948438..e6eb7a6 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -17224,9 +17224,29 @@ void Client::set_message_reply_markup(MessageInfo *message_info, object_ptris_content_changed = true; } +td::vector Client::get_gift_sticker_set_ids(const object_ptr &gift) { + if (gift->sticker_->set_id_ != 0) { + return {gift->sticker_->set_id_}; + } + return {}; +} + +td::vector Client::get_upgraded_gift_sticker_set_ids(const object_ptr &gift) { + td::vector sticker_set_ids; + if (gift->model_->sticker_->set_id_ != 0) { + sticker_set_ids.push_back(gift->model_->sticker_->set_id_); + } + if (gift->symbol_->sticker_->set_id_ != 0) { + sticker_set_ids.push_back(gift->symbol_->sticker_->set_id_); + } + return sticker_set_ids; +} + td::vector Client::get_message_content_sticker_set_ids(const object_ptr &content) { CHECK(content != nullptr); switch (content->get_id()) { + case td_api::messageGift::ID: + return get_gift_sticker_set_ids(static_cast(content.get())->gift_); case td_api::messagePoll::ID: { const auto *poll = static_cast(content.get())->poll_.get(); td::vector sticker_set_ids; @@ -17242,6 +17262,16 @@ td::vector Client::get_message_content_sticker_set_ids(const object_p } break; } + case td_api::messageUpgradedGift::ID: + return get_upgraded_gift_sticker_set_ids(static_cast(content.get())->gift_); + case td_api::messageRefundedUpgradedGift::ID: + return get_gift_sticker_set_ids(static_cast(content.get())->gift_); + case td_api::messageUpgradedGiftPurchaseOffer::ID: + return get_upgraded_gift_sticker_set_ids( + static_cast(content.get())->gift_); + case td_api::messageUpgradedGiftPurchaseOfferRejected::ID: + return get_upgraded_gift_sticker_set_ids( + static_cast(content.get())->gift_); default: break; } diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h index ee50884..54bbc6b 100644 --- a/telegram-bot-api/Client.h +++ b/telegram-bot-api/Client.h @@ -1184,6 +1184,10 @@ class Client final : public WebhookActor::Callback { static void set_message_reply_markup(MessageInfo *message_info, object_ptr &&reply_markup); + static td::vector get_gift_sticker_set_ids(const object_ptr &gift); + + static td::vector get_upgraded_gift_sticker_set_ids(const object_ptr &gift); + static td::vector get_message_content_sticker_set_ids(const object_ptr &content); static td::vector get_message_sticker_set_ids(const MessageInfo *message_info);