From d785ddde2a00a9eadd38c45c528f2d2f6d1c356a Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Sat, 25 Jun 2022 11:15:51 +0200 Subject: New option to automatically mark as read gone articles (#4426) * New option to automatically mark as read gone articles Option to automatically and immediately mark as read entries / articles that are no longer provided in their upstream RSS / ATOM / XPath feed * Reduce SQL queries Optimisation: Perform cache update only once --- app/Controllers/configureController.php | 1 + app/Controllers/feedController.php | 3 ++- app/Controllers/subscriptionController.php | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) (limited to 'app/Controllers') diff --git a/app/Controllers/configureController.php b/app/Controllers/configureController.php index a263db99c..76df3580b 100755 --- a/app/Controllers/configureController.php +++ b/app/Controllers/configureController.php @@ -121,6 +121,7 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController { FreshRSS_Context::$user_conf->sort_order = Minz_Request::param('sort_order', 'DESC'); FreshRSS_Context::$user_conf->mark_when = array( 'article' => Minz_Request::param('mark_open_article', false), + 'gone' => Minz_Request::param('read_upon_gone', false), 'max_n_unread' => Minz_Request::paramBoolean('enable_keep_max_n_unread') ? Minz_Request::param('keep_max_n_unread', false) : false, 'reception' => Minz_Request::param('mark_upon_reception', false), 'same_title_in_feed' => Minz_Request::paramBoolean('enable_read_when_same_title_in_feed') ? diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index dd87650bc..fe5641642 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -503,10 +503,11 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController { } $feedDAO->updateLastUpdate($feed->id(), false, $mtime); + $needFeedCacheRefresh |= ($feed->keepMaxUnread() != false); + $needFeedCacheRefresh |= ($feed->markAsReadUponGone() != false); if ($needFeedCacheRefresh) { $feedDAO->updateCachedValues($feed->id()); } - $feed->keepMaxUnread(); if ($entryDAO->inTransaction()) { $entryDAO->commit(); } diff --git a/app/Controllers/subscriptionController.php b/app/Controllers/subscriptionController.php index 1994a2164..8c7cf7e4a 100644 --- a/app/Controllers/subscriptionController.php +++ b/app/Controllers/subscriptionController.php @@ -126,6 +126,7 @@ class FreshRSS_subscription_Controller extends FreshRSS_ActionController { $ttl = FreshRSS_Context::$user_conf->ttl_default; } + $feed->_attributes('read_upon_gone', Minz_Request::paramTernary('read_upon_gone')); $feed->_attributes('mark_updated_article_unread', Minz_Request::paramTernary('mark_updated_article_unread')); $feed->_attributes('read_upon_reception', Minz_Request::paramTernary('read_upon_reception')); $feed->_attributes('clear_cache', Minz_Request::paramTernary('clear_cache')); -- cgit v1.2.3