aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2026-06-24 10:33:12 +0300
committerlevlam <levlam@telegram.org>2026-06-24 10:33:12 +0300
commit9990031be959ebcdb1963e2a89119f0828f542a3 (patch)
tree6d420223631ba330f67cb55620ca4f5badabecc2
parent09bc3f1c2753fdb0286c52377145464bdeb9a3a1 (diff)
Improve JsonChat.
-rw-r--r--telegram-bot-api/Client.cpp30
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: