diff options
author | Andrew Dolgov <[email protected]> | 2005-11-18 13:21:16 +0100 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2005-11-18 13:21:16 +0100 |
commit | fefa6ca3afec86c405b8df13386ed0cc43668a0a (patch) | |
tree | e5f993f9c5b36932a8972a1deee65014655f3b14 | |
parent | 717f5e645b47a444bb0a2f524658e36ad1a4b74f (diff) |
globalPurge rpc call
-rw-r--r-- | backend.php | 10 | ||||
-rw-r--r-- | functions.php | 57 |
2 files changed, 56 insertions, 11 deletions
diff --git a/backend.php b/backend.php index f7318ff47..a2f6a0da7 100644 --- a/backend.php +++ b/backend.php @@ -398,6 +398,15 @@ print "<error code='$error_code'/>"; } + + if ($subop == "globalPurge") { + + print "<rpc-reply>"; + global_purge_old_posts($link, true); + print "</rpc-reply>"; + + } + } if ($op == "feeds") { @@ -2023,7 +2032,6 @@ } - db_close($link); ?> diff --git a/functions.php b/functions.php index 730b1fedd..355226e8d 100644 --- a/functions.php +++ b/functions.php @@ -9,6 +9,52 @@ define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); + function purge_feed($link, $feed_id, $purge_interval) { + + if (DB_TYPE == "pgsql") { + db_query($link, "DELETE FROM ttrss_entries WHERE + marked = false AND feed_id = '$feed_id' AND + date_entered < NOW() - INTERVAL '$purge_interval days'"); + } else { + db_query($link, "DELETE FROM ttrss_entries WHERE + marked = false AND feed_id = '$feed_id' AND + date_entered < DATE_SUB(NOW(), INTERVAL $purge_interval DAY)"); + } + } + + function global_purge_old_posts($link, $do_output = false) { + + $result = db_query($link, + "SELECT id,purge_interval,owner_uid FROM ttrss_feeds"); + + while ($line = db_fetch_assoc($result)) { + + $feed_id = $line["id"]; + $purge_interval = $line["purge_interval"]; + $owner_uid = $line["owner_uid"]; + + if ($purge_interval == 0) { + + $tmp_result = db_query($link, + "SELECT value FROM ttrss_user_prefs WHERE + pref_name = 'PURGE_OLD_DAYS' AND owner_uid = '$owner_uid'"); + + if (db_num_rows($tmp_result) != 0) { + $purge_interval = db_fetch_result($tmp_result, 0, "value"); + } + } + + if ($do_output) { + print "<feed id='$feed_id' p_intl='$purge_interval'/>"; + } + + if ($purge_interval > 0) { + purge_feed($link, $feed_id, $purge_interval); + } + } + + } + function purge_old_posts($link) { $user_id = $_SESSION["uid"]; @@ -24,16 +70,7 @@ if ($purge_interval == 0) $purge_interval = get_pref($link, 'PURGE_OLD_DAYS'); if ($purge_interval > 0) { - - if (DB_TYPE == "pgsql") { - db_query($link, "DELETE FROM ttrss_entries WHERE - marked = false AND feed_id = '$feed_id' AND - date_entered < NOW() - INTERVAL '$purge_interval days'"); - } else { - db_query($link, "DELETE FROM ttrss_entries WHERE - marked = false AND feed_id = '$feed_id' AND - date_entered < DATE_SUB(NOW(), INTERVAL $purge_interval DAY)"); - } + purge_feed($link, $feed_id, $purge_interval); } } } |