Explicitly pass default_reaction to send_update_default_reaction_type.

This commit is contained in:
levlam 2022-08-22 21:29:09 +03:00
parent ef4f0989b1
commit fa07382e5b
4 changed files with 14 additions and 9 deletions

View File

@ -675,7 +675,10 @@ void get_message_added_reactions(Td *td, FullMessageId full_message_id, string r
} }
void set_default_reaction(Td *td, string reaction, Promise<Unit> &&promise) { void set_default_reaction(Td *td, string reaction, Promise<Unit> &&promise) {
if (!td->stickers_manager_->is_active_reaction(reaction)) { if (reaction.empty()) {
return promise.set_error(Status::Error(400, "Default reaction must be non-empty"));
}
if (reaction[0] != '#' && !td->stickers_manager_->is_active_reaction(reaction)) {
return promise.set_error(Status::Error(400, "Can't set incative reaction as default")); return promise.set_error(Status::Error(400, "Can't set incative reaction as default"));
} }
@ -693,8 +696,7 @@ void send_set_default_reaction_query(Td *td) {
td->create_handler<SetDefaultReactionQuery>()->send(td->option_manager_->get_option_string("default_reaction")); td->create_handler<SetDefaultReactionQuery>()->send(td->option_manager_->get_option_string("default_reaction"));
} }
void send_update_default_reaction_type() { void send_update_default_reaction_type(const string &default_reaction) {
auto default_reaction = G()->get_option_string("default_reaction");
if (default_reaction.empty()) { if (default_reaction.empty()) {
LOG(ERROR) << "Have no default reaction"; LOG(ERROR) << "Have no default reaction";
return; return;

View File

@ -188,6 +188,6 @@ void set_default_reaction(Td *td, string reaction, Promise<Unit> &&promise);
void send_set_default_reaction_query(Td *td); void send_set_default_reaction_query(Td *td);
void send_update_default_reaction_type(); void send_update_default_reaction_type(const string &default_reaction);
} // namespace td } // namespace td

View File

@ -54,11 +54,10 @@ OptionManager::OptionManager(Td *td)
all_options["utc_time_offset"] = PSTRING() << 'I' << Clocks::tz_offset(); all_options["utc_time_offset"] = PSTRING() << 'I' << Clocks::tz_offset();
for (const auto &name_value : all_options) { for (const auto &name_value : all_options) {
const string &name = name_value.first; const string &name = name_value.first;
const string &value = name_value.second; options_->set(name, name_value.second);
options_->set(name, value);
if (!is_internal_option(name)) { if (!is_internal_option(name)) {
send_closure(G()->td(), &Td::send_update, send_closure(G()->td(), &Td::send_update,
td_api::make_object<td_api::updateOption>(name, get_option_value_object(value))); td_api::make_object<td_api::updateOption>(name, get_option_value_object(name_value.second)));
} else if (name == "otherwise_relogin_days") { } else if (name == "otherwise_relogin_days") {
auto days = narrow_cast<int32>(get_option_integer(name)); auto days = narrow_cast<int32>(get_option_integer(name));
if (days > 0) { if (days > 0) {
@ -66,7 +65,7 @@ OptionManager::OptionManager(Td *td)
send_closure(G()->td(), &Td::send_update, get_update_suggested_actions_object(added_actions, {})); send_closure(G()->td(), &Td::send_update, get_update_suggested_actions_object(added_actions, {}));
} }
} else if (name == "default_reaction") { } else if (name == "default_reaction") {
send_update_default_reaction_type(); send_update_default_reaction_type(get_option_string(name));
} }
} }
@ -320,7 +319,7 @@ void OptionManager::on_option_updated(Slice name) {
break; break;
case 'd': case 'd':
if (name == "default_reaction") { if (name == "default_reaction") {
send_update_default_reaction_type(); send_update_default_reaction_type(get_option_string(name));
} }
if (name == "dice_emojis") { if (name == "dice_emojis") {
send_closure(td_->stickers_manager_actor_, &StickersManager::on_update_dice_emojis); send_closure(td_->stickers_manager_actor_, &StickersManager::on_update_dice_emojis);

View File

@ -2216,6 +2216,10 @@ class CliClient final : public Actor {
ChatId chat_id; ChatId chat_id;
get_args(args, chat_id); get_args(args, chat_id);
send_request(td_api::make_object<td_api::getChatScheduledMessages>(chat_id)); send_request(td_api::make_object<td_api::getChatScheduledMessages>(chat_id));
} else if (op == "sdrt") {
string reaction;
get_args(args, reaction);
send_request(td_api::make_object<td_api::setDefaultReactionType>(as_reaction_type(reaction)));
} else if (op == "gmar") { } else if (op == "gmar") {
ChatId chat_id; ChatId chat_id;
MessageId message_id; MessageId message_id;