Reget message if reply contains MessageUnsupported.

This commit is contained in:
levlam 2023-10-26 23:16:06 +03:00
parent e50a3ce18c
commit 8128c6e079
3 changed files with 8 additions and 2 deletions

View File

@ -25776,7 +25776,7 @@ void MessagesManager::on_text_message_ready_to_send(DialogId dialog_id, MessageI
const FormattedText *message_text = get_message_content_text(content);
CHECK(message_text != nullptr);
int64 random_id = begin_send_message(dialog_id, m);
auto input_media = get_message_content_input_media_web_page(td_, m->content.get());
auto input_media = get_message_content_input_media_web_page(td_, content);
if (input_media == nullptr) {
td_->create_handler<SendMessageQuery>()->send(
get_message_flags(m), dialog_id, get_send_message_as_input_peer(m), get_message_input_reply_to(m),
@ -38903,7 +38903,7 @@ void MessagesManager::reget_message_from_server_if_needed(DialogId dialog_id, co
}
if (need_reget_message_content(m->content.get()) || (m->legacy_layer != 0 && m->legacy_layer < MTPROTO_LAYER) ||
m->reply_info.need_reget(td_)) {
m->reply_info.need_reget(td_) || m->replied_message_info.need_reget()) {
MessageFullId message_full_id{dialog_id, m->message_id};
LOG(INFO) << "Reget from server " << message_full_id;
get_message_from_server(message_full_id, Auto(), "reget_message_from_server_if_needed");

View File

@ -161,6 +161,10 @@ RepliedMessageInfo::RepliedMessageInfo(Td *td, const MessageInputReplyTo &input_
message_id_ = input_reply_to.message_id_;
}
bool RepliedMessageInfo::need_reget() const {
return content_ != nullptr && need_reget_message_content(content_.get());
}
bool RepliedMessageInfo::need_reply_changed_warning(
const RepliedMessageInfo &old_info, const RepliedMessageInfo &new_info, MessageId old_top_thread_message_id,
bool is_yet_unsent, std::function<bool(const RepliedMessageInfo &info)> is_reply_to_deleted_message) {

View File

@ -67,6 +67,8 @@ class RepliedMessageInfo {
quote_.text.empty() && content_ == nullptr;
}
bool need_reget() const;
static bool need_reply_changed_warning(
const RepliedMessageInfo &old_info, const RepliedMessageInfo &new_info, MessageId old_top_thread_message_id,
bool is_yet_unsent, std::function<bool(const RepliedMessageInfo &info)> is_reply_to_deleted_message);