]> git.wh0rd.org Git - tt-rss.git/commitdiff
move out common subops from viewfeed handler
authorAndrew Dolgov <fox@madoka.spb.ru>
Mon, 27 Mar 2006 03:21:08 +0000 (04:21 +0100)
committerAndrew Dolgov <fox@madoka.spb.ru>
Mon, 27 Mar 2006 03:21:08 +0000 (04:21 +0100)
backend.php
functions.php

index 92f8739147b7aabc7045b0d943857741dad8e302..e28ccdc5769ac870e49936e3f8016180545b6b59 100644 (file)
                        </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"]);
index 68c8eac76e353eb8d62e32cbb5d9e1496a478fc3..77414b13c4989c503e328405d622945273b4c68a 100644 (file)
                }
        }
 
+       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);
+                       }
+       }
+       
 ?>