mirror of
https://github.com/FreshRSS/FreshRSS.git
synced 2026-05-18 05:14:34 -04:00
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:
committed by
GitHub
parent
07a52137a9
commit
d785ddde2a
@@ -649,15 +649,37 @@ class FreshRSS_Feed extends Minz_Model {
|
||||
$this->nbPendingNotRead += $n;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remember to call updateCachedValue($id_feed) or updateCachedValues() just after.
|
||||
* @return int|false the number of lines affected, or false if not applicable
|
||||
*/
|
||||
public function keepMaxUnread() {
|
||||
$keepMaxUnread = $this->attributes('keep_max_n_unread');
|
||||
if ($keepMaxUnread == false) {
|
||||
if ($keepMaxUnread === null) {
|
||||
$keepMaxUnread = FreshRSS_Context::$user_conf->mark_when['max_n_unread'];
|
||||
}
|
||||
if ($keepMaxUnread > 0 && $this->nbNotRead(false) + $this->nbPendingNotRead > $keepMaxUnread) {
|
||||
$feedDAO = FreshRSS_Factory::createFeedDao();
|
||||
$feedDAO->keepMaxUnread($this->id(), max(0, $keepMaxUnread - $this->nbPendingNotRead));
|
||||
return $feedDAO->keepMaxUnread($this->id(), max(0, $keepMaxUnread - $this->nbPendingNotRead));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies the *mark as read upon gone* policy, if enabled.
|
||||
* Remember to call updateCachedValue($id_feed) or updateCachedValues() just after.
|
||||
* @return int|false the number of lines affected, or false if not applicable
|
||||
*/
|
||||
public function markAsReadUponGone() {
|
||||
$readUponGone = $this->attributes('read_upon_gone');
|
||||
if ($readUponGone === null) {
|
||||
$readUponGone = FreshRSS_Context::$user_conf->mark_when['gone'];
|
||||
}
|
||||
if ($readUponGone) {
|
||||
$feedDAO = FreshRSS_Factory::createFeedDao();
|
||||
return $feedDAO->markAsReadUponGone($this->id());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user