diff --git a/td/telegram/ContactsManager.cpp b/td/telegram/ContactsManager.cpp index a96df1b47..c6a614502 100644 --- a/td/telegram/ContactsManager.cpp +++ b/td/telegram/ContactsManager.cpp @@ -9587,8 +9587,10 @@ void ContactsManager::update_user(User *u, UserId user_id, bool from_binlog, boo if (td_->option_manager_->get_option_boolean("is_premium") != u->is_premium) { td_->option_manager_->set_option_boolean("is_premium", u->is_premium); send_closure(td_->config_manager_, &ConfigManager::request_config, true); - td_->reaction_manager_->reload_reaction_list(ReactionListType::Top); - td_->messages_manager_->update_is_translatable(u->is_premium); + if (!td_->auth_manager_->is_bot()) { + td_->reaction_manager_->reload_reaction_list(ReactionListType::Top, "update_user is_premium"); + td_->messages_manager_->update_is_translatable(u->is_premium); + } } } if (u->is_name_changed || u->is_username_changed || u->is_is_contact_changed) { diff --git a/td/telegram/ReactionManager.cpp b/td/telegram/ReactionManager.cpp index 93e78e90b..bc7fda888 100644 --- a/td/telegram/ReactionManager.cpp +++ b/td/telegram/ReactionManager.cpp @@ -126,7 +126,7 @@ class ClearRecentReactionsQuery final : public Td::ResultHandler { return on_error(result_ptr.move_as_error()); } - td_->reaction_manager_->reload_reaction_list(ReactionListType::Recent); + td_->reaction_manager_->reload_reaction_list(ReactionListType::Recent, "ClearRecentReactionsQuery"); promise_.set_value(Unit()); } @@ -134,7 +134,7 @@ class ClearRecentReactionsQuery final : public Td::ResultHandler { if (!G()->is_expected_error(status)) { LOG(ERROR) << "Receive error for clear recent reactions: " << status; } - td_->reaction_manager_->reload_reaction_list(ReactionListType::Recent); + td_->reaction_manager_->reload_reaction_list(ReactionListType::Recent, "ClearRecentReactionsQuery"); promise_.set_error(std::move(status)); } }; @@ -670,10 +670,11 @@ void ReactionManager::reload_reactions() { td_->create_handler()->send(reactions_.hash_); } -void ReactionManager::reload_reaction_list(ReactionListType reaction_list_type) { +void ReactionManager::reload_reaction_list(ReactionListType reaction_list_type, const char *source) { if (G()->close_flag()) { return; } + LOG(INFO) << "Reload " << reaction_list_type << " from " << source; auto &reaction_list = get_reaction_list(reaction_list_type); if (reaction_list.is_being_reloaded_) { return; @@ -775,14 +776,14 @@ void ReactionManager::load_reaction_list(ReactionListType reaction_list_type) { LOG(INFO) << "Loading " << reaction_list_type; string reactions_str = G()->td_db()->get_binlog_pmc()->get(get_reaction_list_type_database_key(reaction_list_type)); if (reactions_str.empty()) { - return reload_reaction_list(reaction_list_type); + return reload_reaction_list(reaction_list_type, "load_reaction_list 1"); } auto status = log_event_parse(reaction_list, reactions_str); if (status.is_error()) { LOG(ERROR) << "Can't load " << reaction_list_type << ": " << status; reaction_list = {}; - return reload_reaction_list(reaction_list_type); + return reload_reaction_list(reaction_list_type, "load_reaction_list 2"); } LOG(INFO) << "Successfully loaded " << reaction_list.reaction_types_.size() << ' ' << reaction_list_type; diff --git a/td/telegram/ReactionManager.h b/td/telegram/ReactionManager.h index eb18a7698..a0bedf64b 100644 --- a/td/telegram/ReactionManager.h +++ b/td/telegram/ReactionManager.h @@ -60,7 +60,7 @@ class ReactionManager final : public Actor { void reload_reactions(); - void reload_reaction_list(ReactionListType reaction_list_type); + void reload_reaction_list(ReactionListType reaction_list_type, const char *source); void on_get_reaction_list(ReactionListType reaction_list_type, tl_object_ptr &&reactions_ptr); diff --git a/td/telegram/UpdatesManager.cpp b/td/telegram/UpdatesManager.cpp index 625da96b6..65f4e4060 100644 --- a/td/telegram/UpdatesManager.cpp +++ b/td/telegram/UpdatesManager.cpp @@ -2281,7 +2281,7 @@ void UpdatesManager::try_reload_data() { for (int32 type = 0; type < MAX_REACTION_LIST_TYPE; type++) { auto reaction_list_type = static_cast(type); - td_->reaction_manager_->reload_reaction_list(reaction_list_type); + td_->reaction_manager_->reload_reaction_list(reaction_list_type, "try_reload_data"); } for (int32 type = 0; type < MAX_STICKER_TYPE; type++) { @@ -3751,7 +3751,7 @@ void UpdatesManager::on_update(tl_object_ptr update, Promise &&promise) { - td_->reaction_manager_->reload_reaction_list(ReactionListType::Recent); + td_->reaction_manager_->reload_reaction_list(ReactionListType::Recent, "updateRecentReactions"); promise.set_value(Unit()); }