aboutsummaryrefslogtreecommitdiffhomepage
path: root/td
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2026-07-01 16:55:19 +0300
committerlevlam <levlam@telegram.org>2026-07-01 16:55:19 +0300
commit7d79713a039fa664648aa85d26c237132e0e725f (patch)
treea4a6cff8df1561f7ee667949e5a3b3ce9224a5de /td
parent6503a721d9b6da718a770c7ffd2e970f8120966d (diff)
Add td_api::deleteEphemeralMessage for bots.
Diffstat (limited to 'td')
-rw-r--r--td/generate/scheme/td_api.tl6
-rw-r--r--td/telegram/MessageQueryManager.cpp4
-rw-r--r--td/telegram/Requests.cpp8
-rw-r--r--td/telegram/Requests.h2
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);