diff --git a/functions.php b/functions.php index 0d4ee78de..f1c56e984 100644 --- a/functions.php +++ b/functions.php @@ -293,12 +293,6 @@ // base post entry does not exist, create it - error_reporting(0); - if (is_filtered($entry_title, $entry_content, $filters)) { - continue; - } - error_reporting (E_ERROR | E_WARNING | E_PARSE); - $result = db_query($link, "INSERT INTO ttrss_entries (title, @@ -350,6 +344,12 @@ $dupcheck_qpart = ""; } + error_reporting(0); + if (is_filtered($entry_title, $entry_content, $entry_link, $filters)) { + continue; + } + error_reporting (E_ERROR | E_WARNING | E_PARSE); + $result = db_query($link, "SELECT ref_id FROM ttrss_user_entries WHERE ref_id = '$ref_id' AND owner_uid = '$owner_uid' @@ -470,7 +470,7 @@ print ""; } - function is_filtered($title, $content, $filters) { + function is_filtered($title, $content, $link, $filters) { if ($filters["title"]) { foreach ($filters["title"] as $title_filter) { @@ -493,6 +493,13 @@ } } + if ($filters["link"]) { + foreach ($filters["link"] as $link_filter) { + if (preg_match("/$link_filter/i", $link)) + return true; + } + } + return false; } diff --git a/schema/ttrss_schema_mysql.sql b/schema/ttrss_schema_mysql.sql index 3b1a18b4c..e2b9c7050 100644 --- a/schema/ttrss_schema_mysql.sql +++ b/schema/ttrss_schema_mysql.sql @@ -77,6 +77,8 @@ insert into ttrss_filter_types (id,name,description) values (1, 'title', 'Title' insert into ttrss_filter_types (id,name,description) values (2, 'content', 'Content'); insert into ttrss_filter_types (id,name,description) values (3, 'both', 'Title or Content'); +insert into ttrss_filter_types (id,name,description) values (4, 'link', + 'Link'); create table ttrss_filters (id integer not null primary key auto_increment, owner_uid integer not null, diff --git a/schema/ttrss_schema_pgsql.sql b/schema/ttrss_schema_pgsql.sql index a6c19bedb..f7461d902 100644 --- a/schema/ttrss_schema_pgsql.sql +++ b/schema/ttrss_schema_pgsql.sql @@ -78,6 +78,8 @@ insert into ttrss_filter_types (id,name,description) values (1, 'title', 'Title' insert into ttrss_filter_types (id,name,description) values (2, 'content', 'Content'); insert into ttrss_filter_types (id,name,description) values (3, 'both', 'Title or Content'); +insert into ttrss_filter_types (id,name,description) values (4, 'link', + 'Link'); create table ttrss_filters (id serial not null primary key, owner_uid integer not null references ttrss_users(id) on delete cascade,