aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--telegram-bot-api/Client.cpp108
-rw-r--r--telegram-bot-api/Client.h3
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;