aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2026-07-01 15:00:43 +0300
committerlevlam <levlam@telegram.org>2026-07-01 15:00:43 +0300
commit0f090ec07c81b2cfe5a75339243c2a5700c063ca (patch)
tree3b840adbde59e0edb3b3716a029630d125f6c10f
parenta041566e247eafc8fe25cb0ea64a168741039c48 (diff)
Improve on_delete_ephemeral_messages.
-rw-r--r--td/telegram/EphemeralMessageId.h9
-rw-r--r--td/telegram/MessagesManager.cpp5
-rw-r--r--td/telegram/MessagesManager.h2
-rw-r--r--td/telegram/UpdatesManager.cpp3
4 files changed, 15 insertions, 4 deletions
diff --git a/td/telegram/EphemeralMessageId.h b/td/telegram/EphemeralMessageId.h
index 94cb81613..9b59fa8c8 100644
--- a/td/telegram/EphemeralMessageId.h
+++ b/td/telegram/EphemeralMessageId.h
@@ -33,6 +33,15 @@ class EphemeralMessageId {
return id;
}
+ static vector<EphemeralMessageId> get_ephemeral_message_ids(const vector<int32> &message_ids) {
+ vector<EphemeralMessageId> ephemeral_message_ids;
+ ephemeral_message_ids.reserve(message_ids.size());
+ for (auto &message_id : message_ids) {
+ ephemeral_message_ids.emplace_back(message_id);
+ }
+ return ephemeral_message_ids;
+ }
+
bool operator==(const EphemeralMessageId &other) const {
return id == other.id;
}
diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp
index 3227863de..3a8383bf0 100644
--- a/td/telegram/MessagesManager.cpp
+++ b/td/telegram/MessagesManager.cpp
@@ -4315,14 +4315,15 @@ void MessagesManager::on_edited_ephemeral_message(telegram_api::object_ptr<teleg
on_get_message(std::move(message_info), false, "on_edited_ephemeral_message");
}
-void MessagesManager::on_delete_ephemeral_messages(DialogId dialog_id, vector<int32> ephemeral_message_ids) {
+void MessagesManager::on_delete_ephemeral_messages(DialogId dialog_id,
+ vector<EphemeralMessageId> ephemeral_message_ids) {
Dialog *d = get_dialog_force(dialog_id, "on_delete_ephemeral_messages");
if (d == nullptr) {
return;
}
vector<MessageId> message_ids;
for (auto ephemeral_message_id : ephemeral_message_ids) {
- auto it = d->ephemeral_message_ids.find(EphemeralMessageId(ephemeral_message_id));
+ auto it = d->ephemeral_message_ids.find(ephemeral_message_id);
if (it != d->ephemeral_message_ids.end()) {
message_ids.push_back(it->second);
}
diff --git a/td/telegram/MessagesManager.h b/td/telegram/MessagesManager.h
index f1bc39db9..4a6e18cae 100644
--- a/td/telegram/MessagesManager.h
+++ b/td/telegram/MessagesManager.h
@@ -322,7 +322,7 @@ class MessagesManager final : public Actor {
void on_edited_ephemeral_message(telegram_api::object_ptr<telegram_api::ephemeralMessage> &&message);
- void on_delete_ephemeral_messages(DialogId dialog_id, vector<int32> ephemeral_message_ids);
+ void on_delete_ephemeral_messages(DialogId dialog_id, vector<EphemeralMessageId> ephemeral_message_ids);
void on_update_service_notification(tl_object_ptr<telegram_api::updateServiceNotification> &&update,
bool skip_new_entities, Promise<Unit> &&promise);
diff --git a/td/telegram/UpdatesManager.cpp b/td/telegram/UpdatesManager.cpp
index 176950f39..9082fdefc 100644
--- a/td/telegram/UpdatesManager.cpp
+++ b/td/telegram/UpdatesManager.cpp
@@ -3738,7 +3738,8 @@ void UpdatesManager::on_update(tl_object_ptr<telegram_api::updateEditEphemeralMe
void UpdatesManager::on_update(tl_object_ptr<telegram_api::updateDeleteEphemeralMessages> update,
Promise<Unit> &&promise) {
- td_->messages_manager_->on_delete_ephemeral_messages(DialogId(update->peer_), std::move(update->ids_));
+ td_->messages_manager_->on_delete_ephemeral_messages(DialogId(update->peer_),
+ EphemeralMessageId::get_ephemeral_message_ids(update->ids_));
promise.set_value(Unit());
}