From 2276a4c9aff0e36d4bd967b78dd20829d616ea44 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sun, 9 Apr 2023 20:36:39 +0300 Subject: [PATCH] Added menu item to bot info for bot management. --- Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp | 5 ++++- Telegram/SourceFiles/data/data_session.cpp | 1 + Telegram/SourceFiles/data/data_user.h | 1 + Telegram/SourceFiles/window/window_peer_menu.cpp | 4 +++- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp index 0754484bd..0e5626642 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_info_box.cpp @@ -35,6 +35,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_changes.h" #include "data/data_message_reactions.h" #include "data/data_peer_values.h" +#include "data/data_user.h" #include "history/admin_log/history_admin_log_section.h" #include "info/profile/info_profile_values.h" #include "lang/lang_keys.h" @@ -2014,7 +2015,9 @@ object_ptr EditPeerInfoBox::CreateButton( } bool EditPeerInfoBox::Available(not_null peer) { - if (const auto chat = peer->asChat()) { + if (const auto bot = peer->asUser()) { + return bot->botInfo && bot->botInfo->canEditInformation; + } else if (const auto chat = peer->asChat()) { return false || chat->canEditInformation() || chat->canEditPermissions(); diff --git a/Telegram/SourceFiles/data/data_session.cpp b/Telegram/SourceFiles/data/data_session.cpp index 3fc5717d8..59bf0886d 100644 --- a/Telegram/SourceFiles/data/data_session.cpp +++ b/Telegram/SourceFiles/data/data_session.cpp @@ -667,6 +667,7 @@ not_null Session::processUser(const MTPUser &data) { result->botInfo->inlinePlaceholder = QString(); } result->botInfo->supportsAttachMenu = data.is_bot_attach_menu(); + result->botInfo->canEditInformation = data.is_bot_can_edit(); } else { result->setBotInfoVersion(-1); } diff --git a/Telegram/SourceFiles/data/data_user.h b/Telegram/SourceFiles/data/data_user.h index e0355d8e9..cc32613f9 100644 --- a/Telegram/SourceFiles/data/data_user.h +++ b/Telegram/SourceFiles/data/data_user.h @@ -23,6 +23,7 @@ struct BotInfo { bool readsAllHistory = false; bool cantJoinGroups = false; bool supportsAttachMenu = false; + bool canEditInformation = false; int version = 0; int descriptionVersion = 0; QString description; diff --git a/Telegram/SourceFiles/window/window_peer_menu.cpp b/Telegram/SourceFiles/window/window_peer_menu.cpp index bea338031..4224fd4a3 100644 --- a/Telegram/SourceFiles/window/window_peer_menu.cpp +++ b/Telegram/SourceFiles/window/window_peer_menu.cpp @@ -982,7 +982,9 @@ void Filler::addManageChat() { } const auto peer = _peer; const auto navigation = _controller; - const auto text = (peer->isChat() || peer->isMegagroup()) + const auto text = peer->isUser() + ? tr::lng_manage_bot_title(tr::now) + : (peer->isChat() || peer->isMegagroup()) ? tr::lng_manage_group_title(tr::now) : tr::lng_manage_channel_title(tr::now); _addAction(text, [=] {