diff options
| author | levlam <levlam@telegram.org> | 2026-07-02 14:33:32 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2026-07-02 14:33:32 +0300 |
| commit | 4481341b2c3d6301291ebed39982b67bced39c9e (patch) | |
| tree | 29b4b7d99d2478dc96e69afb11f1e82380ce5d64 /td | |
| parent | eb3936d5418fe05c228c2de339607f265001bff9 (diff) | |
Add inputMessageReplyToEphemeralMessage.
Diffstat (limited to 'td')
| -rw-r--r-- | td/generate/scheme/td_api.tl | 3 | ||||
| -rw-r--r-- | td/telegram/BusinessConnectionManager.cpp | 15 | ||||
| -rw-r--r-- | td/telegram/MessageInputReplyTo.cpp | 7 | ||||
| -rw-r--r-- | td/telegram/MessageInputReplyTo.h | 3 | ||||
| -rw-r--r-- | td/telegram/MessagesManager.cpp | 14 |
5 files changed, 39 insertions, 3 deletions
diff --git a/td/generate/scheme/td_api.tl b/td/generate/scheme/td_api.tl index 2b1389285..c6898f3a5 100644 --- a/td/generate/scheme/td_api.tl +++ b/td/generate/scheme/td_api.tl @@ -3037,6 +3037,9 @@ inputMessageReplyToExternalMessage chat_id:int53 message_id:int53 quote:inputTex //@story_id The identifier of the story inputMessageReplyToStory story_poster_chat_id:int53 story_id:int32 = InputMessageReplyTo; +//@description Describes an ephemeral message to be replied; for bots only @ephemeral_message_id The identifier of the ephemeral message to be replied +inputMessageReplyToEphemeralMessage ephemeral_message_id:int32 = InputMessageReplyTo; + //@description Describes a fact-check added to the message by an independent checker //@text Text of the fact-check diff --git a/td/telegram/BusinessConnectionManager.cpp b/td/telegram/BusinessConnectionManager.cpp index d410090f8..231f6cbf7 100644 --- a/td/telegram/BusinessConnectionManager.cpp +++ b/td/telegram/BusinessConnectionManager.cpp @@ -11,6 +11,7 @@ #include "td/telegram/BusinessBotRights.h" #include "td/telegram/ChatManager.h" #include "td/telegram/DialogManager.h" +#include "td/telegram/EphemeralMessageId.h" #include "td/telegram/files/FileManager.h" #include "td/telegram/files/FileType.h" #include "td/telegram/Global.h" @@ -1189,6 +1190,20 @@ MessageInputReplyTo BusinessConnectionManager::create_business_message_input_rep } case td_api::inputMessageReplyToExternalMessage::ID: return {}; + case td_api::inputMessageReplyToEphemeralMessage::ID: { + auto reply_to_message = td_api::move_object_as<td_api::inputMessageReplyToEphemeralMessage>(reply_to); + auto ephemeral_message_id = EphemeralMessageId(reply_to_message->ephemeral_message_id_); + if (!ephemeral_message_id.is_valid()) { + return {}; + } + return MessageInputReplyTo{MessageId(), + ephemeral_message_id, + DialogId(), + MessageQuote(), + 0, + string(), + "business inputMessageReplyToEphemeralMessage"}; + } default: UNREACHABLE(); return {}; diff --git a/td/telegram/MessageInputReplyTo.cpp b/td/telegram/MessageInputReplyTo.cpp index e3262647e..f49ecfb10 100644 --- a/td/telegram/MessageInputReplyTo.cpp +++ b/td/telegram/MessageInputReplyTo.cpp @@ -198,8 +198,8 @@ MessageFullId MessageInputReplyTo::get_reply_message_full_id(DialogId owner_dial } bool operator==(const MessageInputReplyTo &lhs, const MessageInputReplyTo &rhs) { - return lhs.message_id_ == rhs.message_id_ && lhs.dialog_id_ == rhs.dialog_id_ && - lhs.story_full_id_ == rhs.story_full_id_ && lhs.quote_ == rhs.quote_ && + return lhs.message_id_ == rhs.message_id_ && lhs.ephemeral_message_id_ == rhs.ephemeral_message_id_ && + lhs.dialog_id_ == rhs.dialog_id_ && lhs.story_full_id_ == rhs.story_full_id_ && lhs.quote_ == rhs.quote_ && lhs.todo_item_id_ == rhs.todo_item_id_ && lhs.poll_option_id_ == rhs.poll_option_id_; } @@ -208,6 +208,9 @@ bool operator!=(const MessageInputReplyTo &lhs, const MessageInputReplyTo &rhs) } StringBuilder &operator<<(StringBuilder &string_builder, const MessageInputReplyTo &input_reply_to) { + if (input_reply_to.ephemeral_message_id_.is_valid()) { + return string_builder << input_reply_to.ephemeral_message_id_; + } if (input_reply_to.message_id_.is_valid() || input_reply_to.message_id_.is_valid_scheduled()) { string_builder << input_reply_to.message_id_; if (input_reply_to.dialog_id_ != DialogId()) { diff --git a/td/telegram/MessageInputReplyTo.h b/td/telegram/MessageInputReplyTo.h index 531410845..b0f89d058 100644 --- a/td/telegram/MessageInputReplyTo.h +++ b/td/telegram/MessageInputReplyTo.h @@ -70,7 +70,8 @@ class MessageInputReplyTo { MessageInputReplyTo(Td *td, telegram_api::object_ptr<telegram_api::InputReplyTo> &&input_reply_to); bool is_empty() const { - return !message_id_.is_valid() && !message_id_.is_valid_scheduled() && !story_full_id_.is_valid(); + return !message_id_.is_valid() && !message_id_.is_valid_scheduled() && !ephemeral_message_id_.is_valid() && + !story_full_id_.is_valid(); } bool is_valid() const { diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index a326c73c0..1fb90d7a9 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -21146,6 +21146,20 @@ MessageInputReplyTo MessagesManager::create_message_input_reply_to( reply_to_message->poll_option_id_, "create_message_input_reply_to 6"}; } + case td_api::inputMessageReplyToEphemeralMessage::ID: { + auto reply_to_message = td_api::move_object_as<td_api::inputMessageReplyToEphemeralMessage>(reply_to); + auto ephemeral_message_id = EphemeralMessageId(reply_to_message->ephemeral_message_id_); + if (!for_ephemeral_message || !td_->auth_manager_->is_bot() || !ephemeral_message_id.is_valid()) { + return {}; + } + return MessageInputReplyTo{MessageId(), + ephemeral_message_id, + DialogId(), + MessageQuote(), + 0, + string(), + "create_message_input_reply_to 7"}; + } default: UNREACHABLE(); return {}; |
