Add source to reload_reaction_list.

This commit is contained in:
levlam 2024-03-22 15:57:46 +03:00
parent fa8c88033a
commit be197d6ec3
4 changed files with 13 additions and 10 deletions

View File

@ -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) {

View File

@ -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<GetAvailableReactionsQuery>()->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;

View File

@ -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<telegram_api::messages_Reactions> &&reactions_ptr);

View File

@ -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<ReactionListType>(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<telegram_api::updateMessageReaction
}
void UpdatesManager::on_update(tl_object_ptr<telegram_api::updateRecentReactions> update, Promise<Unit> &&promise) {
td_->reaction_manager_->reload_reaction_list(ReactionListType::Recent);
td_->reaction_manager_->reload_reaction_list(ReactionListType::Recent, "updateRecentReactions");
promise.set_value(Unit());
}