From f856a383adf1ad8ecce67b9c09ca3572e706867b Mon Sep 17 00:00:00 2001 From: levlam Date: Tue, 16 Jan 2018 15:42:51 +0300 Subject: [PATCH] Do not return empty sticker sets. GitOrigin-RevId: 987492861215c593f7d9b9a6d475f63dd07b6e5e --- td/telegram/StickersManager.cpp | 18 ++++++++++++++---- td/telegram/Td.cpp | 9 +++------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/td/telegram/StickersManager.cpp b/td/telegram/StickersManager.cpp index 755aec212..7699d12af 100644 --- a/td/telegram/StickersManager.cpp +++ b/td/telegram/StickersManager.cpp @@ -816,9 +816,19 @@ tl_object_ptr StickersManager::get_sticker_sets_object(int3 vector> result; result.reserve(sticker_set_ids.size()); for (auto sticker_set_id : sticker_set_ids) { - result.push_back(get_sticker_set_info_object(sticker_set_id, covers_limit)); + auto sticker_set_info = get_sticker_set_info_object(sticker_set_id, covers_limit); + if (sticker_set_info->size_ != 0) { + result.push_back(std::move(sticker_set_info)); + } } + auto result_size = narrow_cast(result.size()); + if (total_count < result_size) { + if (total_count != -1) { + LOG(ERROR) << "Have total_count = " << total_count << ", but there are " << result_size << " results"; + } + total_count = result_size; + } return make_tl_object(total_count, std::move(result)); } @@ -3143,9 +3153,9 @@ void StickersManager::send_update_featured_sticker_sets() { need_update_featured_sticker_sets_ = false; featured_sticker_sets_hash_ = get_featured_sticker_sets_hash(); - send_closure(G()->td(), &Td::send_update, - make_tl_object(get_sticker_sets_object( - narrow_cast(featured_sticker_set_ids_.size()), featured_sticker_set_ids_, 5))); + send_closure( + G()->td(), &Td::send_update, + make_tl_object(get_sticker_sets_object(-1, featured_sticker_set_ids_, 5))); } } diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index b929a7b87..5a6db5183 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -2570,8 +2570,7 @@ class GetInstalledStickerSetsRequest : public RequestActor<> { } void do_send_result() override { - send_result(td->stickers_manager_->get_sticker_sets_object(narrow_cast(sticker_set_ids_.size()), - sticker_set_ids_, 1)); + send_result(td->stickers_manager_->get_sticker_sets_object(-1, sticker_set_ids_, 1)); } public: @@ -2615,8 +2614,7 @@ class GetTrendingStickerSetsRequest : public RequestActor<> { } void do_send_result() override { - send_result(td->stickers_manager_->get_sticker_sets_object(narrow_cast(sticker_set_ids_.size()), - sticker_set_ids_, 5)); + send_result(td->stickers_manager_->get_sticker_sets_object(-1, sticker_set_ids_, 5)); } public: @@ -2634,8 +2632,7 @@ class GetAttachedStickerSetsRequest : public RequestActor<> { } void do_send_result() override { - send_result(td->stickers_manager_->get_sticker_sets_object(narrow_cast(sticker_set_ids_.size()), - sticker_set_ids_, 5)); + send_result(td->stickers_manager_->get_sticker_sets_object(-1, sticker_set_ids_, 5)); } public: