]> git.wh0rd.org - tt-rss.git/commitdiff
check filters on feed update, update NEWS, TODO and schema
authorAndrew Dolgov <fox@bah.spb.su>
Sat, 3 Sep 2005 10:34:24 +0000 (11:34 +0100)
committerAndrew Dolgov <fox@bah.spb.su>
Sat, 3 Sep 2005 10:34:24 +0000 (11:34 +0100)
NEWS
TODO
functions.php
ttrss_schema.sql

diff --git a/NEWS b/NEWS
index 5ba79b614734344bc12b3455db5422225bb395a0..5c4c790720fc213ac4e3646d355221ec0331b975 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,8 @@
 v1.0.3 (Sep xx, 2005)
 
        - OPML export/import
-       - Support for simple content filtering (expression should be valid regexp)
+       - Support for simple content filtering (expression should be valid regexp,
+         checking is case insensitive)
        - Reworked preferences dialog
 
 v1.0.2 (Sep 02, 2005)
diff --git a/TODO b/TODO
index f0e9382920412e8f813e405adb25b4e1a1656799..86bc836766582857a57042c9e891a34479ce8ead 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,17 +1,8 @@
-1.0
-
-+ feed editor
-+ feed icons
-+ background feed updates
-+ update detection based on content checksum
-+ cleanup posts older then specified number of days
-~ keyboard navigation
-+ support for channel -> image -> url (like in LJ feeds)
-
 1.1
 
 - better error handling
-- keyboard navigation
+- better keyboard navigation
+- filters (by content/title/feed?)
 
 Mysterious Future
 
index 1337b30f89941c478a01e2cb7722aaaf8c70f43d..ea2c2235d9c73484647cfaccc8403d9fb772c731 100644 (file)
                                pg_query("UPDATE ttrss_feeds SET icon_url = '$icon_url' WHERE id = '$feed'");
                        }
 
+
+                       $filters = array();
+
+                       $result = pg_query("SELECT regexp,
+                               (SELECT name FROM ttrss_filter_types
+                                       WHERE id = filter_type) as name
+                               FROM ttrss_filters");
+
+                       while ($line = pg_fetch_assoc($result)) {
+                               if (!$filters[$line["name"]]) $filters[$line["name"]] = array();
+                               array_push($filters[$line["name"]], $line["regexp"]);
+                       }
+
                        foreach ($rss->items as $item) {
        
                                $entry_guid = $item["id"];
 
                                if (pg_num_rows($result) == 0) {
 
+                                       error_reporting(0);
+                                       if (is_filtered($entry_title, $entry_content, $filters)) {
+                                               continue;
+                                       }
+                                       error_reporting (E_ERROR | E_WARNING | E_PARSE);
+
                                        //$entry_guid = pg_escape_string($entry_guid);
                                        $entry_content = pg_escape_string($entry_content);
                                        $entry_title = pg_escape_string($entry_title);
                print "</select>";
        }
 
+       function is_filtered($title, $content, $filters) {
+
+               if ($filters["title"]) {
+                       foreach ($filters["title"] as $title_filter) {                  
+                               if (preg_match("/$title_filter/i", $title)) 
+                                       return true;
+                       }
+               }
+
+               if ($filters["content"]) {
+                       foreach ($filters["content"] as $content_filter) {                      
+                               if (preg_match("/$content_filter/i", $content)) 
+                                       return true;
+                       }
+               }
+
+               if ($filters["both"]) {
+                       foreach ($filters["both"] as $filter) {                 
+                               if (preg_match("/$filter/i", $title) || preg_match("/$filter/i", $content)) 
+                                       return true;
+                       }
+               }
+
+               return false;
+       }
+
 ?>
index d78e0b16c0cf4efc3e04da18af02a04a7b61bcfb..79a58677c28985e8c517657cffce81aa537ce503 100644 (file)
@@ -59,7 +59,3 @@ create table ttrss_filters (id serial primary key,
        regexp varchar(250) not null,
        description varchar(250) not null default '');
 
-COPY ttrss_filters (id, filter_type, regexp, description) FROM stdin;
-1      3       PIGGIES MOORE! MOOOOORE PIGGIES!
-\.
-