diff options
| author | levlam <levlam@telegram.org> | 2026-06-30 17:40:04 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2026-06-30 17:40:04 +0300 |
| commit | f361ab84273431387cd573de8c8cbb11b5b0f2c0 (patch) | |
| tree | a1f6c57b0fbb4dd1719fccf4513a61899a148152 | |
| parent | ab3ecce039a44f424dd6606cce92c0453147b1d9 (diff) | |
Improve ephemeral message handling.
| -rw-r--r-- | td/telegram/MessageReplyHeader.cpp | 6 | ||||
| -rw-r--r-- | td/telegram/MessagesManager.cpp | 2 | ||||
| -rw-r--r-- | 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<telegram_api::Messa auto reply_header = telegram_api::move_object_as<telegram_api::messageReplyStoryHeader>(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<telegram_api::Messa is_topic_message_ = false; } } - if (top_thread_message_id_ >= 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<DialogId, unique_ptr<MessagesManager::Message>> 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<telegram_api::messa LOG(ERROR) << "Receive " << to_string(reply_header) << " in " << MessageFullId{dialog_id, message_id}; message_id_ = MessageId(); dialog_id_ = DialogId(); - } else if (!message_id.is_scheduled() && !dialog_id_.is_valid() && + } else if (!message_id.is_scheduled() && message_id != MessageId() && !dialog_id_.is_valid() && ((message_id_ > 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(); |
