]> git.wh0rd.org - tt-rss.git/blobdiff - functions.php
new preference: PURGE_UNREAD_ARTICLES (closes #161), fix bug in user purge
[tt-rss.git] / functions.php
index 744a728ecf2d36c3d9ab84852f2f64b43b81170c..4a6613a60dd29559b71811d7951ddc5d80860fa3 100644 (file)
 
        function purge_feed($link, $feed_id, $purge_interval, $debug = false) {
 
+               if (!$purge_interval) $purge_interval = feed_purge_interval($link, $feed_id);
+
                $rows = -1;
 
+               $result = db_query($link, 
+                       "SELECT owner_uid FROM ttrss_feeds WHERE id = '$feed_id'");
+
+               $owner_uid = false;
+
+               if (db_num_rows($result) == 1) {
+                       $owner_uid = db_fetch_result($result, 0, "owner_uid");
+               }
+
+               if (!$owner_uid) return;
+
+               $purge_unread = get_pref($link, "PURGE_UNREAD_ARTICLES",
+                       $owner_uid, false);
+
+               if (!$purge_unread) $query_limit = " unread = false AND ";
+
                if (DB_TYPE == "pgsql") {
 /*                     $result = db_query($link, "DELETE FROM ttrss_user_entries WHERE
                                marked = false AND feed_id = '$feed_id' AND
                                        ttrss_entries.id = ref_id AND 
                                        marked = false AND 
                                        feed_id = '$feed_id' AND 
+                                       $query_limit
                                        ttrss_entries.date_entered < NOW() - INTERVAL '$purge_interval days'");
 
                        } else {
                                        WHERE ttrss_entries.id = ref_id AND 
                                        marked = false AND 
                                        feed_id = '$feed_id' AND 
+                                       $query_limit
                                        ttrss_entries.date_entered < NOW() - INTERVAL '$purge_interval days'");
                        }
 
                                WHERE ttrss_entries.id = ref_id AND 
                                marked = false AND 
                                feed_id = '$feed_id' AND 
+                               $query_limit
                                ttrss_entries.date_entered < DATE_SUB(NOW(), INTERVAL $purge_interval DAY)");
                                        
                        $rows = mysql_affected_rows($link);
 
        }
 
+       function feed_purge_interval($link, $feed_id) {
+
+               $result = db_query($link, "SELECT purge_interval, owner_uid FROM ttrss_feeds 
+                       WHERE id = '$feed_id'");
+
+               if (db_num_rows($result) == 1) {
+                       $purge_interval = db_fetch_result($result, 0, "purge_interval");
+                       $owner_uid = db_fetch_result($result, 0, "owner_uid");
+
+                       if ($purge_interval == 0) $purge_interval = get_pref($link, 
+                               'PURGE_OLD_DAYS', $user_id);
+
+                       return $purge_interval;
+
+               } else {
+                       return -1;
+               }
+       }
+
        function purge_old_posts($link) {
 
                $user_id = $_SESSION["uid"];