From ef1aa1211c4d321ed5f9ac64445f4e25475bbcba Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 13 Oct 2025 15:19:08 +0300 Subject: [PATCH] Add sendTextMessageDraft. --- telegram-bot-api/Client.cpp | 17 +++++++++++++++++ telegram-bot-api/Client.h | 1 + 2 files changed, 18 insertions(+) diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index c8fe9e2..06aa4bd 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -242,6 +242,7 @@ bool Client::init_methods() { methods_.emplace("forwardmessages", &Client::process_forward_messages_query); methods_.emplace("sendmediagroup", &Client::process_send_media_group_query); methods_.emplace("sendchataction", &Client::process_send_chat_action_query); + methods_.emplace("sendmessagedraft", &Client::process_send_message_draft_query); methods_.emplace("setmessagereaction", &Client::process_set_message_reaction_query); methods_.emplace("editmessagetext", &Client::process_edit_message_text_query); methods_.emplace("editmessagelivelocation", &Client::process_edit_message_live_location_query); @@ -12590,6 +12591,22 @@ td::Status Client::process_send_chat_action_query(PromisedQueryPtr &query) { return td::Status::OK(); } +td::Status Client::process_send_message_draft_query(PromisedQueryPtr &query) { + auto chat_id_str = query->arg("chat_id"); + auto forum_topic_id = get_forum_topic_id(query.get(), "message_thread_id"); + auto draft_id = td::to_integer(query->arg("draft_id")); + TRY_RESULT(text, get_formatted_text(query->arg("text").str(), query->arg("parse_mode").str(), + get_input_entities(query.get(), "entities"))); + + check_chat(chat_id_str, AccessRights::Write, std::move(query), + [this, forum_topic_id, draft_id, text = std::move(text)](int64 chat_id, PromisedQueryPtr query) mutable { + send_request( + make_object(chat_id, forum_topic_id, draft_id, std::move(text)), + td::make_unique(std::move(query))); + }); + return td::Status::OK(); +} + td::Status Client::process_set_message_reaction_query(PromisedQueryPtr &query) { auto chat_id = query->arg("chat_id"); auto message_id = get_message_id(query.get()); diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h index 14c89cb..6a30deb 100644 --- a/telegram-bot-api/Client.h +++ b/telegram-bot-api/Client.h @@ -754,6 +754,7 @@ class Client final : public WebhookActor::Callback { td::Status process_forward_messages_query(PromisedQueryPtr &query); td::Status process_send_media_group_query(PromisedQueryPtr &query); td::Status process_send_chat_action_query(PromisedQueryPtr &query); + td::Status process_send_message_draft_query(PromisedQueryPtr &query); td::Status process_set_message_reaction_query(PromisedQueryPtr &query); td::Status process_edit_message_text_query(PromisedQueryPtr &query); td::Status process_edit_message_live_location_query(PromisedQueryPtr &query);