diff options
| author | levlam <levlam@telegram.org> | 2026-06-24 10:33:12 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2026-06-24 10:33:12 +0300 |
| commit | 9990031be959ebcdb1963e2a89119f0828f542a3 (patch) | |
| tree | 6d420223631ba330f67cb55620ca4f5badabecc2 | |
| parent | 09bc3f1c2753fdb0286c52377145464bdeb9a3a1 (diff) | |
Improve JsonChat.
| -rw-r--r-- | telegram-bot-api/Client.cpp | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index fb9d25b..41ba05b 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -1588,19 +1588,25 @@ class Client::JsonChat final : public td::Jsonable { if (user_info->paid_message_star_count > 0) { object("paid_message_star_count", user_info->paid_message_star_count); } + photo = user_info->photo.get(); } - photo = user_info->photo.get(); break; } case ChatInfo::Type::Group: { object("title", chat_info->title); object("type", "group"); - const auto *permissions = chat_info->permissions.get(); - - auto group_info = client_->get_group_info(chat_info->group_id); - CHECK(group_info != nullptr); + auto everyone_is_administrator = + permissions->can_send_basic_messages_ && permissions->can_send_audios_ && + permissions->can_send_documents_ && permissions->can_send_photos_ && permissions->can_send_videos_ && + permissions->can_send_video_notes_ && permissions->can_send_voice_notes_ && permissions->can_send_polls_ && + permissions->can_send_other_messages_ && permissions->can_add_link_previews_ && + permissions->can_react_to_messages_ && permissions->can_edit_tag_ && permissions->can_change_info_ && + permissions->can_invite_users_ && permissions->can_pin_messages_; + object("all_members_are_administrators", td::JsonBool(everyone_is_administrator)); if (is_full_) { + auto group_info = client_->get_group_info(chat_info->group_id); + CHECK(group_info != nullptr); if (!group_info->description.empty()) { object("description", group_info->description); } @@ -1608,17 +1614,9 @@ class Client::JsonChat final : public td::Jsonable { object("invite_link", group_info->invite_link); } object("permissions", JsonChatPermissions(permissions)); + object("accepted_gift_types", JsonAcceptedGiftTypes(false, false, false, false, false)); + photo = group_info->photo.get(); } - auto everyone_is_administrator = - permissions->can_send_basic_messages_ && permissions->can_send_audios_ && - permissions->can_send_documents_ && permissions->can_send_photos_ && permissions->can_send_videos_ && - permissions->can_send_video_notes_ && permissions->can_send_voice_notes_ && permissions->can_send_polls_ && - permissions->can_send_other_messages_ && permissions->can_add_link_previews_ && - permissions->can_react_to_messages_ && permissions->can_edit_tag_ && permissions->can_change_info_ && - permissions->can_invite_users_ && permissions->can_pin_messages_; - object("all_members_are_administrators", td::JsonBool(everyone_is_administrator)); - object("accepted_gift_types", JsonAcceptedGiftTypes(false, false, false, false, false)); - photo = group_info->photo.get(); break; } case ChatInfo::Type::Supergroup: { @@ -1718,8 +1716,8 @@ class Client::JsonChat final : public td::Jsonable { if (supergroup_info->paid_message_star_count) { object("paid_message_star_count", supergroup_info->paid_message_star_count); } + photo = supergroup_info->photo.get(); } - photo = supergroup_info->photo.get(); break; } case ChatInfo::Type::Unknown: |
