diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2025-03-30 20:21:06 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2025-03-30 20:21:06 +0300 |
| commit | b4962b670d02f7c5d4da3cafe99cffffe059e8a1 (patch) | |
| tree | b1f8a8f87632e671e9f9034721841fef9cacef44 | |
| parent | 10c488e1d05734e4e939db71a3ab9448c6e2ad11 (diff) | |
stop sending matched content twice for the tooltip, use smaller objects containing only regular expression and rule type
| -rw-r--r-- | classes/Pref_Filters.php | 8 | ||||
| -rw-r--r-- | js/CommonFilters.js | 4 |
2 files changed, 9 insertions, 3 deletions
diff --git a/classes/Pref_Filters.php b/classes/Pref_Filters.php index e30a1468c..d5844b902 100644 --- a/classes/Pref_Filters.php +++ b/classes/Pref_Filters.php @@ -171,6 +171,7 @@ class Pref_Filters extends Handler_Protected { $content_preview = ""; $matches = []; + $rules = []; $entry_title = $entry["title"]; @@ -184,6 +185,11 @@ class Pref_Filters extends Handler_Protected { $matches[] = $rule_regexp_match; + $rules[] = [ + 'reg_exp' => $rule['reg_exp'], + 'type' => $rule['type'] + ]; + if (in_array($rule['type'], ['content', 'both'])) { // also stripping [\r\n\t] to match what's done for content in RSSUtils#get_article_filters() $entry_content_text = strip_tags(preg_replace("/[\r\n\t]/", "", $entry["content"])); @@ -232,7 +238,7 @@ class Pref_Filters extends Handler_Protected { 'feed_title' => $entry['feed_title'], 'date' => mb_substr($entry['date_entered'], 0, 16), 'content_preview' => $content_preview, - 'matched_rules' => $matched_rules, // TODO shorten object passed to frontend + 'rules' => $rules ]; } } diff --git a/js/CommonFilters.js b/js/CommonFilters.js index f1f0e9e0c..ce871a2af 100644 --- a/js/CommonFilters.js +++ b/js/CommonFilters.js @@ -20,7 +20,7 @@ const Filters = { PARAM_ACTIONS: [4, 6, 7, 9, 10], filter_info: {}, formatMatchedRules: function(rules) { - return rules.map((r) => r.regexp_matches[0] + ' - ' + r.reg_exp + ' (' + r.type + ')').join('\n'); + return rules.map((r) => r.reg_exp + ' (' + r.type + ')').join('\n'); }, test: function() { const test_dialog = new fox.SingleUseDialog({ @@ -46,7 +46,7 @@ const Filters = { .replace("%f", test_dialog.results) .replace("%d", offset); - results_list.innerHTML += result.items.reduce((current, item) => current + `<li title="${App.escapeHtml(dialog.formatMatchedRules(item.matched_rules))}"><span class='title'>${item.title}</span> + results_list.innerHTML += result.items.reduce((current, item) => current + `<li title="${App.escapeHtml(dialog.formatMatchedRules(item.rules))}"><span class='title'>${item.title}</span> — <span class='feed'>${item.feed_title}</span>, <span class='date'>${item.date}</span> <div class='preview text-muted'>${item.content_preview}</div></li>`, ''); |