diff --git a/td b/td index 6d50906..e597838 160000 --- a/td +++ b/td @@ -1 +1 @@ -Subproject commit 6d509061574d684117f74133056aa43df89022fc +Subproject commit e597838871547131ef92332fca601f5effba4e8a diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index 3f18ed4..b0d51e8 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -579,6 +579,9 @@ class Client::JsonEntity final : public td::Jsonable { case td_api::textEntityTypeExpandableBlockQuote::ID: object("type", "expandable_blockquote"); break; + case td_api::textEntityTypeDateTime::ID: + object("type", "date_time"); + break; default: UNREACHABLE(); } @@ -1189,12 +1192,13 @@ class Client::JsonChat final : public td::Jsonable { } object("permissions", JsonChatPermissions(permissions)); } - 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_change_info_ && permissions->can_invite_users_ && permissions->can_pin_messages_; + 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_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(); @@ -4410,6 +4414,10 @@ void Client::JsonMessage::store(td::JsonValueScope *scope) const { object("chat_owner_changed", JsonChatOwnerChanged(content, client_)); break; } + case td_api::messageChatHasProtectedContentToggled::ID: + break; + case td_api::messageChatHasProtectedContentDisableRequested::ID: + break; default: UNREACHABLE(); } @@ -4851,8 +4859,8 @@ class Client::JsonChatMember final : public td::Jsonable { switch (member_->status_->get_id()) { case td_api::chatMemberStatusCreator::ID: { auto creator = static_cast(member_->status_.get()); - if (!creator->custom_title_.empty()) { - object("custom_title", creator->custom_title_); + if (!member_->tag_.empty()) { + object("custom_title", member_->tag_); } object("is_anonymous", td::JsonBool(creator->is_anonymous_)); // object("is_member", creator->is_member_); only creator itself knows that he is a left creator @@ -4863,8 +4871,8 @@ class Client::JsonChatMember final : public td::Jsonable { object("can_be_edited", td::JsonBool(administrator->can_be_edited_)); json_store_administrator_rights(object, administrator->rights_.get(), chat_type_); object("can_manage_voice_chats", td::JsonBool(administrator->rights_->can_manage_video_chats_)); - if (!administrator->custom_title_.empty()) { - object("custom_title", administrator->custom_title_); + if (!member_->tag_.empty()) { + object("custom_title", member_->tag_); } break; } @@ -10500,7 +10508,7 @@ td::Result> Client::get_chat return make_object( can_manage_chat, can_change_info, can_post_messages, can_edit_messages, can_delete_messages, can_invite_users, can_restrict_members, can_pin_messages, can_manage_topics, can_promote_members, can_manage_video_chats, - can_post_stories, can_edit_stories, can_delete_stories, can_manage_direct_messages, is_anonymous); + can_post_stories, can_edit_stories, can_delete_stories, can_manage_direct_messages, false, is_anonymous); } td::Result> Client::get_chat_administrator_rights( @@ -11250,7 +11258,7 @@ td::Result> Client::get_chat_permiss 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, + 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); } @@ -14515,11 +14523,11 @@ td::Status Client::process_promote_chat_member_query(PromisedQueryPtr &query) { can_manage_topics || can_promote_members || can_manage_video_chats || can_post_stories || can_edit_stories || can_delete_stories || can_manage_direct_messages || is_anonymous; auto status = make_object( - td::string(), true, + true, make_object( can_manage_chat, can_change_info, can_post_messages, can_edit_messages, can_delete_messages, can_invite_users, can_restrict_members, can_pin_messages, can_manage_topics, can_promote_members, can_manage_video_chats, - can_post_stories, can_edit_stories, can_delete_stories, can_manage_direct_messages, is_anonymous)); + can_post_stories, can_edit_stories, can_delete_stories, can_manage_direct_messages, false, is_anonymous)); check_chat(chat_id, AccessRights::Write, std::move(query), [this, user_id, status = std::move(status), is_promotion](int64 chat_id, PromisedQueryPtr query) mutable { auto chat_info = get_chat(chat_id); @@ -14534,20 +14542,9 @@ td::Status Client::process_promote_chat_member_query(PromisedQueryPtr &query) { status->rights_->can_restrict_members_ = true; } - get_chat_member( - chat_id, user_id, std::move(query), - [this, chat_id, user_id, status = std::move(status)](object_ptr &&chat_member, - PromisedQueryPtr query) mutable { - if (chat_member->status_->get_id() == td_api::chatMemberStatusAdministrator::ID) { - auto administrator = - static_cast(chat_member->status_.get()); - status->custom_title_ = std::move(administrator->custom_title_); - } - - send_request(make_object( - chat_id, make_object(user_id), std::move(status)), - td::make_unique(std::move(query))); - }); + send_request(make_object( + chat_id, make_object(user_id), std::move(status)), + td::make_unique(std::move(query))); }); return td::Status::OK(); } @@ -14575,10 +14572,9 @@ td::Status Client::process_set_chat_administrator_custom_title_query(PromisedQue return fail_query(400, "Bad Request: not enough rights to change custom title of the user", std::move(query)); } - administrator->custom_title_ = query->arg("custom_title").str(); - send_request(make_object( - chat_id, make_object(user_id), std::move(administrator)), + auto custom_title = query->arg("custom_title").str(); + send_request(make_object(chat_id, user_id, custom_title), td::make_unique(std::move(query))); }); }); @@ -16734,6 +16730,8 @@ bool Client::need_skip_update_message(int64 chat_id, const object_ptr(message->content_.get()) ->offer_message_id_; + case td_api::messageChatHasProtectedContentToggled::ID: + return static_cast(message->content_.get()) + ->request_message_id_; default: return static_cast(0); }