diff options
| author | levlam <levlam@telegram.org> | 2026-07-12 23:29:16 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2026-07-12 23:29:16 +0300 |
| commit | b28feeaf6b5bd2c0144153faaa7446f9c28c4736 (patch) | |
| tree | 4ca416e333c4e0b37889c5db33649d67d3027f4d | |
| parent | 1752a220755798d1f3e55f5d477a67ab43a3568f (diff) | |
Add editEphemeralMessageMedia.
| -rw-r--r-- | telegram-bot-api/Client.cpp | 24 | ||||
| -rw-r--r-- | telegram-bot-api/Client.h | 1 |
2 files changed, 25 insertions, 0 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index 833278a..484e72d 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -270,6 +270,7 @@ bool Client::init_methods() { methods_.emplace("editmessagechecklist", &Client::process_edit_message_checklist_query); methods_.emplace("editmessagereplymarkup", &Client::process_edit_message_reply_markup_query); methods_.emplace("editephemeralmessagetext", &Client::process_edit_ephemeral_message_text_query); + methods_.emplace("editephemeralmessagemedia", &Client::process_edit_ephemeral_message_media_query); methods_.emplace("editephemeralmessagecaption", &Client::process_edit_ephemeral_message_caption_query); methods_.emplace("editephemeralmessagereplymarkup", &Client::process_edit_ephemeral_message_reply_markup_query); methods_.emplace("deletemessage", &Client::process_delete_message_query); @@ -14846,6 +14847,29 @@ td::Status Client::process_edit_ephemeral_message_text_query(PromisedQueryPtr &q return td::Status::OK(); } +td::Status Client::process_edit_ephemeral_message_media_query(PromisedQueryPtr &query) { + auto chat_id = query->arg("chat_id"); + TRY_RESULT(receiver_user_id, get_user_id(query.get(), "receiver_user_id")); + auto ephemeral_message_id = get_integer_arg(query.get(), "ephemeral_message_id", 0); + TRY_RESULT(reply_markup, get_reply_markup(query.get(), bot_user_ids_)); + TRY_RESULT(input_media, get_input_media(query.get(), "media")); + + resolve_reply_markup_bot_usernames( + std::move(reply_markup), std::move(query), + [this, chat_id_str = chat_id.str(), receiver_user_id, ephemeral_message_id, input_media = std::move(input_media)]( + object_ptr<td_api::ReplyMarkup> reply_markup, PromisedQueryPtr query) mutable { + check_chat(chat_id_str, AccessRights::Edit, std::move(query), + [this, receiver_user_id, ephemeral_message_id, input_media = std::move(input_media), + reply_markup = std::move(reply_markup)](int64 chat_id, PromisedQueryPtr query) mutable { + send_request(make_object<td_api::editEphemeralMessage>( + chat_id, receiver_user_id, ephemeral_message_id, std::move(reply_markup), + std::move(input_media)), + td::make_unique<TdOnOkQueryCallback>(std::move(query))); + }); + }); + return td::Status::OK(); +} + td::Status Client::process_edit_ephemeral_message_caption_query(PromisedQueryPtr &query) { auto chat_id = query->arg("chat_id"); TRY_RESULT(receiver_user_id, get_user_id(query.get(), "receiver_user_id")); diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h index 0b40bb9..3fec71c 100644 --- a/telegram-bot-api/Client.h +++ b/telegram-bot-api/Client.h @@ -888,6 +888,7 @@ class Client final : public WebhookActor::Callback { td::Status process_edit_message_checklist_query(PromisedQueryPtr &query); td::Status process_edit_message_reply_markup_query(PromisedQueryPtr &query); td::Status process_edit_ephemeral_message_text_query(PromisedQueryPtr &query); + td::Status process_edit_ephemeral_message_media_query(PromisedQueryPtr &query); td::Status process_edit_ephemeral_message_caption_query(PromisedQueryPtr &query); td::Status process_edit_ephemeral_message_reply_markup_query(PromisedQueryPtr &query); td::Status process_delete_message_query(PromisedQueryPtr &query); |
