From b28feeaf6b5bd2c0144153faaa7446f9c28c4736 Mon Sep 17 00:00:00 2001 From: levlam Date: Sun, 12 Jul 2026 23:29:16 +0300 Subject: Add editEphemeralMessageMedia. --- telegram-bot-api/Client.cpp | 24 ++++++++++++++++++++++++ telegram-bot-api/Client.h | 1 + 2 files changed, 25 insertions(+) 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 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( + chat_id, receiver_user_id, ephemeral_message_id, std::move(reply_markup), + std::move(input_media)), + td::make_unique(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); -- cgit v1.2.3