make old article dropping work across all plugins, also syncable plugins would have to take this into account for more efficient way so that those article sare even not downloaded needlessly

This commit is contained in:
Martin Rotter 2023-07-28 08:36:06 +02:00
parent 166ffccf82
commit 73d28d23e2
2 changed files with 22 additions and 21 deletions

View File

@ -238,6 +238,28 @@ void FeedDownloader::updateOneFeed(ServiceRoot* acc,
msg.sanitize(feed, fix_future_datetimes);
}
if (!feed->addAnyDatetimeArticles()) {
QDateTime dt_to_avoid;
if (feed->datetimeToAvoid().isValid()) {
dt_to_avoid = feed->datetimeToAvoid();
}
else if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::AvoidOldArticles)).toBool()) {
dt_to_avoid = qApp->settings()->value(GROUP(Messages), SETTING(Messages::DateTimeToAvoidArticle)).toDateTime();
}
if (dt_to_avoid.isValid()) {
for (int i = 0; i < msgs.size(); i++) {
const auto& mss = msgs.at(i);
if (mss.m_createdFromFeed && mss.m_created < dt_to_avoid) {
qDebugNN << LOGSEC_CORE << "Removing message" << QUOTE_W_SPACE(mss.m_title) << "for being too old.";
msgs.removeAt(i--);
}
}
}
}
if (!feed->messageFilters().isEmpty()) {
tmr.restart();

View File

@ -256,27 +256,6 @@ QList<Message> StandardServiceRoot::obtainNewMessages(Feed* feed,
mess.m_feedId = feed->customId();
}
if (!feed->addAnyDatetimeArticles()) {
QDateTime dt_to_avoid;
if (feed->datetimeToAvoid().isValid()) {
dt_to_avoid = feed->datetimeToAvoid();
}
else if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::AvoidOldArticles)).toBool()) {
dt_to_avoid = qApp->settings()->value(GROUP(Messages), SETTING(Messages::DateTimeToAvoidArticle)).toDateTime();
}
else {
return messages;
}
for (int i = 0; i < messages.size(); i++) {
if (messages.at(i).m_createdFromFeed && messages.at(i).m_created < dt_to_avoid) {
qDebugNN << LOGSEC_CORE << "Removing message" << QUOTE_W_SPACE(messages.at(i).m_title) << "for being too old.";
messages.removeAt(i--);
}
}
}
return messages;
}