Simplify calls to get_message_object.

This commit is contained in:
levlam 2024-08-12 12:43:36 +03:00
parent 791915296a
commit 8324189c3a
2 changed files with 24 additions and 13 deletions

View File

@ -19632,8 +19632,8 @@ td_api::object_ptr<td_api::chat> MessagesManager::get_chat_object(const Dialog *
td_->dialog_manager_->get_dialog_profile_accent_color_id_object(d->dialog_id), td_->dialog_manager_->get_dialog_profile_accent_color_id_object(d->dialog_id),
td_->dialog_manager_->get_dialog_profile_background_custom_emoji_id(d->dialog_id).get(), td_->dialog_manager_->get_dialog_profile_background_custom_emoji_id(d->dialog_id).get(),
td_->dialog_manager_->get_dialog_default_permissions(d->dialog_id).get_chat_permissions_object(), td_->dialog_manager_->get_dialog_default_permissions(d->dialog_id).get_chat_permissions_object(),
get_message_object(d->dialog_id, get_message(d, d->last_message_id), source), get_chat_positions_object(d), get_message_object(d, d->last_message_id, source), get_chat_positions_object(d), std::move(chat_lists),
std::move(chat_lists), get_default_message_sender_object(d), block_list_id.get_block_list_object(), get_default_message_sender_object(d), block_list_id.get_block_list_object(),
td_->dialog_manager_->get_dialog_has_protected_content(d->dialog_id), is_translatable, d->is_marked_as_unread, td_->dialog_manager_->get_dialog_has_protected_content(d->dialog_id), is_translatable, d->is_marked_as_unread,
get_dialog_view_as_topics(d), get_dialog_has_scheduled_messages(d), can_delete.for_self_, get_dialog_view_as_topics(d), get_dialog_has_scheduled_messages(d), can_delete.for_self_,
can_delete.for_all_users_, td_->dialog_manager_->can_report_dialog(d->dialog_id), can_delete.for_all_users_, td_->dialog_manager_->can_report_dialog(d->dialog_id),
@ -21301,7 +21301,7 @@ td_api::object_ptr<td_api::foundChatMessages> MessagesManager::get_found_chat_me
vector<tl_object_ptr<td_api::message>> result; vector<tl_object_ptr<td_api::message>> result;
result.reserve(found_dialog_messages.message_ids.size()); result.reserve(found_dialog_messages.message_ids.size());
for (const auto &message_id : found_dialog_messages.message_ids) { for (const auto &message_id : found_dialog_messages.message_ids) {
auto message = get_message_object(dialog_id, get_message_force(d, message_id, source), source); auto message = get_message_object(d, message_id, source);
if (message != nullptr) { if (message != nullptr) {
result.push_back(std::move(message)); result.push_back(std::move(message));
} }
@ -21469,7 +21469,7 @@ void MessagesManager::get_dialog_message_by_date(DialogId dialog_id, int32 date,
auto message_id = d->ordered_messages.find_message_by_date(date, get_get_message_date(d)); auto message_id = d->ordered_messages.find_message_by_date(date, get_get_message_date(d));
if (message_id.is_valid() && if (message_id.is_valid() &&
(message_id == d->last_message_id || (*d->ordered_messages.get_const_iterator(message_id))->have_next())) { (message_id == d->last_message_id || (*d->ordered_messages.get_const_iterator(message_id))->have_next())) {
return promise.set_value(get_message_object(dialog_id, get_message(d, message_id), "get_dialog_message_by_date")); return promise.set_value(get_message_object(d, message_id, "get_dialog_message_by_date"));
} }
if (G()->use_message_database() && d->last_database_message_id != MessageId()) { if (G()->use_message_database() && d->last_database_message_id != MessageId()) {
@ -21554,8 +21554,7 @@ void MessagesManager::on_get_dialog_message_by_date_from_database(
LOG(ERROR) << "Failed to find " << m->message_id << " in " << dialog_id << " by date " << date; LOG(ERROR) << "Failed to find " << m->message_id << " in " << dialog_id << " by date " << date;
message_id = m->message_id; message_id = m->message_id;
} }
promise.set_value( promise.set_value(get_message_object(d, message_id, "on_get_dialog_message_by_date_from_database"));
get_message_object(dialog_id, get_message(d, message_id), "on_get_dialog_message_by_date_from_database"));
return; return;
} }
// TODO if m == nullptr, we need to just adjust it to the next non-nullptr message, not get from server // TODO if m == nullptr, we need to just adjust it to the next non-nullptr message, not get from server
@ -21575,8 +21574,7 @@ void MessagesManager::get_dialog_message_by_date_from_server(const Dialog *d, in
auto message_id = d->ordered_messages.find_message_by_date(date, get_get_message_date(d)); auto message_id = d->ordered_messages.find_message_by_date(date, get_get_message_date(d));
if (message_id.is_valid()) { if (message_id.is_valid()) {
promise.set_value( promise.set_value(get_message_object(d, message_id, "get_dialog_message_by_date_from_server"));
get_message_object(d->dialog_id, get_message(d, message_id), "get_dialog_message_by_date_from_server"));
} else { } else {
promise.set_value(nullptr); promise.set_value(nullptr);
} }
@ -21610,8 +21608,7 @@ void MessagesManager::on_get_dialog_message_by_date(DialogId dialog_id, int32 da
LOG(ERROR) << "Failed to find " << result.get_message_id() << " in " << dialog_id << " by date " << date; LOG(ERROR) << "Failed to find " << result.get_message_id() << " in " << dialog_id << " by date " << date;
message_id = result.get_message_id(); message_id = result.get_message_id();
} }
return promise.set_value( return promise.set_value(get_message_object(d, message_id, "on_get_dialog_message_by_date"));
get_message_object(dialog_id, get_message(d, message_id), "on_get_dialog_message_by_date"));
} }
} }
} }
@ -22927,6 +22924,16 @@ td_api::object_ptr<td_api::message> MessagesManager::get_business_message_messag
std::move(content), std::move(reply_markup)); std::move(content), std::move(reply_markup));
} }
td_api::object_ptr<td_api::message> MessagesManager::get_message_object(Dialog *d, MessageId message_id,
const char *source) {
return get_message_object(d->dialog_id, get_message_force(d, message_id, source), source);
}
td_api::object_ptr<td_api::message> MessagesManager::get_message_object(const Dialog *d, MessageId message_id,
const char *source) const {
return get_message_object(d->dialog_id, get_message(d, message_id), source);
}
td_api::object_ptr<td_api::message> MessagesManager::get_message_object(MessageFullId message_full_id, td_api::object_ptr<td_api::message> MessagesManager::get_message_object(MessageFullId message_full_id,
const char *source) { const char *source) {
return get_message_object(message_full_id.get_dialog_id(), get_message_force(message_full_id, source), source); return get_message_object(message_full_id.get_dialog_id(), get_message_force(message_full_id, source), source);
@ -23014,9 +23021,8 @@ td_api::object_ptr<td_api::messages> MessagesManager::get_messages_object(int32
bool skip_not_found, const char *source) { bool skip_not_found, const char *source) {
Dialog *d = get_dialog(dialog_id); Dialog *d = get_dialog(dialog_id);
CHECK(d != nullptr); CHECK(d != nullptr);
auto message_objects = transform(message_ids, [this, dialog_id, d, source](MessageId message_id) { auto message_objects = transform(
return get_message_object(dialog_id, get_message_force(d, message_id, source), source); message_ids, [this, d, source](MessageId message_id) { return get_message_object(d, message_id, source); });
});
return get_messages_object(total_count, std::move(message_objects), skip_not_found); return get_messages_object(total_count, std::move(message_objects), skip_not_found);
} }

View File

@ -2442,6 +2442,11 @@ class MessagesManager final : public Actor {
td_api::object_ptr<td_api::MessageContent> get_message_message_content_object(DialogId dialog_id, td_api::object_ptr<td_api::MessageContent> get_message_message_content_object(DialogId dialog_id,
const Message *m) const; const Message *m) const;
td_api::object_ptr<td_api::message> get_message_object(Dialog *d, MessageId message_id, const char *source);
td_api::object_ptr<td_api::message> get_message_object(const Dialog *d, MessageId message_id,
const char *source) const;
td_api::object_ptr<td_api::message> get_message_object(DialogId dialog_id, const Message *m, td_api::object_ptr<td_api::message> get_message_object(DialogId dialog_id, const Message *m,
const char *source) const; const char *source) const;