]> git.wh0rd.org - tt-rss.git/commitdiff
Revert "filters: support matching on multiple feeds/categories"
authorAndrew Dolgov <noreply@fakecake.org>
Sun, 2 Jul 2017 17:37:01 +0000 (20:37 +0300)
committerAndrew Dolgov <noreply@fakecake.org>
Sun, 2 Jul 2017 17:37:01 +0000 (20:37 +0300)
This reverts commit 0bf7e007bb3a7039ea11601c7f93c6da33604228.

classes/opml.php
classes/pref/filters.php
classes/rssutils.php
include/controls.php
include/functions.php

index 2c2c2ac0e6c1209f90a2177da343b98bb9d1a4b5..0671053c88aba83224f4b1054dd7d80c7669e26e 100644 (file)
@@ -181,37 +181,13 @@ class Opml extends Handler_Protected {
 
                                        $cat_filter = sql_bool_to_bool($tmp_line["cat_filter"]);
 
-                                       if (!$tmp_line["match_on"]) {
-                        if ($cat_filter && $tmp_line["cat_id"] || $tmp_line["feed_id"]) {
-                            $tmp_line["feed"] = Feeds::getFeedTitle(
-                                $cat_filter ? $tmp_line["cat_id"] : $tmp_line["feed_id"],
-                                $cat_filter);
-                        } else {
-                            $tmp_line["feed"] = "";
-                        }
-                    } else {
-                                           $match = [];
-                                           foreach (json_decode($tmp_line["match_on"], true) as $feed_id) {
-
-                            if (strpos($feed_id, "CAT:") === 0) {
-                                $feed_id = (int)substr($feed_id, 4);
-                                if ($feed_id) {
-                                    array_push($match, [Feeds::getCategoryTitle($feed_id), true, false]);
-                                } else {
-                                    array_push($match, [0, true, true]);
-                                }
-                            } else {
-                                if ($feed_id) {
-                                    array_push($match, [Feeds::getFeedTitle((int)$feed_id), false, false]);
-                                } else {
-                                    array_push($match, [0, false, true]);
-                                }
-                            }
-                        }
-
-                        $tmp_line["match"] = $match;
-                                           unset($tmp_line["match_on"]);
-                    }
+                                       if ($cat_filter && $tmp_line["cat_id"] || $tmp_line["feed_id"]) {
+                                               $tmp_line["feed"] = Feeds::getFeedTitle(
+                                                       $cat_filter ? $tmp_line["cat_id"] : $tmp_line["feed_id"],
+                                                       $cat_filter);
+                                       } else {
+                                               $tmp_line["feed"] = "";
+                                       }
 
                                        $tmp_line["cat_filter"] = sql_bool_to_bool($tmp_line["cat_filter"]);
                                        $tmp_line["inverse"] = sql_bool_to_bool($tmp_line["inverse"]);
@@ -370,71 +346,28 @@ class Opml extends Handler_Protected {
                                                $feed_id = "NULL";
                                                $cat_id = "NULL";
 
-                                               if ($rule["match"]) {
-
-                            $match_on = [];
-
-                                                   foreach ($rule["match"] as $match) {
-                                                       list ($name, $is_cat, $is_id) = $match;
-
-                                                       if ($is_id) {
-                                                           array_push($match_on, ($is_cat ? "CAT:" : "") . $name);
-                                } else {
-
-                                                           $match_id = false;
-
-                                    if (!$is_cat) {
-                                        $tmp_result = $this->dbh->query("SELECT id FROM ttrss_feeds
-                                    WHERE title = '" . $this->dbh->escape_string($name) . "' AND owner_uid = " . $_SESSION["uid"]);
-                                        if ($this->dbh->num_rows($tmp_result) > 0) {
-                                            $match_id = $this->dbh->fetch_result($tmp_result, 0, "id");
-                                        }
-                                    } else {
-                                        $tmp_result = $this->dbh->query("SELECT id FROM ttrss_feed_categories
-                                    WHERE title = '" . $this->dbh->escape_string($name) . "' AND owner_uid = " . $_SESSION["uid"]);
-
-                                        if ($this->dbh->num_rows($tmp_result) > 0) {
-                                            $match_id = 'CAT:' . $this->dbh->fetch_result($tmp_result, 0, "id");
-                                        }
-                                    }
-
-                                    if ($match_id) array_push($match_on, $match_id);
-                                }
-                            }
-
-                            $reg_exp = $this->dbh->escape_string($rule["reg_exp"]);
-                            $filter_type = (int)$rule["filter_type"];
-                            $inverse = bool_to_sql_bool($rule["inverse"]);
-                            $match_on = $this->dbh->escape_string(json_encode($match_on));
-
-                            $this->dbh->query("INSERT INTO ttrss_filters2_rules (feed_id,cat_id,match_on,filter_id,filter_type,reg_exp,cat_filter,inverse)
-                                VALUES (NULL, NULL, '$match_on',$filter_id, $filter_type, '$reg_exp', false, $inverse)");
-
-                        } else {
-
-                            if (!$rule["cat_filter"]) {
-                                $tmp_result = $this->dbh->query("SELECT id FROM ttrss_feeds
-                                    WHERE title = '" . $this->dbh->escape_string($rule["feed"]) . "' AND owner_uid = " . $_SESSION["uid"]);
-                                if ($this->dbh->num_rows($tmp_result) > 0) {
-                                    $feed_id = $this->dbh->fetch_result($tmp_result, 0, "id");
-                                }
-                            } else {
-                                $tmp_result = $this->dbh->query("SELECT id FROM ttrss_feed_categories
-                                    WHERE title = '" . $this->dbh->escape_string($rule["feed"]) . "' AND owner_uid = " . $_SESSION["uid"]);
-
-                                if ($this->dbh->num_rows($tmp_result) > 0) {
-                                    $cat_id = $this->dbh->fetch_result($tmp_result, 0, "id");
-                                }
-                            }
-
-                            $cat_filter = bool_to_sql_bool($rule["cat_filter"]);
-                            $reg_exp = $this->dbh->escape_string($rule["reg_exp"]);
-                            $filter_type = (int)$rule["filter_type"];
-                            $inverse = bool_to_sql_bool($rule["inverse"]);
-
-                            $this->dbh->query("INSERT INTO ttrss_filters2_rules (feed_id,cat_id,filter_id,filter_type,reg_exp,cat_filter,inverse)
-                                VALUES ($feed_id, $cat_id, $filter_id, $filter_type, '$reg_exp', $cat_filter,$inverse)");
-                        }
+                                               if (!$rule["cat_filter"]) {
+                                                       $tmp_result = $this->dbh->query("SELECT id FROM ttrss_feeds
+                                                               WHERE title = '".$this->dbh->escape_string($rule["feed"])."' AND owner_uid = ".$_SESSION["uid"]);
+                                                       if ($this->dbh->num_rows($tmp_result) > 0) {
+                                                               $feed_id = $this->dbh->fetch_result($tmp_result, 0, "id");
+                                                       }
+                                               } else {
+                                                       $tmp_result = $this->dbh->query("SELECT id FROM ttrss_feed_categories
+                                                               WHERE title = '".$this->dbh->escape_string($rule["feed"])."' AND owner_uid = ".$_SESSION["uid"]);
+
+                                                       if ($this->dbh->num_rows($tmp_result) > 0) {
+                                                               $cat_id = $this->dbh->fetch_result($tmp_result, 0, "id");
+                                                       }
+                                               }
+
+                                               $cat_filter = bool_to_sql_bool($rule["cat_filter"]);
+                                               $reg_exp = $this->dbh->escape_string($rule["reg_exp"]);
+                                               $filter_type = (int)$rule["filter_type"];
+                                               $inverse = bool_to_sql_bool($rule["inverse"]);
+
+                                               $this->dbh->query("INSERT INTO ttrss_filters2_rules (feed_id,cat_id,filter_id,filter_type,reg_exp,cat_filter,inverse)
+                                                       VALUES ($feed_id, $cat_id, $filter_id, $filter_type, '$reg_exp', $cat_filter,$inverse)");
                                        }
 
                                        foreach ($filter["actions"] as $action) {
index 989159bd28d5e294c4cdbd95bad103a60bb26f63..e5abf46277990380437cae7f479106adbcb16c95 100755 (executable)
@@ -75,20 +75,18 @@ class Pref_Filters extends Handler_Protected {
                                $rule["type"] = $filter_types[$rule["filter_type"]];
                                unset($rule["filter_type"]);
 
-                               $scope_inner_qparts = [];
-                               foreach ($rule["feed_id"] as $feed_id) {
-
-                    if (strpos($feed_id, "CAT:") === 0) {
-                        $cat_id = (int) substr($feed_id, 4);
-                        array_push($scope_inner_qparts, "cat_id = " . $cat_id);
-                    } else if ($feed_id > 0) {
-                        array_push($scope_inner_qparts, "feed_id = " . $feed_id);
-                    }
-                }
+                               if (strpos($rule["feed_id"], "CAT:") === 0) {
+                                       $rule["cat_id"] = (int) substr($rule["feed_id"], 4);
+                                       unset($rule["feed_id"]);
+                               }
 
-                if (count($scope_inner_qparts) > 0) {
-                                   array_push($scope_qparts, "(" . implode(" OR ", $scope_inner_qparts) . ")");
-                }
+                               if (isset($rule["feed_id"]) && $rule['feed_id'] > 0) {
+                                       array_push($scope_qparts, "feed_id = " . $rule["feed_id"]);
+                               } else if (isset($rule["cat_id"])) {
+                                       array_push($scope_qparts, "cat_id = " . $rule["cat_id"]);
+                               } else {
+                                       array_push($scope_qparts, "true");
+                               }
 
                                array_push($filter["rules"], $rule);
 
@@ -98,8 +96,6 @@ class Pref_Filters extends Handler_Protected {
                        }
                }
 
-               if (count($scope_qparts) == 0) $scope_qparts = ["true"];
-
                $glue = $filter['match_any_rule'] ? " OR " :  " AND ";
                $scope_qpart = join($glue, $scope_qparts);
 
@@ -211,7 +207,6 @@ class Pref_Filters extends Handler_Protected {
        private function getfilterrules_concise($filter_id) {
                $result = $this->dbh->query("SELECT reg_exp,
                        inverse,
-                       match_on,
                        feed_id,
                        cat_id,
                        cat_filter,
@@ -226,32 +221,10 @@ class Pref_Filters extends Handler_Protected {
 
                while ($line = $this->dbh->fetch_assoc($result)) {
 
-                   if ($line["match_on"]) {
-                       $feeds = json_decode($line["match_on"], true);
-                       $feeds_fmt = [];
-
-                foreach ($feeds as $feed_id) {
-
-                    if (strpos($feed_id, "CAT:") === 0) {
-                        $feed_id = (int)substr($feed_id, 4);
-                        array_push($feeds_fmt, Feeds::getCategoryTitle($feed_id));
-                    } else {
-                        if ($feed_id)
-                            array_push($feeds_fmt, Feeds::getFeedTitle((int)$feed_id));
-                        else
-                            array_push($feeds_fmt, __("All feeds"));
-                    }
-                }
-
-                $where = implode(", ", $feeds_fmt);
-
-            } else {
-
-                $where = sql_bool_to_bool($line["cat_filter"]) ?
-                    Feeds::getCategoryTitle($line["cat_id"]) :
-                    ($line["feed_id"] ?
-                        Feeds::getFeedTitle($line["feed_id"]) : __("All feeds"));
-            }
+                       $where = sql_bool_to_bool($line["cat_filter"]) ?
+                               Feeds::getCategoryTitle($line["cat_id"]) :
+                               ($line["feed_id"] ?
+                                       Feeds::getFeedTitle($line["feed_id"]) : __("All feeds"));
 
 #                      $where = $line["cat_id"] . "/" . $line["feed_id"];
 
@@ -403,26 +376,17 @@ class Pref_Filters extends Handler_Protected {
                        WHERE filter_id = '$filter_id' ORDER BY reg_exp, id");
 
                while ($line = $this->dbh->fetch_assoc($rules_result)) {
-            if ($line["match_on"]) {
-                $line["feed_id"] = json_decode($line["match_on"], true);
-            } else {
-                if (sql_bool_to_bool($line["cat_filter"])) {
-                    $feed_id = "CAT:" . (int)$line["cat_id"];
-                } else {
-                    $feed_id = (int)$line["cat_id"];
-                }
-
-                $line["feed_id"] = ["" . $feed_id]; // set item type to string for in_array()
-            }
-
-            unset($line["cat_filter"]);
-            unset($line["cat_id"]);
-            unset($line["filter_id"]);
-            unset($line["id"]);
-            if (!sql_bool_to_bool($line["inverse"])) unset($line["inverse"]);
-            unset($line["match_on"]);
-
-            $data = htmlspecialchars(json_encode($line));
+                       if (sql_bool_to_bool($line["cat_filter"])) {
+                               $line["feed_id"] = "CAT:" . (int)$line["cat_id"];
+                       }
+
+                       unset($line["cat_filter"]);
+                       unset($line["cat_id"]);
+                       unset($line["filter_id"]);
+                       unset($line["id"]);
+                       if (!sql_bool_to_bool($line["inverse"])) unset($line["inverse"]);
+
+                       $data = htmlspecialchars(json_encode($line));
 
                        print "<li><input dojoType='dijit.form.CheckBox' type='checkbox' onclick='toggleSelectListRow2(this)'>".
                                "<span onclick=\"dijit.byId('filterEditDlg').editRule(this)\">".$this->getRuleName($line)."</span>".
@@ -527,25 +491,19 @@ class Pref_Filters extends Handler_Protected {
        private function getRuleName($rule) {
                if (!$rule) $rule = json_decode($_REQUEST["rule"], true);
 
-               $feeds = $rule["feed_id"];
-               $feeds_fmt = [];
+               $feed_id = $rule["feed_id"];
 
-               if (!is_array($feeds)) $feeds = [$feeds];
-
-               foreach ($feeds as $feed_id) {
-
-            if (strpos($feed_id, "CAT:") === 0) {
-                $feed_id = (int)substr($feed_id, 4);
-                array_push($feeds_fmt, Feeds::getCategoryTitle($feed_id));
-            } else {
-                if ($feed_id)
-                    array_push($feeds_fmt, Feeds::getFeedTitle((int)$feed_id));
-                else
-                    array_push($feeds_fmt, __("All feeds"));
-            }
-        }
+               if (strpos($feed_id, "CAT:") === 0) {
+                       $feed_id = (int) substr($feed_id, 4);
+                       $feed = Feeds::getCategoryTitle($feed_id);
+               } else {
+                       $feed_id = (int) $feed_id;
 
-        $feed = implode(", ", $feeds_fmt);
+                       if ($rule["feed_id"])
+                               $feed = Feeds::getFeedTitle((int)$rule["feed_id"]);
+                       else
+                               $feed = __("All feeds");
+               }
 
                $result = $this->dbh->query("SELECT description FROM ttrss_filter_types
                        WHERE id = ".(int)$rule["filter_type"]);
@@ -663,9 +621,9 @@ class Pref_Filters extends Handler_Protected {
                                        $inverse = isset($rule["inverse"]) ? "true" : "false";
 
                                        $filter_type = (int) $this->dbh->escape_string(trim($rule["filter_type"]));
-                                       $match_on = $this->dbh->escape_string(json_encode($rule["feed_id"]));
+                                       $feed_id = $this->dbh->escape_string(trim($rule["feed_id"]));
 
-                                       /*if (strpos($feed_id, "CAT:") === 0) {
+                                       if (strpos($feed_id, "CAT:") === 0) {
 
                                                $cat_filter = bool_to_sql_bool(true);
                                                $cat_id = (int) substr($feed_id, 4);
@@ -678,11 +636,11 @@ class Pref_Filters extends Handler_Protected {
                                                $cat_id = "NULL";
 
                                                if (!$feed_id) $feed_id = "NULL"; // Uncategorized
-                                       }*/
+                                       }
 
                                        $query = "INSERT INTO ttrss_filters2_rules
-                                               (filter_id, reg_exp,filter_type,feed_id,cat_id,match_on,inverse) VALUES
-                                               ('$filter_id', '$reg_exp', '$filter_type', NULL, NULL, '$match_on', $inverse)";
+                                               (filter_id, reg_exp,filter_type,feed_id,cat_id,cat_filter,inverse) VALUES
+                                               ('$filter_id', '$reg_exp', '$filter_type', $feed_id, $cat_id, $cat_filter, $inverse)";
 
                                        $this->dbh->query($query);
                                }
@@ -956,16 +914,17 @@ class Pref_Filters extends Handler_Protected {
                } else {
                        $reg_exp = "";
                        $filter_type = 1;
-                       $feed_id = [];
+                       $feed_id = 0;
                        $inverse_checked = "";
                }
 
-               /*if (strpos($feed_id, "CAT:") === 0) {
+               if (strpos($feed_id, "CAT:") === 0) {
                        $feed_id = substr($feed_id, 4);
                        $cat_filter = true;
                } else {
                        $cat_filter = false;
-               }*/
+               }
+
 
                print "<form name='filter_new_rule_form' id='filter_new_rule_form'>";
 
@@ -1001,9 +960,9 @@ class Pref_Filters extends Handler_Protected {
                print __("in") . " ";
 
                print "<span id='filterDlg_feeds'>";
-               print_feed_multi_select("feed_id",
-                       $feed_id,
-                       'dojoType="dijit.form.MultiSelect" style="height : 150px"');
+               print_feed_select("feed_id",
+                       $cat_filter ? "CAT:$feed_id" : $feed_id,
+                       'dojoType="dijit.form.FilteringSelect"');
                print "</span>";
 
                print "</div>";
index 4025534b4f007c08b864140aaa069226dde90a2a..e892c0bb2f2d3f10d43f161c11d4c9d142086dc5 100644 (file)
@@ -497,10 +497,6 @@ class RSSUtils {
 
                        $filters = load_filters($feed, $owner_uid);
 
-                       if ($debug_enabled) {
-                           print_r($filters);
-            }
-
                        _debug("" . count($filters) . " filters loaded.", $debug_enabled);
 
                        $items = $rss->get_items();
index 0129db50115a1913483faaf54a8e41fd8c29e02b..3ddf4fd9d17a3efd7b5728ba078b7329ecf536a8 100644 (file)
@@ -70,104 +70,6 @@ function print_radio($id, $default, $true_is, $values, $attributes = "") {
        }
 }
 
-function print_feed_multi_select($id, $default_ids = [],
-                           $attributes = "", $include_all_feeds = true,
-                           $root_id = false, $nest_level = 0) {
-
-    print_r(in_array("CAT:6",$default_ids));
-
-    if (!$root_id) {
-        print "<select multiple=\true\" id=\"$id\" name=\"$id\" $attributes>";
-        if ($include_all_feeds) {
-            $is_selected = (in_array("0", $default_ids)) ? "selected=\"1\"" : "";
-            print "<option $is_selected value=\"0\">".__('All feeds')."</option>";
-        }
-    }
-
-    if (get_pref('ENABLE_FEED_CATS')) {
-
-        if ($root_id)
-            $parent_qpart = "parent_cat = '$root_id'";
-        else
-            $parent_qpart = "parent_cat IS NULL";
-
-        $result = db_query("SELECT id,title,
-                               (SELECT COUNT(id) FROM ttrss_feed_categories AS c2 WHERE
-                                       c2.parent_cat = ttrss_feed_categories.id) AS num_children
-                               FROM ttrss_feed_categories
-                               WHERE owner_uid = ".$_SESSION["uid"]." AND $parent_qpart ORDER BY title");
-
-        while ($line = db_fetch_assoc($result)) {
-
-            for ($i = 0; $i < $nest_level; $i++)
-                $line["title"] = " - " . $line["title"];
-
-            $is_selected = in_array("CAT:".$line["id"], $default_ids) ? "selected=\"1\"" : "";
-
-            printf("<option $is_selected value='CAT:%d'>%s</option>",
-                $line["id"], htmlspecialchars($line["title"]));
-
-            if ($line["num_children"] > 0)
-                print_feed_multi_select($id, $default_ids, $attributes,
-                    $include_all_feeds, $line["id"], $nest_level+1);
-
-            $feed_result = db_query("SELECT id,title FROM ttrss_feeds
-                                       WHERE cat_id = '".$line["id"]."' AND owner_uid = ".$_SESSION["uid"] . " ORDER BY title");
-
-            while ($fline = db_fetch_assoc($feed_result)) {
-                $is_selected = (in_array($fline["id"], $default_ids)) ? "selected=\"1\"" : "";
-
-                $fline["title"] = " + " . $fline["title"];
-
-                for ($i = 0; $i < $nest_level; $i++)
-                    $fline["title"] = " - " . $fline["title"];
-
-                printf("<option $is_selected value='%d'>%s</option>",
-                    $fline["id"], htmlspecialchars($fline["title"]));
-            }
-        }
-
-        if (!$root_id) {
-            $is_selected = in_array("CAT:0", $default_ids) ? "selected=\"1\"" : "";
-
-            printf("<option $is_selected value='CAT:0'>%s</option>",
-                __("Uncategorized"));
-
-            $feed_result = db_query("SELECT id,title FROM ttrss_feeds
-                                       WHERE cat_id IS NULL AND owner_uid = ".$_SESSION["uid"] . " ORDER BY title");
-
-            while ($fline = db_fetch_assoc($feed_result)) {
-                $is_selected = in_array($fline["id"], $default_ids) ? "selected=\"1\"" : "";
-
-                $fline["title"] = " + " . $fline["title"];
-
-                for ($i = 0; $i < $nest_level; $i++)
-                    $fline["title"] = " - " . $fline["title"];
-
-                printf("<option $is_selected value='%d'>%s</option>",
-                    $fline["id"], htmlspecialchars($fline["title"]));
-            }
-        }
-
-    } else {
-        $result = db_query("SELECT id,title FROM ttrss_feeds
-                               WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY title");
-
-        while ($line = db_fetch_assoc($result)) {
-
-            $is_selected = (in_array($line["id"], $default_ids)) ? "selected=\"1\"" : "";
-
-            printf("<option $is_selected value='%d'>%s</option>",
-                $line["id"], htmlspecialchars($line["title"]));
-        }
-    }
-
-    if (!$root_id) {
-        print "</select>";
-    }
-}
-
-
 function print_feed_select($id, $default_id = "",
                                                   $attributes = "", $include_all_feeds = true,
                                                   $root_id = false, $nest_level = 0) {
index 4ad6e6394329c7516007a20b295baed992d40f7b..6ea3e9ff2dea2079e53950e13ede01f5353c8321 100644 (file)
                $result = db_query("SELECT * FROM ttrss_filters2 WHERE
                                owner_uid = $owner_uid AND enabled = true ORDER BY order_id, title");
 
-               $check_cats = array_merge(
+               $check_cats = join(",", array_merge(
                        Feeds::getParentCategories($cat_id, $owner_uid),
-                       [$cat_id]);
-
-               $check_cats_str = join(",", $check_cats);
-               $check_cats_fullids = array_map(function($a) { return "CAT:$a"; }, $check_cats);
+                       array($cat_id)));
 
                while ($line = db_fetch_assoc($result)) {
                        $filter_id = $line["id"];
 
-            $match_any_rule = sql_bool_to_bool($line["match_any_rule"]);
-
                        $result2 = db_query("SELECT
-                                       r.reg_exp, r.inverse, r.feed_id, r.cat_id, r.cat_filter, r.match_on, t.name AS type_name
+                                       r.reg_exp, r.inverse, r.feed_id, r.cat_id, r.cat_filter, t.name AS type_name
                                        FROM ttrss_filters2_rules AS r,
                                        ttrss_filter_types AS t
                                        WHERE
-                                           (match_on IS NOT NULL OR 
-                                                 (($null_cat_qpart (cat_id IS NULL AND cat_filter = false) OR cat_id IN ($check_cats_str)) AND
-                                                 (feed_id IS NULL OR feed_id = '$feed_id'))) AND
+                                               ($null_cat_qpart (cat_id IS NULL AND cat_filter = false) OR cat_id IN ($check_cats)) AND
+                                               (feed_id IS NULL OR feed_id = '$feed_id') AND
                                                filter_type = t.id AND filter_id = '$filter_id'");
 
                        $rules = array();
                        while ($rule_line = db_fetch_assoc($result2)) {
        #                               print_r($rule_line);
 
-                if ($rule_line["match_on"]) {
-                    $match_on = json_decode($rule_line["match_on"], true);
-
-                    if (in_array("0", $match_on) || in_array($feed_id, $match_on) || count(array_intersect($check_cats_fullids, $match_on)) > 0) {
+                               $rule = array();
+                               $rule["reg_exp"] = $rule_line["reg_exp"];
+                               $rule["type"] = $rule_line["type_name"];
+                               $rule["inverse"] = sql_bool_to_bool($rule_line["inverse"]);
 
-                        $rule = array();
-                        $rule["reg_exp"] = $rule_line["reg_exp"];
-                        $rule["type"] = $rule_line["type_name"];
-                        $rule["inverse"] = sql_bool_to_bool($rule_line["inverse"]);
-
-                        array_push($rules, $rule);
-                    } else if (!$match_any_rule) {
-                        // this filter contains a rule that doesn't match to this feed/category combination
-                        // thus filter has to be rejected
+                               array_push($rules, $rule);
+                       }
 
-                        $rules = [];
-                        break;
-                    }
+                       $result2 = db_query("SELECT a.action_param,t.name AS type_name
+                                       FROM ttrss_filters2_actions AS a,
+                                       ttrss_filter_actions AS t
+                                       WHERE
+                                               action_id = t.id AND filter_id = '$filter_id'");
 
-                } else {
+                       while ($action_line = db_fetch_assoc($result2)) {
+       #                               print_r($action_line);
 
-                    $rule = array();
-                    $rule["reg_exp"] = $rule_line["reg_exp"];
-                    $rule["type"] = $rule_line["type_name"];
-                    $rule["inverse"] = sql_bool_to_bool($rule_line["inverse"]);
+                               $action = array();
+                               $action["type"] = $action_line["type_name"];
+                               $action["param"] = $action_line["action_param"];
 
-                    array_push($rules, $rule);
-                }
+                               array_push($actions, $action);
                        }
 
-                       if (count($rules) > 0) {
-                $result2 = db_query("SELECT a.action_param,t.name AS type_name
-                        FROM ttrss_filters2_actions AS a,
-                        ttrss_filter_actions AS t
-                        WHERE
-                            action_id = t.id AND filter_id = '$filter_id'");
-
-                while ($action_line = db_fetch_assoc($result2)) {
-                    #                          print_r($action_line);
-
-                    $action = array();
-                    $action["type"] = $action_line["type_name"];
-                    $action["param"] = $action_line["action_param"];
-
-                    array_push($actions, $action);
-                }
-            }
 
                        $filter = array();
                        $filter["match_any_rule"] = sql_bool_to_bool($line["match_any_rule"]);