diff --git a/README.md b/README.md index 6f032ab..e6e11e0 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,16 @@ The `ChatMember` object now has two new fields: - `joined_date`: integer, unix timestamp, when has the user joined - `inviter`: `User`, the inviter +#### Object `Chat` +The `Chat` object now has two new fields: +- `is_verified`: bool, optional, default false. Is the chat verified by Telegram, clients show a verified batch +- `is_scam`: bool, optional, default false. Is the chat reported for scam, clients show a warning to the user + +#### Object `User` +The `User` object now has two new fields: +- `is_verified`: bool, optional, default false. Is the user verified by Telegram, clients show a verified batch +- `is_scam`: bool, optional, default false. Is the user reported for scam, clients show a warning to the user + In addition, the member list now shows the full bot list (previously only the bot that executed the query was shown) diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index fb19f64..1cce9d2 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -331,6 +331,12 @@ class Client::JsonUser : public Jsonable { if (user_info != nullptr && !user_info->language_code.empty()) { object("language_code", user_info->language_code); } + if (user_info != nullptr && user_info->is_verified) { + object("is_verified", td::JsonBool(user_info->is_verified)); + } + if (user_info != nullptr && user_info->is_scam) { + object("is_scam", td::JsonBool(user_info->is_scam)); + } if (is_bot && full_bot_info_) { object("can_join_groups", td::JsonBool(user_info->can_join_groups)); object("can_read_all_group_messages", td::JsonBool(user_info->can_read_all_group_messages)); @@ -584,6 +590,12 @@ class Client::JsonChat : public Jsonable { object("username", user_info->username); } object("type", "private"); + if (user_info->is_verified) { + object("is_verified", td::JsonBool(user_info->is_verified)); + } + if (user_info->is_scam) { + object("is_scam", td::JsonBool(user_info->is_scam)); + } if (is_full_) { if (!user_info->bio.empty()) { object("bio", user_info->bio); @@ -629,6 +641,12 @@ class Client::JsonChat : public Jsonable { } else { object("type", "channel"); } + if (supergroup_info->is_verified) { + object("is_verified", td::JsonBool(supergroup_info->is_verified)); + } + if (supergroup_info->is_scam) { + object("is_scam", td::JsonBool(supergroup_info->is_scam)); + } if (is_full_) { if (!supergroup_info->description.empty()) { object("description", supergroup_info->description); @@ -7966,6 +7984,8 @@ void Client::add_user(std::unordered_map &users, object_ptrlast_name = user->last_name_; user_info->username = user->username_; user_info->language_code = user->language_code_; + user_info->is_verified = user->is_verified_; + user_info->is_scam = user->is_scam_; user_info->have_access = user->have_access_; @@ -8035,6 +8055,8 @@ void Client::add_supergroup(std::unordered_map &supergrou supergroup_info->status = std::move(supergroup->status_); supergroup_info->is_supergroup = !supergroup->is_channel_; supergroup_info->has_location = supergroup->has_location_; + supergroup_info->is_verified = supergroup->is_verified_; + supergroup_info->is_scam = supergroup->is_scam_; } void Client::set_supergroup_description(int32 supergroup_id, td::string &&descripton) { diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h index 4622244..6602d3b 100644 --- a/telegram-bot-api/Client.h +++ b/telegram-bot-api/Client.h @@ -561,6 +561,8 @@ class Client : public WebhookActor::Callback { td::string bio; + bool is_verified = false; + bool is_scam = false; bool have_access = false; bool can_join_groups = false; bool can_read_all_group_messages = false; @@ -597,6 +599,8 @@ class Client : public WebhookActor::Callback { bool is_supergroup = false; bool can_set_sticker_set = false; bool has_location = false; + bool is_verified = false; + bool is_scam = false; }; static void add_supergroup(std::unordered_map &supergroups, object_ptr &&supergroup);