diff options
author | Andrew Dolgov <[email protected]> | 2005-11-16 10:37:50 +0100 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2005-11-16 10:37:50 +0100 |
commit | 5d73494a182fb58518e6e64f7877c3fe7d71eaf8 (patch) | |
tree | 8a72b2a6ce83daaffc6189a2bfe490d173509e3c | |
parent | 430bf183c5d633b29065333c0f878c6cf67d4547 (diff) |
per-feed purge intervals
-rw-r--r-- | backend.php | 34 | ||||
-rw-r--r-- | functions.php | 31 | ||||
-rw-r--r-- | prefs.js | 7 | ||||
-rw-r--r-- | tt-rss.css | 3 |
4 files changed, 63 insertions, 12 deletions
diff --git a/backend.php b/backend.php index 3a1550908..7781828a7 100644 --- a/backend.php +++ b/backend.php @@ -816,14 +816,20 @@ $feed_title = db_escape_string($_GET["t"]); $feed_link = db_escape_string($_GET["l"]); $upd_intl = db_escape_string($_GET["ui"]); + $purge_intl = db_escape_string($_GET["pi"]); $feed_id = $_GET["id"]; if (strtoupper($upd_intl) == "DEFAULT") $upd_intl = 0; + if (strtoupper($purge_intl) == "DEFAULT") + $purge_intl = 0; + $result = db_query($link, "UPDATE ttrss_feeds SET title = '$feed_title', feed_url = '$feed_link', - update_interval = '$upd_intl' WHERE id = '$feed_id'"); + update_interval = '$upd_intl', + purge_interval = '$purge_intl' + WHERE id = '$feed_id'"); } @@ -892,14 +898,16 @@ $result = db_query($link, "SELECT id,title,feed_url,substring(last_updated,1,16) as last_updated, - update_interval + update_interval,purge_interval FROM ttrss_feeds ORDER by title"); print "<p><table width=\"100%\" class=\"prefFeedList\" id=\"prefFeedList\">"; print "<tr class=\"title\"> - <td> </td><td>Select</td><td width=\"40%\">Title</td> - <td width=\"30%\">Link</td><td width=\"10%\">Update Interval</td> + <td> </td><td>Select</td><td width=\"30%\">Title</td> + <td width=\"30%\">Link</td> + <td width=\"10%\">Update Interval</td> + <td width=\"10%\">Purge Days</td> <td>Last updated</td></tr>"; $lnum = 0; @@ -937,15 +945,21 @@ type=\"checkbox\" id=\"FRCHK-".$line["id"]."\"></td>"; print "<td><a href=\"javascript:editFeed($feed_id);\">" . - $edit_title . "</td>"; + $edit_title . "</a></td>"; print "<td><a href=\"javascript:editFeed($feed_id);\">" . - $edit_link . "</td>"; + $edit_link . "</a></td>"; if ($line["update_interval"] == "0") $line["update_interval"] = "Default"; - print "<td>" . $line["update_interval"] . "</td>"; + print "<td><a href=\"javascript:editFeed($feed_id);\">" . + $line["update_interval"] . "</a></td>"; + if ($line["purge_interval"] == "0") + $line["purge_interval"] = "Default"; + + print "<td><a href=\"javascript:editFeed($feed_id);\">" . + $line["purge_interval"] . "</a></td>"; } else if ($feed_id != $edit_feed_id) { @@ -960,6 +974,11 @@ print "<td>" . $line["update_interval"] . "</td>"; + if ($line["purge_interval"] == "0") + $line["purge_interval"] = "Default"; + + print "<td>" . $line["purge_interval"] . "</td>"; + } else { print "<td><input disabled=\"true\" type=\"checkbox\"></td>"; @@ -967,6 +986,7 @@ print "<td><input id=\"iedit_title\" value=\"$edit_title\"></td>"; print "<td><input id=\"iedit_link\" value=\"$edit_link\"></td>"; print "<td><input id=\"iedit_updintl\" value=\"".$line["update_interval"]."\"></td>"; + print "<td><input id=\"iedit_purgintl\" value=\"".$line["purge_interval"]."\"></td>"; } diff --git a/functions.php b/functions.php index 28cbb1cdd..4ab9ac7df 100644 --- a/functions.php +++ b/functions.php @@ -4,18 +4,43 @@ define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); function purge_old_posts($link) { + + $result = db_query($link, "SELECT id,purge_interval FROM ttrss_feeds"); + + while ($line = db_fetch_assoc($result)) { + + $feed_id = $line["id"]; + $purge_interval = $line["purge_interval"]; + + if ($purge_interval == 0) $purge_interval = 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 AND feed_id = '$feed_id' AND + date_entered < DATE_SUB(NOW(), INTERVAL $purge_interval DAY)"); + } + } + } + + /* if (PURGE_OLD_DAYS > 0) { if (DB_TYPE == "pgsql") { $result = db_query($link, "DELETE FROM ttrss_entries WHERE - marked = false AND + marked = false AND feed_id = '$feed_id' AND date_entered < NOW() - INTERVAL '".PURGE_OLD_DAYS." days'"); } else { $result = db_query($link, "DELETE FROM ttrss_entries WHERE - marked = false AND + marked = false AND AND feed_id = '$feed_id' AND date_entered < DATE_SUB(NOW(), INTERVAL ".PURGE_OLD_DAYS." DAY)"); } - } + } */ } function update_all_feeds($link, $fetch) { @@ -462,6 +462,7 @@ function feedEditSave() { var link = document.getElementById("iedit_link").value; var title = document.getElementById("iedit_title").value; var upd_intl = document.getElementById("iedit_updintl").value; + var purge_intl = document.getElementById("iedit_purgintl").value; // notify("Saving feed."); @@ -470,6 +471,10 @@ function feedEditSave() { return; } + if (purge_intl < 0) { + notify("Purge days must be >= 0 (0 = default)"); + return; + } if (link.length == 0) { notify("Feed link cannot be blank."); @@ -485,7 +490,7 @@ function feedEditSave() { xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=editSave&id=" + feed + "&l=" + param_escape(link) + "&t=" + param_escape(title) + - "&ui=" + param_escape(upd_intl), true); + "&ui=" + param_escape(upd_intl) + "&pi=" + param_escape(purge_intl), true); xmlhttp.onreadystatechange=feedlist_callback; xmlhttp.send(null); diff --git a/tt-rss.css b/tt-rss.css index ed5796eb5..933575aba 100644 --- a/tt-rss.css +++ b/tt-rss.css @@ -240,7 +240,8 @@ a:hover { opacity : 0.8; } -#iedit_title, #iedit_link, #iedit_regexp, #iedit_descr, #iedit_expr, #iedit_updintl { +#iedit_title, #iedit_link, #iedit_regexp, #iedit_descr, #iedit_expr, #iedit_updintl, +#iedit_purgintl { width : 100%; padding-left : 2px; } |