From 73d28d23e2c554b26a14e055e1dd919d1c7304ec Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Fri, 28 Jul 2023 08:36:06 +0200 Subject: [PATCH] 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 --- src/librssguard/core/feeddownloader.cpp | 22 +++++++++++++++++++ .../services/standard/standardserviceroot.cpp | 21 ------------------ 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/librssguard/core/feeddownloader.cpp b/src/librssguard/core/feeddownloader.cpp index 181d49fcc..caefdef2e 100644 --- a/src/librssguard/core/feeddownloader.cpp +++ b/src/librssguard/core/feeddownloader.cpp @@ -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(); diff --git a/src/librssguard/services/standard/standardserviceroot.cpp b/src/librssguard/services/standard/standardserviceroot.cpp index 73f7b0312..bb1177070 100644 --- a/src/librssguard/services/standard/standardserviceroot.cpp +++ b/src/librssguard/services/standard/standardserviceroot.cpp @@ -256,27 +256,6 @@ QList 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; }