diff options
| author | levlam <levlam@telegram.org> | 2026-07-01 16:55:19 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2026-07-01 16:55:19 +0300 |
| commit | 7d79713a039fa664648aa85d26c237132e0e725f (patch) | |
| tree | a4a6cff8df1561f7ee667949e5a3b3ce9224a5de /td | |
| parent | 6503a721d9b6da718a770c7ffd2e970f8120966d (diff) | |
Add td_api::deleteEphemeralMessage for bots.
Diffstat (limited to 'td')
| -rw-r--r-- | td/generate/scheme/td_api.tl | 6 | ||||
| -rw-r--r-- | td/telegram/MessageQueryManager.cpp | 4 | ||||
| -rw-r--r-- | td/telegram/Requests.cpp | 8 | ||||
| -rw-r--r-- | td/telegram/Requests.h | 2 |
4 files changed, 18 insertions, 2 deletions
diff --git a/td/generate/scheme/td_api.tl b/td/generate/scheme/td_api.tl index ccdc771c0..c2d13df7f 100644 --- a/td/generate/scheme/td_api.tl +++ b/td/generate/scheme/td_api.tl @@ -12070,6 +12070,12 @@ addLocalMessage chat_id:int53 sender_id:MessageSender reply_to:InputMessageReply //@revoke Pass true to delete messages for all chat members. Always true for supergroups, channels and secret chats deleteMessages chat_id:int53 message_ids:vector<int53> revoke:Bool = Ok; +//@description Deletes an ephemeral message; for bots only +//@chat_id Chat identifier +//@receiver_user_id Identifier of the user who received the message +//@ephemeral_message_id Identifiers of the message to be deleted +deleteEphemeralMessage chat_id:int53 receiver_user_id:int53 ephemeral_message_id:int32 = Ok; + //@description Deletes all messages sent by the specified message sender in a chat. Supported only for supergroups; requires can_delete_messages administrator right @chat_id Chat identifier @sender_id Identifier of the sender of messages to delete deleteChatMessagesBySender chat_id:int53 sender_id:MessageSender = Ok; diff --git a/td/telegram/MessageQueryManager.cpp b/td/telegram/MessageQueryManager.cpp index 74b29ff96..ded245dff 100644 --- a/td/telegram/MessageQueryManager.cpp +++ b/td/telegram/MessageQueryManager.cpp @@ -3758,6 +3758,8 @@ void MessageQueryManager::delete_ephemeral_message_on_server(DialogId dialog_id, LOG(INFO) << "Delete " << ephemeral_message_id << " from " << receiver_dialog_id << " in " << dialog_id << " from server"; + td_->messages_manager_->on_delete_ephemeral_messages(dialog_id, {ephemeral_message_id}); + if (log_event_id == 0 && G()->use_message_database()) { log_event_id = save_delete_ephemeral_message_on_server_log_event(dialog_id, receiver_dialog_id, ephemeral_message_id); @@ -4363,8 +4365,6 @@ void MessageQueryManager::on_binlog_events(vector<BinlogEvent> &&events) { break; } - td_->messages_manager_->on_delete_ephemeral_messages(dialog_id, {log_event.ephemeral_message_id_}); - delete_ephemeral_message_on_server(dialog_id, log_event.receiver_dialog_id_, log_event.ephemeral_message_id_, event.id_, Auto()); break; diff --git a/td/telegram/Requests.cpp b/td/telegram/Requests.cpp index 1fcc7b7e1..661f4c742 100644 --- a/td/telegram/Requests.cpp +++ b/td/telegram/Requests.cpp @@ -4112,6 +4112,14 @@ void Requests::on_request(uint64 id, const td_api::deleteMessages &request) { request.revoke_, std::move(promise)); } +void Requests::on_request(uint64 id, const td_api::deleteEphemeralMessage &request) { + CHECK_IS_BOT(); + CREATE_OK_REQUEST_PROMISE(); + td_->message_query_manager_->delete_ephemeral_message_on_server( + DialogId(request.chat_id_), DialogId(UserId(request.receiver_user_id_)), + EphemeralMessageId(request.ephemeral_message_id_), 0, std::move(promise)); +} + void Requests::on_request(uint64 id, const td_api::deleteChatMessagesBySender &request) { CHECK_IS_USER(); CREATE_OK_REQUEST_PROMISE(); diff --git a/td/telegram/Requests.h b/td/telegram/Requests.h index 037d3a912..f0055044b 100644 --- a/td/telegram/Requests.h +++ b/td/telegram/Requests.h @@ -648,6 +648,8 @@ class Requests { void on_request(uint64 id, const td_api::deleteMessages &request); + void on_request(uint64 id, const td_api::deleteEphemeralMessage &request); + void on_request(uint64 id, const td_api::deleteChatMessagesBySender &request); void on_request(uint64 id, const td_api::deleteChatMessagesByDate &request); |
