fix required chats not being loaded at first startup

This commit is contained in:
Slavasil 2024-11-21 21:00:02 +03:00
parent 5258ee0deb
commit 2537d3042d

View File

@ -19,21 +19,32 @@ RepostManager::RepostManager(uv_loop_t *eventLoop, tg::AuthCodeProvider tgCodePr
m_vk.set_service_api_key(config->vkServiceKey); m_vk.set_service_api_key(config->vkServiceKey);
} }
void RepostManager::load_more_telegram_chats() {
m_tg.send_query(td_api::make_object<td_api::loadChats>(td_api::make_object<td_api::chatListMain>(), 1000), [this](auto result){
if (result->get_id() == td_api::ok::ID) {
spdlog::info("loading more Telegram chats...");
load_more_telegram_chats();
} else if (result->get_id() == td_api::error::ID) {
spdlog::info("loaded all chats");
on_clients_ready();
}
});
}
void RepostManager::start() { void RepostManager::start() {
m_tg.add_update_handler([this](void*, td_api::Object &obj){ m_tg.add_update_handler([this](void*, td_api::Object &obj){
if (obj.get_id() == td_api::updateAuthorizationState::ID) { if (obj.get_id() == td_api::updateAuthorizationState::ID) {
auto &authState = (td_api::updateAuthorizationState&)obj; auto &authState = (td_api::updateAuthorizationState&)obj;
if (authState.authorization_state_->get_id() == td_api::authorizationStateReady::ID) { if (authState.authorization_state_->get_id() == td_api::authorizationStateReady::ID) {
//on_clients_ready();
spdlog::info("loading Telegram chats..."); spdlog::info("loading Telegram chats...");
m_tg.send_query(td_api::make_object<td_api::loadChats>(td_api::make_object<td_api::chatListMain>(), 1000), [this](auto result){ load_more_telegram_chats();
spdlog::debug("loadChats done");
on_clients_ready();
});
} }
} else if (obj.get_id() == td_api::updateNewChat::ID) { } else if (obj.get_id() == td_api::updateNewChat::ID) {
auto &update = (td_api::updateNewChat&)obj; auto &update = (td_api::updateNewChat&)obj;
//spdlog::debug("chat loaded: {}", update.chat_->title_); if (update.chat_->id_ == m_appConfig->tgDestinationId)
spdlog::info("destination chat loaded");
if (update.chat_->id_ == m_appConfig->tgSourceId)
spdlog::info("source chat loaded");
} }
}); });
spdlog::info("starting Telegram authentication"); spdlog::info("starting Telegram authentication");