Disable StoryLists for bots.

This commit is contained in:
levlam 2023-07-20 14:14:34 +03:00
parent 725d309eb1
commit 91accb8a78

View File

@ -922,7 +922,7 @@ StoryManager::StoryManager(Td *td, ActorShared<> parent) : td_(td), parent_(std:
story_can_get_viewers_timeout_.set_callback(on_story_can_get_viewers_timeout_callback); story_can_get_viewers_timeout_.set_callback(on_story_can_get_viewers_timeout_callback);
story_can_get_viewers_timeout_.set_callback_data(static_cast<void *>(this)); story_can_get_viewers_timeout_.set_callback_data(static_cast<void *>(this));
if (G()->use_message_database()) { if (G()->use_message_database() && td_->auth_manager_->is_authorized() && !td_->auth_manager_->is_bot()) {
for (auto story_list_id : {StoryListId::main(), StoryListId::archive()}) { for (auto story_list_id : {StoryListId::main(), StoryListId::archive()}) {
auto r_value = G()->td_db()->get_story_db_sync()->get_active_story_list_state(story_list_id); auto r_value = G()->td_db()->get_story_db_sync()->get_active_story_list_state(story_list_id);
if (r_value.is_ok() && !r_value.ok().empty()) { if (r_value.is_ok() && !r_value.ok().empty()) {
@ -951,6 +951,10 @@ StoryManager::~StoryManager() {
} }
void StoryManager::start_up() { void StoryManager::start_up() {
if (!td_->auth_manager_->is_authorized()) {
return;
}
try_synchronize_archive_all_stories(); try_synchronize_archive_all_stories();
load_expired_database_stories(); load_expired_database_stories();
@ -1568,10 +1572,12 @@ void StoryManager::save_story_list(StoryListId story_list_id, string state, int3
} }
StoryManager::StoryList &StoryManager::get_story_list(StoryListId story_list_id) { StoryManager::StoryList &StoryManager::get_story_list(StoryListId story_list_id) {
CHECK(!td_->auth_manager_->is_bot());
return story_lists_[story_list_id == StoryListId::archive()]; return story_lists_[story_list_id == StoryListId::archive()];
} }
const StoryManager::StoryList &StoryManager::get_story_list(StoryListId story_list_id) const { const StoryManager::StoryList &StoryManager::get_story_list(StoryListId story_list_id) const {
CHECK(!td_->auth_manager_->is_bot());
return story_lists_[story_list_id == StoryListId::archive()]; return story_lists_[story_list_id == StoryListId::archive()];
} }
@ -1582,11 +1588,14 @@ td_api::object_ptr<td_api::updateStoryListChatCount> StoryManager::get_update_st
} }
void StoryManager::update_story_list_sent_total_count(StoryListId story_list_id) { void StoryManager::update_story_list_sent_total_count(StoryListId story_list_id) {
if (td_->auth_manager_->is_bot()) {
return;
}
update_story_list_sent_total_count(story_list_id, get_story_list(story_list_id)); update_story_list_sent_total_count(story_list_id, get_story_list(story_list_id));
} }
void StoryManager::update_story_list_sent_total_count(StoryListId story_list_id, StoryList &story_list) { void StoryManager::update_story_list_sent_total_count(StoryListId story_list_id, StoryList &story_list) {
if (story_list.server_total_count_ == -1) { if (story_list.server_total_count_ == -1 || td_->auth_manager_->is_bot()) {
return; return;
} }
auto new_total_count = static_cast<int32>(story_list.ordered_stories_.size()); auto new_total_count = static_cast<int32>(story_list.ordered_stories_.size());
@ -2412,6 +2421,9 @@ StoryId StoryManager::on_get_story(DialogId owner_dialog_id,
LOG(ERROR) << "Receive a story in " << owner_dialog_id; LOG(ERROR) << "Receive a story in " << owner_dialog_id;
return {}; return {};
} }
if (td_->auth_manager_->is_bot()) {
return {};
}
CHECK(story_item_ptr != nullptr); CHECK(story_item_ptr != nullptr);
switch (story_item_ptr->get_id()) { switch (story_item_ptr->get_id()) {
case telegram_api::storyItemDeleted::ID: case telegram_api::storyItemDeleted::ID:
@ -2937,6 +2949,10 @@ void StoryManager::on_update_active_stories(DialogId owner_dialog_id, StoryId ma
bool StoryManager::update_active_stories_order(DialogId owner_dialog_id, ActiveStories *active_stories, bool StoryManager::update_active_stories_order(DialogId owner_dialog_id, ActiveStories *active_stories,
bool *need_save_to_database) { bool *need_save_to_database) {
if (td_->auth_manager_->is_bot()) {
return false;
}
CHECK(active_stories != nullptr); CHECK(active_stories != nullptr);
CHECK(!active_stories->story_ids_.empty()); CHECK(!active_stories->story_ids_.empty());
CHECK(owner_dialog_id.is_valid()); CHECK(owner_dialog_id.is_valid());
@ -3791,10 +3807,12 @@ void StoryManager::get_current_state(vector<td_api::object_ptr<td_api::Update>>
active_stories_.foreach([&](const DialogId &dialog_id, const unique_ptr<ActiveStories> &active_stories) { active_stories_.foreach([&](const DialogId &dialog_id, const unique_ptr<ActiveStories> &active_stories) {
updates.push_back(get_update_chat_active_stories(dialog_id, active_stories.get())); updates.push_back(get_update_chat_active_stories(dialog_id, active_stories.get()));
}); });
for (auto story_list_id : {StoryListId::main(), StoryListId::archive()}) { if (!td_->auth_manager_->is_bot()) {
const auto &story_list = get_story_list(story_list_id); for (auto story_list_id : {StoryListId::main(), StoryListId::archive()}) {
if (story_list.sent_total_count_ != -1) { const auto &story_list = get_story_list(story_list_id);
updates.push_back(get_update_story_list_chat_count_object(story_list_id, story_list)); if (story_list.sent_total_count_ != -1) {
updates.push_back(get_update_story_list_chat_count_object(story_list_id, story_list));
}
} }
} }
} }