From f361ab84273431387cd573de8c8cbb11b5b0f2c0 Mon Sep 17 00:00:00 2001 From: levlam Date: Tue, 30 Jun 2026 17:40:04 +0300 Subject: Improve ephemeral message handling. --- td/telegram/MessageReplyHeader.cpp | 6 +++--- td/telegram/MessagesManager.cpp | 2 +- td/telegram/RepliedMessageInfo.cpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/td/telegram/MessageReplyHeader.cpp b/td/telegram/MessageReplyHeader.cpp index 432b24095..e7d42c3b6 100644 --- a/td/telegram/MessageReplyHeader.cpp +++ b/td/telegram/MessageReplyHeader.cpp @@ -24,8 +24,8 @@ MessageReplyHeader::MessageReplyHeader(Td *td, tl_object_ptr(reply_header_ptr); DialogId story_dialog_id(reply_header->peer_); StoryId story_id(reply_header->story_id_); - if (!story_dialog_id.is_valid() || !story_id.is_server()) { - LOG(ERROR) << "Receive " << to_string(reply_header); + if (!story_dialog_id.is_valid() || !story_id.is_server() || message_id == MessageId()) { + LOG(ERROR) << "Receive in " << dialog_id << ": " << to_string(reply_header); } else { story_full_id_ = {story_dialog_id, story_id}; } @@ -69,7 +69,7 @@ MessageReplyHeader::MessageReplyHeader(Td *td, tl_object_ptr= message_id) { + if (top_thread_message_id_ >= message_id && message_id != MessageId()) { LOG(ERROR) << "Receive top thread " << top_thread_message_id_ << " in " << message_id << " in " << dialog_id; top_thread_message_id_ = MessageId(); } diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index d347ef304..bdec793d6 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -11385,7 +11385,7 @@ std::pair> MessagesManager::creat } return {DialogId(), nullptr}; } - if (message_id.is_yet_unsent() || message_id.is_local()) { + if (message_id.is_yet_unsent() || (message_id.is_local() && message_info.receiver_user_id == UserId())) { LOG(ERROR) << "Receive " << message_id; return {DialogId(), nullptr}; } diff --git a/td/telegram/RepliedMessageInfo.cpp b/td/telegram/RepliedMessageInfo.cpp index 67acb42d9..c084673b5 100644 --- a/td/telegram/RepliedMessageInfo.cpp +++ b/td/telegram/RepliedMessageInfo.cpp @@ -85,7 +85,7 @@ RepliedMessageInfo::RepliedMessageInfo(Td *td, tl_object_ptr message_id && !has_qts_messages(td, dialog_id)) || message_id_ == message_id)) { LOG(ERROR) << "Receive reply to " << message_id_ << " in " << MessageFullId{dialog_id, message_id}; message_id_ = MessageId(); -- cgit v1.2.3