Preload top forum topic message.

main
levlam 8 months ago
parent 1b86e73c10
commit 5d7d137294

@ -6254,6 +6254,18 @@ class Client::TdOnCheckForumTopicCallback final : public TdQueryCallback {
auto forum_topic = move_object_as<td_api::forumTopic>(result);
CHECK(forum_topic->info_->chat_id_ == chat_id_);
CHECK(forum_topic->info_->forum_topic_id_ == forum_topic_id_);
auto message_id = as_tdlib_message_id(forum_topic_id_);
if (client_->get_chat_type(chat_id_) == ChatType::Supergroup &&
client_->get_message(chat_id_, message_id, false) == nullptr) {
auto on_check_message = [forum_topic_id = forum_topic_id_, on_success = std::move(on_success_)](
int64 chat_id, int64 message_id, PromisedQueryPtr query) mutable {
on_success(chat_id, make_object<td_api::messageTopicForum>(forum_topic_id), std::move(query));
};
return client_->send_request(make_object<td_api::getMessage>(chat_id_, message_id),
td::make_unique<TdOnCheckMessageCallback<decltype(on_check_message)>>(
client_, chat_id_, message_id, true, "top forum topic message",
std::move(query_), std::move(on_check_message)));
}
on_success_(chat_id_, make_object<td_api::messageTopicForum>(forum_topic_id_), std::move(query_));
}

@ -1214,8 +1214,11 @@ class Client final : public WebhookActor::Callback {
};
MessageFullId add_message(object_ptr<td_api::message> &&message, bool force_update_content = false);
void init_message(MessageInfo *message_info, object_ptr<td_api::message> &&message, bool force_update_content);
const MessageInfo *get_message(int64 chat_id, int64 message_id, bool force_cache) const;
MessageInfo *get_message_editable(int64 chat_id, int64 message_id);
td::unique_ptr<MessageInfo> create_business_message(td::string business_connection_id,

Loading…
Cancel
Save