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
This commit is contained in:
Alexandre Alapetite authored and GitHub committed 2022-06-25 11:15:51 +02:00
1 parent 07a52137a9
commit d785ddde2a
26 files changed
+143 -64

No files matched your search

+1
View File
@@ -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') ?
+2 -1
View File
@@ -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();
}
@@ -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'));