fix behavior when a post is deleted while offline
This commit is contained in:
parent
1c01f21fed
commit
3333013fd1
66
manager.cpp
66
manager.cpp
@ -183,8 +183,10 @@ void NewPostFetcher::continue_fetch() {
|
|||||||
for (auto &p : posts) {
|
for (auto &p : posts) {
|
||||||
spdlog::debug("[tg:{}] got post dated {}", i, p->date_);
|
spdlog::debug("[tg:{}] got post dated {}", i, p->date_);
|
||||||
}
|
}
|
||||||
state.offset = posts[posts.size() - 1]->id_;
|
if (posts.size() > 0) {
|
||||||
spdlog::info("[tg:{}] setting from to id {}", i, posts[posts.size() - 1]->id_);
|
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));
|
check_tg_posts(i, std::move(posts));
|
||||||
});
|
});
|
||||||
state.count = state.count * 3 / 2;
|
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;
|
long oldLastPostDate = appState.lastLoadedPostDate;
|
||||||
if (posts.size() > 0) {
|
if (posts.size() > 0) {
|
||||||
spdlog::info("[vk:{}] last post date is now {}", index, posts[0].date);
|
spdlog::info("[vk:{}] last post date is now {}", index, posts[0].date);
|
||||||
}
|
std::vector<AbstractPost> aposts = mgr->to_abstract_posts(posts, state.sourceIndex);
|
||||||
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);
|
||||||
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)) {
|
||||||
if (mgr->drop_posts_older_than(aposts, oldLastPostDate)) {
|
spdlog::info("[vk:{}] found last remembered post", index);
|
||||||
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.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();
|
continue_fetch();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -317,21 +322,24 @@ void NewPostFetcher::check_tg_posts(int index, std::vector<td::tl::unique_ptr<td
|
|||||||
long oldLastPostDate = appState.lastLoadedPostDate;
|
long oldLastPostDate = appState.lastLoadedPostDate;
|
||||||
if (posts.size() > 0) {
|
if (posts.size() > 0) {
|
||||||
spdlog::info("[tg:{}] last post date is now {}", index, posts[0]->date_);
|
spdlog::info("[tg:{}] last post date is now {}", index, posts[0]->date_);
|
||||||
}
|
std::vector<AbstractPost> aposts = mgr->to_abstract_posts(posts, state.sourceIndex);
|
||||||
std::vector<AbstractPost> aposts = mgr->to_abstract_posts(posts, state.sourceIndex);
|
if (mgr->drop_posts_older_than(aposts, oldLastPostDate)) {
|
||||||
if (mgr->drop_posts_older_than(aposts, oldLastPostDate)) {
|
spdlog::info("[tg:{}] found last remembered post", index);
|
||||||
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.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();
|
continue_fetch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user