From 706144361d77e5e8ab566708b5d7465858bef346 Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 13 Mar 2019 17:18:40 +0300 Subject: [PATCH] Fix updating chat online member count. GitOrigin-RevId: 9b528ba5ea6524be13baddecabb692c96067caba --- td/telegram/ContactsManager.cpp | 11 +++++------ td/telegram/MessagesManager.cpp | 5 +++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/td/telegram/ContactsManager.cpp b/td/telegram/ContactsManager.cpp index 38c645dd2..ffa74c80f 100644 --- a/td/telegram/ContactsManager.cpp +++ b/td/telegram/ContactsManager.cpp @@ -7459,7 +7459,6 @@ void ContactsManager::on_get_channel_participants_success( LOG(INFO) << "Receive " << participants.size() << " members in " << channel_id; vector result; - CHECK(result.empty()); for (auto &participant_ptr : participants) { result.push_back(get_dialog_participant(channel_id, std::move(participant_ptr))); if ((filter.is_bots() && !is_user_bot(result.back().user_id)) || @@ -7499,16 +7498,16 @@ void ContactsManager::on_get_channel_participants_success( } } administrator_count = narrow_cast(administrator_user_ids.size()); + + if (get_channel_type(channel_id) == ChannelType::Megagroup && !td_->auth_manager_->is_bot()) { + cached_channel_participants_[channel_id] = result; + update_channel_online_member_count(channel_id, true); + } } else if (filter.is_administrators()) { administrator_user_ids = std::move(user_ids); } else if (filter.is_bots()) { bot_user_ids = std::move(user_ids); } - - if (get_channel_type(channel_id) == ChannelType::Megagroup && !td_->auth_manager_->is_bot()) { - cached_channel_participants_[channel_id] = result; - update_channel_online_member_count(channel_id, true); - } } if (filter.is_administrators() || filter.is_recent()) { on_update_dialog_administrators(DialogId(channel_id), std::move(administrator_user_ids), true); diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 79a97607a..8f92008c1 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -8585,8 +8585,9 @@ void MessagesManager::set_dialog_online_member_count(DialogId dialog_id, int32 o return; } - LOG(INFO) << "Set online member count to " << online_member_count << " in " << dialog_id << " from " << source; auto &info = dialog_online_member_counts_[dialog_id]; + LOG(INFO) << "Change online member count from " << info.online_member_count << " to " << online_member_count << " in " + << dialog_id << " from " << source; bool need_update = d->is_opened && (!info.is_update_sent || info.online_member_count != online_member_count); info.online_member_count = online_member_count; info.updated_time = Time::now(); @@ -12981,7 +12982,7 @@ void MessagesManager::open_dialog(Dialog *d) { case DialogType::Channel: if (!is_broadcast_channel(dialog_id)) { auto participant_count = td_->contacts_manager_->get_channel_participant_count(dialog_id.get_channel_id()); - if (1 <= participant_count && participant_count < 195) { + if (participant_count < 195) { // include unknown participant_count td_->contacts_manager_->send_get_channel_participants_query( dialog_id.get_channel_id(), ChannelParticipantsFilter(td_api::make_object()), 0, 200, 0,