summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2006-03-27 04:21:08 +0100
committerAndrew Dolgov <[email protected]>2006-03-27 04:21:08 +0100
commit23aa0d167c86572dff9a457bedf3df071612056b (patch)
tree5d32bfd490b6f91472b2034050e792553d65f087
parent3c81ae1aecd6b57847065bd741fa9cd3613dc983 (diff)
move out common subops from viewfeed handler
-rw-r--r--backend.php154
-rw-r--r--functions.php142
2 files changed, 144 insertions, 152 deletions
diff --git a/backend.php b/backend.php
index 92f873914..e28ccdc57 100644
--- a/backend.php
+++ b/backend.php
@@ -1159,161 +1159,11 @@
</script>";
if ($subop == "ForceUpdate" && sprintf("%d", $feed) > 0) {
-
-/* if (ENABLE_UPDATE_DAEMON) {
-
- if ($cid == 0) {
-
- db_query($link, "INSERT INTO ttrss_scheduled_updates
- (owner_uid, feed_id, entered) VALUES
- (".$_SESSION["uid"].", '$feed', NOW())");
- }
-
- } else {
- // fixme update_rss_feed...
- } */
-
- if ($cat_view) {
-
- if ($feed > 0) {
- $cat_qpart = "cat_id = '$feed'";
- } else {
- $cat_qpart = "cat_id IS NULL";
- }
-
- $tmp_result = db_query($link, "SELECT feed_url FROM ttrss_feeds
- WHERE $cat_qpart AND owner_uid = " . $_SESSION["uid"]);
-
- while ($tmp_line = db_fetch_assoc($tmp_result)) {
- $feed_url = $tmp_line["feed_url"];
- update_rss_feed($link, $feed_url, $feed, ENABLE_UPDATE_DAEMON);
- }
-
- } else {
- $tmp_result = db_query($link, "SELECT feed_url FROM ttrss_feeds
- WHERE id = '$feed'");
- $feed_url = db_fetch_result($tmp_result, 0, "feed_url");
- update_rss_feed($link, $feed_url, $feed, ENABLE_UPDATE_DAEMON);
- }
+ update_generic_feed($link, $feed, $cat_view);
}
if ($subop == "MarkAllRead") {
-
- if (preg_match("/^[0-9][0-9]*$/", $feed) != false && $feed >= 0) {
-
- if ($cat_view) {
-
- if ($feed > 0) {
- $cat_qpart = "cat_id = '$feed'";
- } else {
- $cat_qpart = "cat_id IS NULL";
- }
-
- $tmp_result = db_query($link, "SELECT id
- FROM ttrss_feeds WHERE $cat_qpart AND owner_uid = " .
- $_SESSION["uid"]);
-
- while ($tmp_line = db_fetch_assoc($tmp_result)) {
-
- $tmp_feed = $tmp_line["id"];
-
- db_query($link, "UPDATE ttrss_user_entries
- SET unread = false,last_read = NOW()
- WHERE feed_id = '$tmp_feed' AND owner_uid = " . $_SESSION["uid"]);
- }
-
- } else if ($feed > 0) {
-
- $tmp_result = db_query($link, "SELECT id
- FROM ttrss_feeds WHERE parent_feed = '$feed'
- ORDER BY cat_id,title");
-
- $parent_ids = array();
-
- if (db_num_rows($tmp_result) > 0) {
- while ($p = db_fetch_assoc($tmp_result)) {
- array_push($parent_ids, "feed_id = " . $p["id"]);
- }
-
- $children_qpart = implode(" OR ", $parent_ids);
-
- db_query($link, "UPDATE ttrss_user_entries
- SET unread = false,last_read = NOW()
- WHERE (feed_id = '$feed' OR $children_qpart)
- AND owner_uid = " . $_SESSION["uid"]);
-
- } else {
- db_query($link, "UPDATE ttrss_user_entries
- SET unread = false,last_read = NOW()
- WHERE feed_id = '$feed' AND owner_uid = " . $_SESSION["uid"]);
- }
-
- } else if ($feed < 0 && $feed > -10) { // special, like starred
-
- if ($feed == -1) {
- db_query($link, "UPDATE ttrss_user_entries
- SET unread = false,last_read = NOW()
- WHERE marked = true AND owner_uid = ".$_SESSION["uid"]);
- }
-
- } else if ($feed < -10) { // label
-
- // TODO make this more efficient
-
- $label_id = -$feed - 11;
-
- $tmp_result = db_query($link, "SELECT sql_exp FROM ttrss_labels
- WHERE id = '$label_id'");
-
- if ($tmp_result) {
- $sql_exp = db_fetch_result($tmp_result, 0, "sql_exp");
-
- db_query($link, "BEGIN");
-
- $tmp2_result = db_query($link,
- "SELECT
- int_id
- FROM
- ttrss_user_entries,ttrss_entries
- WHERE
- ref_id = id AND
- $sql_exp AND
- owner_uid = " . $_SESSION["uid"]);
-
- while ($tmp_line = db_fetch_assoc($tmp2_result)) {
- db_query($link, "UPDATE
- ttrss_user_entries
- SET
- unread = false, last_read = NOW()
- WHERE
- int_id = " . $tmp_line["int_id"]);
- }
-
- db_query($link, "COMMIT");
-
-/* db_query($link, "UPDATE ttrss_user_entries,ttrss_entries
- SET unread = false,last_read = NOW()
- WHERE $sql_exp
- AND ref_id = id
- AND owner_uid = ".$_SESSION["uid"]); */
- }
- }
- } else { // tag
- db_query($link, "BEGIN");
-
- $tag_name = db_escape_string($feed);
-
- $result = db_query($link, "SELECT post_int_id FROM ttrss_tags
- WHERE tag_name = '$tag_name' AND owner_uid = " . $_SESSION["uid"]);
-
- while ($line = db_fetch_assoc($result)) {
- db_query($link, "UPDATE ttrss_user_entries SET
- unread = false, last_read = NOW()
- WHERE int_id = " . $line["post_int_id"]);
- }
- db_query($link, "COMMIT");
- }
-
+ catchup_feed($link, $feed, $cat_view);
}
$search = db_escape_string($_GET["search"]);
diff --git a/functions.php b/functions.php
index 68c8eac76..77414b13c 100644
--- a/functions.php
+++ b/functions.php
@@ -1055,4 +1055,146 @@
}
}
+ function catchup_feed($link, $feed, $cat_view) {
+ if (preg_match("/^[0-9][0-9]*$/", $feed) != false && $feed >= 0) {
+
+ if ($cat_view) {
+
+ if ($feed > 0) {
+ $cat_qpart = "cat_id = '$feed'";
+ } else {
+ $cat_qpart = "cat_id IS NULL";
+ }
+
+ $tmp_result = db_query($link, "SELECT id
+ FROM ttrss_feeds WHERE $cat_qpart AND owner_uid = " .
+ $_SESSION["uid"]);
+
+ while ($tmp_line = db_fetch_assoc($tmp_result)) {
+
+ $tmp_feed = $tmp_line["id"];
+
+ db_query($link, "UPDATE ttrss_user_entries
+ SET unread = false,last_read = NOW()
+ WHERE feed_id = '$tmp_feed' AND owner_uid = " . $_SESSION["uid"]);
+ }
+
+ } else if ($feed > 0) {
+
+ $tmp_result = db_query($link, "SELECT id
+ FROM ttrss_feeds WHERE parent_feed = '$feed'
+ ORDER BY cat_id,title");
+
+ $parent_ids = array();
+
+ if (db_num_rows($tmp_result) > 0) {
+ while ($p = db_fetch_assoc($tmp_result)) {
+ array_push($parent_ids, "feed_id = " . $p["id"]);
+ }
+
+ $children_qpart = implode(" OR ", $parent_ids);
+
+ db_query($link, "UPDATE ttrss_user_entries
+ SET unread = false,last_read = NOW()
+ WHERE (feed_id = '$feed' OR $children_qpart)
+ AND owner_uid = " . $_SESSION["uid"]);
+
+ } else {
+ db_query($link, "UPDATE ttrss_user_entries
+ SET unread = false,last_read = NOW()
+ WHERE feed_id = '$feed' AND owner_uid = " . $_SESSION["uid"]);
+ }
+
+ } else if ($feed < 0 && $feed > -10) { // special, like starred
+
+ if ($feed == -1) {
+ db_query($link, "UPDATE ttrss_user_entries
+ SET unread = false,last_read = NOW()
+ WHERE marked = true AND owner_uid = ".$_SESSION["uid"]);
+ }
+
+ } else if ($feed < -10) { // label
+
+ // TODO make this more efficient
+
+ $label_id = -$feed - 11;
+
+ $tmp_result = db_query($link, "SELECT sql_exp FROM ttrss_labels
+ WHERE id = '$label_id'");
+
+ if ($tmp_result) {
+ $sql_exp = db_fetch_result($tmp_result, 0, "sql_exp");
+
+ db_query($link, "BEGIN");
+
+ $tmp2_result = db_query($link,
+ "SELECT
+ int_id
+ FROM
+ ttrss_user_entries,ttrss_entries
+ WHERE
+ ref_id = id AND
+ $sql_exp AND
+ owner_uid = " . $_SESSION["uid"]);
+
+ while ($tmp_line = db_fetch_assoc($tmp2_result)) {
+ db_query($link, "UPDATE
+ ttrss_user_entries
+ SET
+ unread = false, last_read = NOW()
+ WHERE
+ int_id = " . $tmp_line["int_id"]);
+ }
+
+ db_query($link, "COMMIT");
+
+/* db_query($link, "UPDATE ttrss_user_entries,ttrss_entries
+ SET unread = false,last_read = NOW()
+ WHERE $sql_exp
+ AND ref_id = id
+ AND owner_uid = ".$_SESSION["uid"]); */
+ }
+ }
+ } else { // tag
+ db_query($link, "BEGIN");
+
+ $tag_name = db_escape_string($feed);
+
+ $result = db_query($link, "SELECT post_int_id FROM ttrss_tags
+ WHERE tag_name = '$tag_name' AND owner_uid = " . $_SESSION["uid"]);
+
+ while ($line = db_fetch_assoc($result)) {
+ db_query($link, "UPDATE ttrss_user_entries SET
+ unread = false, last_read = NOW()
+ WHERE int_id = " . $line["post_int_id"]);
+ }
+ db_query($link, "COMMIT");
+ }
+ }
+
+ function update_generic_feed($link, $feed, $cat_view) {
+ if ($cat_view) {
+
+ if ($feed > 0) {
+ $cat_qpart = "cat_id = '$feed'";
+ } else {
+ $cat_qpart = "cat_id IS NULL";
+ }
+
+ $tmp_result = db_query($link, "SELECT feed_url FROM ttrss_feeds
+ WHERE $cat_qpart AND owner_uid = " . $_SESSION["uid"]);
+
+ while ($tmp_line = db_fetch_assoc($tmp_result)) {
+ $feed_url = $tmp_line["feed_url"];
+ update_rss_feed($link, $feed_url, $feed, ENABLE_UPDATE_DAEMON);
+ }
+
+ } else {
+ $tmp_result = db_query($link, "SELECT feed_url FROM ttrss_feeds
+ WHERE id = '$feed'");
+ $feed_url = db_fetch_result($tmp_result, 0, "feed_url");
+ update_rss_feed($link, $feed_url, $feed, ENABLE_UPDATE_DAEMON);
+ }
+ }
+
?>