From ca2cf0e25c060c42c9e7b8e5e7bf585cd6c218da Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 25 Dec 2023 15:10:48 +0300 Subject: [PATCH] Add storyViewers.total_forward_count. --- td/generate/scheme/td_api.tl | 7 ++++--- td/telegram/StoryManager.cpp | 3 ++- td/telegram/StoryViewer.cpp | 9 ++++++--- td/telegram/StoryViewer.h | 3 ++- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/td/generate/scheme/td_api.tl b/td/generate/scheme/td_api.tl index 23266facf..1efa793b7 100644 --- a/td/generate/scheme/td_api.tl +++ b/td/generate/scheme/td_api.tl @@ -3414,11 +3414,12 @@ emojiCategoryTypeChatPhoto = EmojiCategoryType; storyViewer user_id:int53 view_date:int32 block_list:BlockList chosen_reaction_type:ReactionType = StoryViewer; //@description Represents a list of story viewers -//@total_count Approximate total number of story viewers found -//@total_reaction_count Approximate total number of reactions set by found story viewers +//@total_count Approximate total number of users found +//@total_forward_count Approximate total number of forwards by found users +//@total_reaction_count Approximate total number of reactions set by found users //@viewers List of story viewers //@next_offset The offset for the next request. If empty, then there are no more results -storyViewers total_count:int32 total_reaction_count:int32 viewers:vector next_offset:string = StoryViewers; +storyViewers total_count:int32 total_forward_count:int32 total_reaction_count:int32 viewers:vector next_offset:string = StoryViewers; //@description Describes position of a clickable rectangle area on a story media diff --git a/td/telegram/StoryManager.cpp b/td/telegram/StoryManager.cpp index 230121a68..9fff7c2e8 100644 --- a/td/telegram/StoryManager.cpp +++ b/td/telegram/StoryManager.cpp @@ -2855,6 +2855,7 @@ void StoryManager::on_get_story_viewers( << " story viewers"; total_reaction_count = total_count; } + auto total_forward_count = max(view_list->forwards_count_, 0); for (auto &view_ptr : view_list->views_) { if (view_ptr->get_id() != telegram_api::storyView::ID) { continue; @@ -2864,7 +2865,7 @@ void StoryManager::on_get_story_viewers( view->blocked_my_stories_from_); } - StoryViewers story_viewers(total_count, total_reaction_count, std::move(view_list->views_), + StoryViewers story_viewers(total_count, total_forward_count, total_reaction_count, std::move(view_list->views_), std::move(view_list->next_offset_)); if (story->content_ != nullptr) { bool is_changed = false; diff --git a/td/telegram/StoryViewer.cpp b/td/telegram/StoryViewer.cpp index 91bc082b4..630752cec 100644 --- a/td/telegram/StoryViewer.cpp +++ b/td/telegram/StoryViewer.cpp @@ -25,10 +25,13 @@ StringBuilder &operator<<(StringBuilder &string_builder, const StoryViewer &view return string_builder << '[' << viewer.user_id_ << " with " << viewer.reaction_type_ << " at " << viewer.date_ << ']'; } -StoryViewers::StoryViewers(int32 total_count, int32 total_reaction_count, +StoryViewers::StoryViewers(int32 total_count, int32 total_forward_count, int32 total_reaction_count, vector> &&story_views, string &&next_offset) - : total_count_(total_count), total_reaction_count_(total_reaction_count), next_offset_(std::move(next_offset)) { + : total_count_(total_count) + , total_forward_count_(total_forward_count) + , total_reaction_count_(total_reaction_count) + , next_offset_(std::move(next_offset)) { for (auto &story_view_ptr : story_views) { if (story_view_ptr->get_id() != telegram_api::storyView::ID) { continue; @@ -50,7 +53,7 @@ vector StoryViewers::get_user_ids() const { td_api::object_ptr StoryViewers::get_story_viewers_object( ContactsManager *contacts_manager) const { return td_api::make_object( - total_count_, total_reaction_count_, + total_count_, total_forward_count_, total_reaction_count_, transform(story_viewers_, [contacts_manager](const StoryViewer &story_viewer) { return story_viewer.get_story_viewer_object(contacts_manager); diff --git a/td/telegram/StoryViewer.h b/td/telegram/StoryViewer.h index 1d0a04291..44d88b0ce 100644 --- a/td/telegram/StoryViewer.h +++ b/td/telegram/StoryViewer.h @@ -47,6 +47,7 @@ StringBuilder &operator<<(StringBuilder &string_builder, const StoryViewer &view class StoryViewers { int32 total_count_ = 0; + int32 total_forward_count_ = 0; int32 total_reaction_count_ = 0; vector story_viewers_; string next_offset_; @@ -54,7 +55,7 @@ class StoryViewers { friend StringBuilder &operator<<(StringBuilder &string_builder, const StoryViewers &viewers); public: - StoryViewers(int32 total_count, int32 total_reaction_count, + StoryViewers(int32 total_count, int32 total_forward_count, int32 total_reaction_count, vector> &&story_views, string &&next_offset); vector get_user_ids() const;