fix behavior when a post is deleted while offline

This commit is contained in:
Slavasil 2025-01-05 03:06:40 +03:00
parent 1c01f21fed
commit 3333013fd1

View File

@ -183,8 +183,10 @@ void NewPostFetcher::continue_fetch() {
for (auto &p : posts) {
spdlog::debug("[tg:{}] got post dated {}", i, p->date_);
}
state.offset = posts[posts.size() - 1]->id_;
spdlog::info("[tg:{}] setting from to id {}", i, posts[posts.size() - 1]->id_);
if (posts.size() > 0) {
state.offset = posts[posts.size() - 1]->id_;
spdlog::info("[tg:{}] setting from to id {}", i, posts[posts.size() - 1]->id_);
}
check_tg_posts(i, std::move(posts));
});
state.count = state.count * 3 / 2;
@ -291,22 +293,25 @@ void NewPostFetcher::check_vk_posts(int index, std::vector<vk::Post> posts) {
long oldLastPostDate = appState.lastLoadedPostDate;
if (posts.size() > 0) {
spdlog::info("[vk:{}] last post date is now {}", index, posts[0].date);
}
std::vector<AbstractPost> aposts = mgr->to_abstract_posts(posts, state.sourceIndex);
spdlog::info("[vk:{}] looking for date {}, have {} - {}", index, oldLastPostDate, aposts[0].date, aposts[aposts.size() - 1].date);
if (mgr->drop_posts_older_than(aposts, oldLastPostDate)) {
spdlog::info("[vk:{}] found last remembered post", index);
std::vector<AbstractPost> aposts = mgr->to_abstract_posts(posts, state.sourceIndex);
spdlog::info("[vk:{}] looking for date {}, have {} - {}", index, oldLastPostDate, aposts[0].date, aposts[aposts.size() - 1].date);
if (mgr->drop_posts_older_than(aposts, oldLastPostDate)) {
spdlog::info("[vk:{}] found last remembered post", index);
state.ready = true;
}
state.posts.reserve(state.posts.size() + aposts.size());
for (auto i = aposts.begin(), e = aposts.end(); i != e; ++i) {
state.posts.emplace_back(std::move(*i));
}
state.needRequest = true;
if (state.ready && !state.posts.empty()) {
spdlog::debug("[vk:{}] last loaded post date is now {}", index, state.posts[0].date);
appState.lastLoadedPostDate = state.posts[0].date;
}
} else {
state.ready = true;
}
state.posts.reserve(state.posts.size() + aposts.size());
for (auto i = aposts.begin(), e = aposts.end(); i != e; ++i) {
state.posts.emplace_back(std::move(*i));
}
state.needRequest = true;
if (state.ready && !state.posts.empty()) {
spdlog::debug("[vk:{}] last loaded post date is now {}", index, state.posts[0].date);
appState.lastLoadedPostDate = state.posts[0].date;
}
continue_fetch();
}
@ -317,21 +322,24 @@ void NewPostFetcher::check_tg_posts(int index, std::vector<td::tl::unique_ptr<td
long oldLastPostDate = appState.lastLoadedPostDate;
if (posts.size() > 0) {
spdlog::info("[tg:{}] last post date is now {}", index, posts[0]->date_);
}
std::vector<AbstractPost> aposts = mgr->to_abstract_posts(posts, state.sourceIndex);
if (mgr->drop_posts_older_than(aposts, oldLastPostDate)) {
spdlog::info("[tg:{}] found last remembered post", index);
std::vector<AbstractPost> aposts = mgr->to_abstract_posts(posts, state.sourceIndex);
if (mgr->drop_posts_older_than(aposts, oldLastPostDate)) {
spdlog::info("[tg:{}] found last remembered post", index);
state.ready = true;
}
state.posts.reserve(state.posts.size() + aposts.size());
for (auto i = aposts.begin(), e = aposts.end(); i != e; ++i) {
state.posts.emplace_back(std::move(*i));
}
state.needRequest = true;
if (state.ready && !state.posts.empty()) {
spdlog::debug("[tg:{}] last loaded post date is now {}", index, state.posts[0].date);
appState.lastLoadedPostDate = state.posts[0].id;
}
} else {
state.ready = true;
}
state.posts.reserve(state.posts.size() + aposts.size());
for (auto i = aposts.begin(), e = aposts.end(); i != e; ++i) {
state.posts.emplace_back(std::move(*i));
}
state.needRequest = true;
if (state.ready && !state.posts.empty()) {
spdlog::debug("[tg:{}] last loaded post date is now {}", index, state.posts[0].date);
appState.lastLoadedPostDate = state.posts[0].id;
}
continue_fetch();
}