From 1d8004d27946598644d9a7135f8374df02c683d7 Mon Sep 17 00:00:00 2001 From: levlam Date: Tue, 7 Apr 2020 03:23:53 +0300 Subject: [PATCH] Add force to get_user_full. GitOrigin-RevId: 182ab8a99142a12c51662ee0928480f6a3e03f91 --- td/telegram/ContactsManager.cpp | 4 ++-- td/telegram/ContactsManager.h | 2 +- td/telegram/MessagesManager.cpp | 2 +- td/telegram/Td.cpp | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/td/telegram/ContactsManager.cpp b/td/telegram/ContactsManager.cpp index 6ff68f031..eedc5c452 100644 --- a/td/telegram/ContactsManager.cpp +++ b/td/telegram/ContactsManager.cpp @@ -11576,7 +11576,7 @@ void ContactsManager::reload_user(UserId user_id, Promise &&promise) { td_->create_handler(std::move(promise))->send(std::move(users)); } -bool ContactsManager::get_user_full(UserId user_id, Promise &&promise) { +bool ContactsManager::get_user_full(UserId user_id, bool force, Promise &&promise) { auto u = get_user(user_id); if (u == nullptr) { promise.set_error(Status::Error(6, "User not found")); @@ -11597,7 +11597,7 @@ bool ContactsManager::get_user_full(UserId user_id, Promise &&promise) { if (user_full->is_expired() || is_bot_info_expired(user_id, u->bot_info_version)) { auto input_user = get_input_user(user_id); CHECK(input_user != nullptr); - if (td_->auth_manager_->is_bot()) { + if (td_->auth_manager_->is_bot() && !force) { send_get_user_full_query(user_id, std::move(input_user), std::move(promise), "get expired user_full"); return false; } else { diff --git a/td/telegram/ContactsManager.h b/td/telegram/ContactsManager.h index 9c42ac57f..f16920f76 100644 --- a/td/telegram/ContactsManager.h +++ b/td/telegram/ContactsManager.h @@ -428,7 +428,7 @@ class ContactsManager : public Actor { UserId get_me(Promise &&promise); bool get_user(UserId user_id, int left_tries, Promise &&promise); void reload_user(UserId user_id, Promise &&promise); - bool get_user_full(UserId user_id, Promise &&promise); + bool get_user_full(UserId user_id, bool force, Promise &&promise); void reload_user_full(UserId user_id); std::pair> get_user_profile_photos(UserId user_id, int32 offset, int32 limit, diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 30796647f..c5aaeaacc 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -13764,7 +13764,7 @@ MessageId MessagesManager::get_replied_message(DialogId dialog_id, MessageId mes void MessagesManager::get_dialog_info_full(DialogId dialog_id, Promise &&promise) { switch (dialog_id.get_type()) { case DialogType::User: - td_->contacts_manager_->get_user_full(dialog_id.get_user_id(), std::move(promise)); + td_->contacts_manager_->get_user_full(dialog_id.get_user_id(), false, std::move(promise)); return; case DialogType::Chat: td_->contacts_manager_->get_chat_full(dialog_id.get_chat_id(), false, std::move(promise)); diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index 31de97633..9d646f9f6 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -678,7 +678,7 @@ class GetUserFullInfoRequest : public RequestActor<> { UserId user_id_; void do_run(Promise &&promise) override { - td->contacts_manager_->get_user_full(user_id_, std::move(promise)); + td->contacts_manager_->get_user_full(user_id_, get_tries() < 2, std::move(promise)); } void do_send_result() override {