summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2018-12-06 19:15:00 +0300
committerAndrew Dolgov <[email protected]>2018-12-06 19:15:00 +0300
commita01c33d65409d8313221b981152ec627b8f8f3f1 (patch)
tree2997bb6c5afa719f218973abad1a306e013662b9 /classes
parente9cf8e8e35ba0d8d2f0665eed39dbdb75d77bb0d (diff)
add HOOK_FILTER_TRIGGERED (for filter debugging)
Diffstat (limited to 'classes')
-rwxr-xr-xclasses/pluginhost.php1
-rwxr-xr-xclasses/rssutils.php19
2 files changed, 17 insertions, 3 deletions
diff --git a/classes/pluginhost.php b/classes/pluginhost.php
index 7e3fb08ab..1ea6d8a5b 100755
--- a/classes/pluginhost.php
+++ b/classes/pluginhost.php
@@ -57,6 +57,7 @@ class PluginHost {
const HOOK_SEND_LOCAL_FILE = 37;
const HOOK_UNSUBSCRIBE_FEED = 38;
const HOOK_SEND_MAIL = 39;
+ const HOOK_FILTER_TRIGGERED = 40;
const KIND_ALL = 1;
const KIND_SYSTEM = 2;
diff --git a/classes/rssutils.php b/classes/rssutils.php
index 56108bd1e..923e98c82 100755
--- a/classes/rssutils.php
+++ b/classes/rssutils.php
@@ -769,13 +769,25 @@ class RSSUtils {
/* Collect article tags here so we could filter by them: */
- $matched_rules = array();
+ $matched_rules = [];
+ $matched_filters = [];
$article_filters = RSSUtils::get_article_filters($filters, $article["title"],
$article["content"], $article["link"], $article["author"],
- $article["tags"], $matched_rules);
+ $article["tags"], $matched_rules, $matched_filters);
+
+ // $article_filters should be renamed to something like $filter_actions; actual filter objects are in $matched_filters
+ foreach ($pluginhost->get_hooks(PluginHost::HOOK_FILTER_TRIGGERED) as $plugin) {
+ $plugin->hook_filter_triggered($feed, $owner_uid, $article, $matched_filters, $matched_rules, $article_filters);
+ }
if (Debug::get_loglevel() >= Debug::$LOG_EXTENDED) {
+ Debug::log("matched filters: ", Debug::$LOG_VERBOSE);
+
+ if (count($matched_filters != 0)) {
+ print_r($matched_filters);
+ }
+
Debug::log("matched filter rules: ", Debug::$LOG_VERBOSE);
if (count($matched_rules) != 0) {
@@ -1342,7 +1354,7 @@ class RSSUtils {
return $params;
}
- static function get_article_filters($filters, $title, $content, $link, $author, $tags, &$matched_rules = false) {
+ static function get_article_filters($filters, $title, $content, $link, $author, $tags, &$matched_rules = false, &$matched_filters = false) {
$matches = array();
foreach ($filters as $filter) {
@@ -1409,6 +1421,7 @@ class RSSUtils {
if ($filter_match) {
if (is_array($matched_rules)) array_push($matched_rules, $rule);
+ if (is_array($matched_filters)) array_push($matched_filters, $filter);
foreach ($filter["actions"] AS $action) {
array_push($matches, $action);