Use get_message_sender.

This commit is contained in:
levlam 2021-11-19 17:31:10 +03:00
parent 993a9e24c4
commit e4df8d9458

View File

@ -10814,8 +10814,8 @@ void MessagesManager::delete_dialog_messages_by_sender(DialogId dialog_id, Dialo
} }
vector<MessageId> message_ids; vector<MessageId> message_ids;
find_messages(d->messages.get(), message_ids, [sender_dialog_id](const Message *m) { find_messages(d->messages.get(), message_ids, [this, sender_dialog_id](const Message *m) {
return sender_dialog_id == (m->sender_dialog_id.is_valid() ? m->sender_dialog_id : DialogId(m->sender_user_id)); return sender_dialog_id == MessagesManager::get_message_sender(m);
}); });
vector<int64> deleted_message_ids; vector<int64> deleted_message_ids;
@ -27754,12 +27754,10 @@ Result<MessagesManager::MessagePushNotificationInfo> MessagesManager::get_messag
DialogId settings_dialog_id = dialog_id; DialogId settings_dialog_id = dialog_id;
Dialog *settings_dialog = d; Dialog *settings_dialog = d;
if (contains_mention) { if (contains_mention) {
if (sender_user_id.is_valid()) { auto real_sender_dialog_id = sender_dialog_id.is_valid() ? sender_dialog_id : DialogId(sender_user_id);
settings_dialog_id = DialogId(sender_user_id); if (real_sender_dialog_id.is_valid()) {
settings_dialog = get_dialog_force(settings_dialog_id, "get_message_push_notification_info 2"); settings_dialog_id = real_sender_dialog_id;
} else if (sender_dialog_id.is_valid()) { settings_dialog = get_dialog_force(settings_dialog_id, "get_message_push_notification_info");
settings_dialog_id = sender_dialog_id;
settings_dialog = get_dialog_force(settings_dialog_id, "get_message_push_notification_info 3");
} }
} }
@ -28669,12 +28667,10 @@ bool MessagesManager::add_new_message_notification(Dialog *d, Message *m, bool f
Dialog *settings_dialog = d; Dialog *settings_dialog = d;
if (m->contains_mention && !m->is_mention_notification_disabled) { if (m->contains_mention && !m->is_mention_notification_disabled) {
// have a mention, so use notification settings from the dialog with the sender // have a mention, so use notification settings from the dialog with the sender
if (m->sender_user_id.is_valid()) { auto sender_dialog_id = get_message_sender(m);
settings_dialog_id = DialogId(m->sender_user_id); if (sender_dialog_id.is_valid()) {
settings_dialog = get_dialog_force(settings_dialog_id, "add_new_message_notification 1"); settings_dialog_id = sender_dialog_id;
} else if (m->sender_dialog_id.is_valid()) { settings_dialog = get_dialog_force(settings_dialog_id, "add_new_message_notification");
settings_dialog_id = m->sender_dialog_id;
settings_dialog = get_dialog_force(settings_dialog_id, "add_new_message_notification 2");
} }
} }
@ -33456,11 +33452,10 @@ void MessagesManager::add_message_to_database(const Dialog *d, const Message *m,
if (m->ttl_period != 0 && (ttl_expires_at == 0 || m->date + m->ttl_period < ttl_expires_at)) { if (m->ttl_period != 0 && (ttl_expires_at == 0 || m->date + m->ttl_period < ttl_expires_at)) {
ttl_expires_at = m->date + m->ttl_period; ttl_expires_at = m->date + m->ttl_period;
} }
auto sender_dialog_id = m->sender_dialog_id.is_valid() ? m->sender_dialog_id : DialogId(m->sender_user_id); G()->td_db()->get_messages_db_async()->add_message({d->dialog_id, message_id}, unique_message_id,
G()->td_db()->get_messages_db_async()->add_message({d->dialog_id, message_id}, unique_message_id, sender_dialog_id, get_message_sender(m), random_id, ttl_expires_at,
random_id, ttl_expires_at, get_message_index_mask(d->dialog_id, m), get_message_index_mask(d->dialog_id, m), search_id, text,
search_id, text, m->notification_id, m->top_thread_message_id, m->notification_id, m->top_thread_message_id, log_event_store(*m),
log_event_store(*m),
Auto()); // TODO Promise Auto()); // TODO Promise
} }