aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2026-05-01 17:28:45 +0300
committerlevlam <levlam@telegram.org>2026-05-01 17:28:45 +0300
commitcb0ee53e2132bcb23be69551007ab77870b737b3 (patch)
tree096860e538d8466edaa2674fef909ec9cbacc102
parentde6f7d889d9209e0ce4e1bff3322d8e7683c007d (diff)
Add deleteMessageReaction.
-rw-r--r--telegram-bot-api/Client.cpp33
-rw-r--r--telegram-bot-api/Client.h1
2 files changed, 34 insertions, 0 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp
index cb7a623..ccfe947 100644
--- a/telegram-bot-api/Client.cpp
+++ b/telegram-bot-api/Client.cpp
@@ -268,6 +268,7 @@ bool Client::init_methods() {
methods_.emplace("editmessagereplymarkup", &Client::process_edit_message_reply_markup_query);
methods_.emplace("deletemessage", &Client::process_delete_message_query);
methods_.emplace("deletemessages", &Client::process_delete_messages_query);
+ methods_.emplace("deletemessagereaction", &Client::process_delete_message_reaction_query);
methods_.emplace("poststory", &Client::process_post_story_query);
methods_.emplace("repoststory", &Client::process_repost_story_query);
methods_.emplace("editstory", &Client::process_edit_story_query);
@@ -13521,6 +13522,38 @@ td::Status Client::process_delete_messages_query(PromisedQueryPtr &query) {
return td::Status::OK();
}
+td::Status Client::process_delete_message_reaction_query(PromisedQueryPtr &query) {
+ auto chat_id = query->arg("chat_id");
+ auto message_id = get_message_id(query.get());
+ int64 user_id = -1;
+ td::string actor_chat_id;
+ if (!query->arg("user_id").empty()) {
+ TRY_RESULT_ASSIGN(user_id, get_user_id(query.get()));
+ } else {
+ actor_chat_id = query->arg("actor_chat_id").str();
+ }
+ check_message(chat_id, message_id, false, AccessRights::Write, "message to delete reactions", std::move(query),
+ [this, user_id, actor_chat_id](int64 chat_id, int64 message_id, PromisedQueryPtr query) {
+ if (user_id >= 0) {
+ check_user_no_fail(
+ user_id, std::move(query), [this, chat_id, message_id, user_id](PromisedQueryPtr query) {
+ send_request(make_object<td_api::deleteMessageReactionsFromSender>(
+ chat_id, message_id, make_object<td_api::messageSenderUser>(user_id)),
+ td::make_unique<TdOnOkQueryCallback>(std::move(query)));
+ });
+ } else {
+ check_chat_no_fail(
+ actor_chat_id, std::move(query),
+ [this, chat_id, message_id](int64 actor_chat_id, PromisedQueryPtr query) {
+ send_request(make_object<td_api::deleteMessageReactionsFromSender>(
+ chat_id, message_id, make_object<td_api::messageSenderChat>(actor_chat_id)),
+ td::make_unique<TdOnOkQueryCallback>(std::move(query)));
+ });
+ }
+ });
+ return td::Status::OK();
+}
+
td::Status Client::process_post_story_query(PromisedQueryPtr &query) {
auto business_connection_id = query->arg("business_connection_id").str();
TRY_RESULT(content, get_input_story_content(query.get()));
diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h
index bfe1998..8d1f686 100644
--- a/telegram-bot-api/Client.h
+++ b/telegram-bot-api/Client.h
@@ -802,6 +802,7 @@ class Client final : public WebhookActor::Callback {
td::Status process_edit_message_reply_markup_query(PromisedQueryPtr &query);
td::Status process_delete_message_query(PromisedQueryPtr &query);
td::Status process_delete_messages_query(PromisedQueryPtr &query);
+ td::Status process_delete_message_reaction_query(PromisedQueryPtr &query);
td::Status process_post_story_query(PromisedQueryPtr &query);
td::Status process_repost_story_query(PromisedQueryPtr &query);
td::Status process_edit_story_query(PromisedQueryPtr &query);