update_daemon_common: purge inactive/not updated feeds
This commit is contained in:
parent
4deb422655
commit
2ea09bdef6
2 changed files with 30 additions and 0 deletions
|
@ -225,6 +225,8 @@
|
|||
if ($debug) {
|
||||
_debug("Purged feed $feed_id ($purge_interval): deleted $rows articles");
|
||||
}
|
||||
|
||||
return $rows;
|
||||
} // function purge_feed
|
||||
|
||||
function feed_purge_interval($link, $feed_id) {
|
||||
|
|
|
@ -158,6 +158,34 @@
|
|||
// Send feed digests by email if needed.
|
||||
send_headlines_digests($link, $debug);
|
||||
|
||||
// Purge feeds with stale data OR not being updated for a while to keep DB size down
|
||||
|
||||
if ($debug) _debug("Purging inactive feeds...");
|
||||
|
||||
if (DB_TYPE == "pgsql") {
|
||||
$interval_qpart = "NOW() - INTERVAL '1 month'";
|
||||
} else {
|
||||
$interval_qpart = "DATE_SUB(NOW(), INTERVAL 1 MONTH)";
|
||||
}
|
||||
|
||||
$result = db_query($link, "SELECT id, feed_url FROM ttrss_feeds WHERE
|
||||
(SELECT MAX(updated) FROM ttrss_entries, ttrss_user_entries WHERE
|
||||
ttrss_entries.id = ref_id AND
|
||||
ttrss_user_entries.feed_id = ttrss_feeds.id) < $interval_qpart OR
|
||||
last_updated < $interval_qpart");
|
||||
|
||||
$feeds_purged = 0;
|
||||
$articles_removed = 0;
|
||||
|
||||
while ($line = db_fetch_assoc($result)) {
|
||||
$articles_removed += purge_feed($link, $line["id"], 0, false);
|
||||
++$feeds_purged;
|
||||
}
|
||||
|
||||
if ($debug && $articles_removed > 0)
|
||||
_debug(sprintf("Purged %d feeds (%d articles).", $feeds_purged,
|
||||
$articles_removed));
|
||||
|
||||
} // function update_daemon_common
|
||||
|
||||
// ignore_daemon is not used
|
||||
|
|
Loading…
Reference in a new issue