diff options
| author | levlam <levlam@telegram.org> | 2026-07-12 23:35:55 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2026-07-12 23:35:55 +0300 |
| commit | 52099b13dde6022dfecd05d42dba44fe34859052 (patch) | |
| tree | 1c1f56d4a0f9986d3db70e2e915ce5ea15343ebc | |
| parent | b28feeaf6b5bd2c0144153faaa7446f9c28c4736 (diff) | |
Add and use do_edit_ephemeral_message.
| -rw-r--r-- | telegram-bot-api/Client.cpp | 108 | ||||
| -rw-r--r-- | telegram-bot-api/Client.h | 3 |
2 files changed, 32 insertions, 79 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index 484e72d..0d16d48 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -14825,96 +14825,21 @@ td::Status Client::process_edit_message_reply_markup_query(PromisedQueryPtr &que td::Status Client::process_edit_ephemeral_message_text_query(PromisedQueryPtr &query) { TRY_RESULT(input_message_text, get_input_message_text(query.get())); - 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_)); - - 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_message_text = std::move(input_message_text)](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_message_text = std::move(input_message_text), - 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_message_text)), - td::make_unique<TdOnOkQueryCallback>(std::move(query))); - }); - }); - return td::Status::OK(); + return do_edit_ephemeral_message(std::move(input_message_text), query); } 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(); + return do_edit_ephemeral_message(std::move(input_media), query); } 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")); - 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(caption, get_caption(query.get())); - auto input_message_text = make_object<td_api::inputMessageText>(std::move(caption), nullptr, false); - - 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_message_text = std::move(input_message_text)](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_message_text = std::move(input_message_text), - 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_message_text)), - td::make_unique<TdOnOkQueryCallback>(std::move(query))); - }); - }); - return td::Status::OK(); + return do_edit_ephemeral_message(make_object<td_api::inputMessageText>(std::move(caption), nullptr, false), query); } td::Status Client::process_edit_ephemeral_message_reply_markup_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_)); - - 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]( - 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, 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), nullptr), - td::make_unique<TdOnOkQueryCallback>(std::move(query))); - }); - }); - return td::Status::OK(); + return do_edit_ephemeral_message(nullptr, query); } td::Status Client::process_delete_message_query(PromisedQueryPtr &query) { @@ -17396,6 +17321,31 @@ void Client::on_sent_story(object_ptr<td_api::story> &&story, PromisedQueryPtr q CHECK(emplace_result.second); } +td::Status Client::do_edit_ephemeral_message(object_ptr<td_api::InputMessageContent> input_message_content, + 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_)); + + 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_message_content = std::move(input_message_content)](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_message_content = std::move(input_message_content), + 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_message_content)), + td::make_unique<TdOnOkQueryCallback>(std::move(query))); + }); + }); + return td::Status::OK(); +} + void Client::abort_long_poll(bool from_set_webhook) { if (long_poll_query_) { td::Slice message; diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h index 3fec71c..60f8acf 100644 --- a/telegram-bot-api/Client.h +++ b/telegram-bot-api/Client.h @@ -1044,6 +1044,9 @@ class Client final : public WebhookActor::Callback { void on_sent_story(object_ptr<td_api::story> &&story, PromisedQueryPtr query); + td::Status do_edit_ephemeral_message(object_ptr<td_api::InputMessageContent> input_message_content, + PromisedQueryPtr &query); + void do_get_file(object_ptr<td_api::file> file, PromisedQueryPtr query); bool is_file_being_downloaded(int32 file_id) const; |
