From c2f554de43df4f75432a034bd02e607f7cbcfc6a Mon Sep 17 00:00:00 2001 From: levlam Date: Fri, 27 Feb 2026 13:35:06 +0300 Subject: [PATCH] Add can_edit_tag to ChatPermissions and ChatMemberRestricted. --- telegram-bot-api/Client.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index b0d51e8..b71e081 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -11148,7 +11148,8 @@ td::Result> Client::get_chat_permiss auto can_send_voice_notes = false; auto can_send_polls = false; auto can_send_other_messages = false; - auto can_add_web_page_previews = false; + auto can_add_link_previews = false; + auto can_edit_tag = false; auto can_change_info = false; auto can_invite_users = false; auto can_pin_messages = false; @@ -11173,7 +11174,7 @@ td::Result> Client::get_chat_permiss TRY_RESULT_ASSIGN(can_send_messages, object.get_optional_bool_field("can_send_messages")); TRY_RESULT_ASSIGN(can_send_polls, object.get_optional_bool_field("can_send_polls")); TRY_RESULT_ASSIGN(can_send_other_messages, object.get_optional_bool_field("can_send_other_messages")); - TRY_RESULT_ASSIGN(can_add_web_page_previews, object.get_optional_bool_field("can_add_web_page_previews")); + TRY_RESULT_ASSIGN(can_add_link_previews, object.get_optional_bool_field("can_add_web_page_previews")); TRY_RESULT_ASSIGN(can_change_info, object.get_optional_bool_field("can_change_info")); TRY_RESULT_ASSIGN(can_invite_users, object.get_optional_bool_field("can_invite_users")); TRY_RESULT_ASSIGN(can_pin_messages, object.get_optional_bool_field("can_pin_messages")); @@ -11203,6 +11204,11 @@ td::Result> Client::get_chat_permiss can_send_messages = true; } } + if (object.has_field("can_edit_tag")) { + TRY_RESULT_ASSIGN(can_edit_tag, object.get_optional_bool_field("can_edit_tag")); + } else { + can_edit_tag = can_pin_messages; + } return td::Status::OK(); }(); @@ -11210,7 +11216,7 @@ td::Result> Client::get_chat_permiss return td::Status::Error(400, PSLICE() << "Can't parse chat permissions: " << status.message()); } - if ((can_send_other_messages || can_add_web_page_previews) && !use_independent_chat_permissions) { + if ((can_send_other_messages || can_add_link_previews) && !use_independent_chat_permissions) { can_send_audios = true; can_send_documents = true; can_send_photos = true; @@ -11228,15 +11234,15 @@ td::Result> Client::get_chat_permiss can_send_messages = to_bool(query->arg("can_send_messages")); bool can_send_media_messages = to_bool(query->arg("can_send_media_messages")); can_send_other_messages = to_bool(query->arg("can_send_other_messages")); - can_add_web_page_previews = to_bool(query->arg("can_add_web_page_previews")); - if ((can_send_other_messages || can_add_web_page_previews) && !use_independent_chat_permissions) { + can_add_link_previews = to_bool(query->arg("can_add_web_page_previews")); + if ((can_send_other_messages || can_add_link_previews) && !use_independent_chat_permissions) { can_send_media_messages = true; } if (can_send_media_messages && !use_independent_chat_permissions) { can_send_messages = true; } - if (can_send_messages && can_send_media_messages && can_send_other_messages && can_add_web_page_previews) { + if (can_send_messages && can_send_media_messages && can_send_other_messages && can_add_link_previews) { // legacy unrestrict can_send_polls = true; can_change_info = true; @@ -11256,10 +11262,10 @@ td::Result> Client::get_chat_permiss can_send_voice_notes = can_send_media_messages; } - return make_object(can_send_messages, can_send_audios, can_send_documents, can_send_photos, - can_send_videos, can_send_video_notes, can_send_voice_notes, - can_send_polls, can_send_other_messages, can_add_web_page_previews, false, - can_change_info, can_invite_users, can_pin_messages, can_manage_topics); + return make_object( + can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, + can_send_voice_notes, can_send_polls, can_send_other_messages, can_add_link_previews, can_edit_tag, + can_change_info, can_invite_users, can_pin_messages, can_manage_topics); } td::Result> Client::get_input_checklist_task( @@ -16054,6 +16060,7 @@ void Client::json_store_permissions(td::JsonObjectScope &object, const td_api::c object("can_send_polls", td::JsonBool(permissions->can_send_polls_)); object("can_send_other_messages", td::JsonBool(permissions->can_send_other_messages_)); object("can_add_web_page_previews", td::JsonBool(permissions->can_add_link_previews_)); + object("can_edit_tag", td::JsonBool(permissions->can_edit_tag_)); object("can_change_info", td::JsonBool(permissions->can_change_info_)); object("can_invite_users", td::JsonBool(permissions->can_invite_users_)); object("can_pin_messages", td::JsonBool(permissions->can_pin_messages_));