diff options
| author | levlam <levlam@telegram.org> | 2026-07-01 15:00:43 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2026-07-01 15:00:43 +0300 |
| commit | 0f090ec07c81b2cfe5a75339243c2a5700c063ca (patch) | |
| tree | 3b840adbde59e0edb3b3716a029630d125f6c10f | |
| parent | a041566e247eafc8fe25cb0ea64a168741039c48 (diff) | |
Improve on_delete_ephemeral_messages.
| -rw-r--r-- | td/telegram/EphemeralMessageId.h | 9 | ||||
| -rw-r--r-- | td/telegram/MessagesManager.cpp | 5 | ||||
| -rw-r--r-- | td/telegram/MessagesManager.h | 2 | ||||
| -rw-r--r-- | td/telegram/UpdatesManager.cpp | 3 |
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()); } |
