From 944580c99eec7dab93d04198f1a1e0a037230991 Mon Sep 17 00:00:00 2001 From: levlam Date: Fri, 27 Feb 2026 13:39:03 +0300 Subject: [PATCH] Add can_manage_tags to ChatAdministratorRights, ChatMemberAdministrator, and promoteChatMember. --- telegram-bot-api/Client.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index b71e081..1a2db03 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -10504,11 +10504,13 @@ td::Result> Client::get_chat TRY_RESULT(can_edit_stories, object.get_optional_bool_field("can_edit_stories")); TRY_RESULT(can_delete_stories, object.get_optional_bool_field("can_delete_stories")); TRY_RESULT(can_manage_direct_messages, object.get_optional_bool_field("can_manage_direct_messages")); + TRY_RESULT(can_manage_tags, object.get_optional_bool_field("can_manage_tags")); TRY_RESULT(is_anonymous, object.get_optional_bool_field("is_anonymous")); return make_object( can_manage_chat, can_change_info, can_post_messages, can_edit_messages, can_delete_messages, can_invite_users, can_restrict_members, can_pin_messages, can_manage_topics, can_promote_members, can_manage_video_chats, - can_post_stories, can_edit_stories, can_delete_stories, can_manage_direct_messages, false, is_anonymous); + can_post_stories, can_edit_stories, can_delete_stories, can_manage_direct_messages, can_manage_tags, + is_anonymous); } td::Result> Client::get_chat_administrator_rights( @@ -14523,17 +14525,19 @@ td::Status Client::process_promote_chat_member_query(PromisedQueryPtr &query) { auto can_edit_stories = to_bool(query->arg("can_edit_stories")); auto can_delete_stories = to_bool(query->arg("can_delete_stories")); auto can_manage_direct_messages = to_bool(query->arg("can_manage_direct_messages")); + auto can_manage_tags = to_bool(query->arg("can_manage_tags")); auto is_anonymous = to_bool(query->arg("is_anonymous")); auto is_promotion = can_manage_chat || can_change_info || can_post_messages || can_edit_messages || can_delete_messages || can_invite_users || can_restrict_members || can_pin_messages || can_manage_topics || can_promote_members || can_manage_video_chats || can_post_stories || - can_edit_stories || can_delete_stories || can_manage_direct_messages || is_anonymous; + can_edit_stories || can_delete_stories || can_manage_direct_messages || can_manage_tags || + is_anonymous; auto status = make_object( - true, - make_object( - can_manage_chat, can_change_info, can_post_messages, can_edit_messages, can_delete_messages, can_invite_users, - can_restrict_members, can_pin_messages, can_manage_topics, can_promote_members, can_manage_video_chats, - can_post_stories, can_edit_stories, can_delete_stories, can_manage_direct_messages, false, is_anonymous)); + true, make_object( + can_manage_chat, can_change_info, can_post_messages, can_edit_messages, can_delete_messages, + can_invite_users, can_restrict_members, can_pin_messages, can_manage_topics, can_promote_members, + can_manage_video_chats, can_post_stories, can_edit_stories, can_delete_stories, + can_manage_direct_messages, can_manage_tags, is_anonymous)); check_chat(chat_id, AccessRights::Write, std::move(query), [this, user_id, status = std::move(status), is_promotion](int64 chat_id, PromisedQueryPtr query) mutable { auto chat_info = get_chat(chat_id); @@ -16042,6 +16046,9 @@ void Client::json_store_administrator_rights(td::JsonObjectScope &object, const if (chat_type == ChatType::Channel) { object("can_manage_direct_messages", td::JsonBool(rights->can_manage_direct_messages_)); } + if (chat_type == ChatType::Group || chat_type == ChatType::Supergroup) { + object("can_manage_tags", td::JsonBool(rights->can_manage_tags_)); + } object("is_anonymous", td::JsonBool(rights->is_anonymous_)); }