Idea: Add column to show when filter was last triggered

My idea is to have a new column in the Filters view to show when a filter last did the action specified in the filter. This would allow you to view the filter list every few weeks and delete triggers that no longer were doing anything.

Thanks for considering this.

it’s not a bad idea i guess, i’ll take a look after pdo merge

well, here we are, a year later i finally managed to scroll far enough in my tt-rss todo list to find this post.

https://git.tt-rss.org/fox/tt-rss/commit/3e4326e34dcb4a9eb922c6d212fd05a58a11b124

I do not know if you noticed, but I have a filter with “inverse matching”.
The filter works, but under preferences it does not show when it was last triggered.
It’s not a big deal, but just thought you should know.
I am running b96beeeda772fe087471fc9de4857702b6abe096 on mysql.

try checking feed debugger to see if the filter is actually matching. if it actually does match, the timestamp should update. i didn’t try on mysql but it should work regardless of the database.

i made a filter (set inverse) with a rule that can’t match anything, and it matched and timestamp was updated.

The filter is supposed to mark as read any article that does not contain a word in the title.
So far the word has not appeared in the feed, so every articles have been marked as read.

I was thinking that it meant the timestamp should have been updated.
If I test the filter, it returns more than 100 results, that’s why I was thinking it should have updated the time it was last run

filter

if you have doubts always test filters with feed debugger (f D). if filter shows up in it (with &xdebug=2) and timestamp doesn’t update then it’s an issue, maybe.

filter test dialog is a convenience, not a debugging tool.

e: also, check if there’s any sql errors in event log.

See attachment. The filter shows up, because it is actually working.

Reading your previous reply, I assume the timestamp should appear only if the word that triggers the filter is in the feed. Since the word so far has not appeared, you are saying it is correct the timestamp is not updated.

My reasoning is that, since the filter has reverse matching, and the word triggering the filter has not shown up, that filter is always working, so there should be the updated timestamp.

[14:03:35/90779] start
[14:03:35/90779] local cache will not be used for this feed
[14:03:35/90779] last unconditional update request: 2018-12-08 14:02:32
[14:03:35/90779] stored last modified for conditional request: Sat, 08 Dec 2018 14:02:01 GMT
[14:03:35/90779] fetching [https://eztv.ag/ezrss.xml] (force_refetch: 1)...
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:35/90779] [curl progressfunction] 0 16777216
[14:03:36/90779] [curl progressfunction] 0 16777216
[14:03:36/90779] [curl progressfunction] 0 16777216
[14:03:36/90779] [curl progressfunction] 0 16777216
[14:03:36/90779] [curl progressfunction] 0 16777216
[14:03:36/90779] [curl progressfunction] 493 16777216
[14:03:36/90779] [curl progressfunction] 493 16777216
[14:03:36/90779] [curl progressfunction] 1862 16777216
[14:03:36/90779] [curl progressfunction] 1862 16777216
[14:03:36/90779] [curl progressfunction] 3231 16777216
[14:03:36/90779] [curl progressfunction] 3231 16777216
[14:03:36/90779] [curl progressfunction] 4600 16777216
[14:03:36/90779] [curl progressfunction] 4600 16777216
[14:03:36/90779] [curl progressfunction] 5969 16777216
[14:03:36/90779] [curl progressfunction] 5969 16777216
[14:03:36/90779] [curl progressfunction] 7022 16777216
[14:03:36/90779] [curl progressfunction] 7022 16777216
[14:03:36/90779] [curl progressfunction] 7022 16777216
[14:03:36/90779] [curl progressfunction] 7022 16777216
[14:03:36/90779] fetch done.
[14:03:36/90779] source last modified: Sat, 08 Dec 2018 14:03:02 GMT
[14:03:36/90779] saving cache/feeds/c0573369227f169a37df332299bd65322da46868.xml
[14:03:36/90779] language: english
[14:03:36/90779] processing feed data...
[14:03:36/90779] site_url: https://eztv.io/
[14:03:36/90779] feed_title: TV Torrents RSS feed - EZTV
[14:03:36/90779] checking favicon...
[14:03:36/90779] loading filters & labels...
Array
(
    [0] => Array
        (
            [id] => 18
            [match_any_rule] => 
            [inverse] => 1
            [rules] => Array
                (
                    [0] => Array
                        (
                            [reg_exp] => bbc|nhk
                            [type] => title
                            [inverse] => 
                        )

                )

            [actions] => Array
                (
                    [0] => Array
                        (
                            [type] => catchup
                            [param] => 
                        )

                )

        )

    [1] => Array
        (
            [id] => 11
            [match_any_rule] => 
            [inverse] => 
            [rules] => Array
                (
                    [0] => Array
                        (
                            [reg_exp] => playstation|nintendo|xbox|ps4|fortnite|fallout
                            [type] => title
                            [inverse] => 
                        )

                )

            [actions] => Array
                (
                    [0] => Array
                        (
                            [type] => catchup
                            [param] => 
                        )

                )

        )

    [2] => Array
        (
            [id] => 13
            [match_any_rule] => 
            [inverse] => 
            [rules] => Array
                (
                    [0] => Array
                        (
                            [reg_exp] => (best deals)|(amazon deals)|(top deals)|(deal alert)
                            [type] => title
                            [inverse] => 
                        )

                )

            [actions] => Array
                (
                    [0] => Array
                        (
                            [type] => catchup
                            [param] => 
                        )

                )

        )

    [3] => Array
        (
            [id] => 14
            [match_any_rule] => 
            [inverse] => 
            [rules] => Array
                (
                    [0] => Array
                        (
                            [reg_exp] => spacex
                            [type] => title
                            [inverse] => 
                        )

                )

            [actions] => Array
                (
                    [0] => Array
                        (
                            [type] => catchup
                            [param] => 
                        )

                )

        )

)
[14:03:36/90779] 4 filters loaded.
[14:03:36/90779] processing articles...
[14:03:36/90779] guid 2,https://eztv.io/ep/1294417/inside-story-au-s02e02-born-bad-hdtv-x264-cbfm/ / SHA1:e6dbc635cfdbba968cfc20af104db320f1bd370b
[14:03:36/90779] orig date: 1544277463
[14:03:36/90779] date 1544277463 [2018/12/08 13:57:43]
[14:03:36/90779] title Inside Story AU S02E02 Born Bad HDTV x264-CBFM
[14:03:36/90779] link https://eztv.io/ep/1294417/inside-story-au-s02e02-born-bad-hdtv-x264-cbfm/
[14:03:36/90779] language 
[14:03:36/90779] author 
[14:03:36/90779] num_comments: 0
[14:03:36/90779] looking for tags...
[14:03:36/90779] tags found: tv
[14:03:36/90779] done collecting data.
[14:03:36/90779] article hash: 7236b38b1f5e667ad7e46d5d95307c440bafe28a [stored=7236b38b1f5e667ad7e46d5d95307c440bafe28a]
[14:03:36/90779] hash differs, applying plugin filters:
[14:03:36/90779] ... Af_Comics
[14:03:36/90779] === 0.0000 (sec)
[14:03:36/90779] ... Af_Readability
[14:03:36/90779] === 0.0000 (sec)
[14:03:36/90779] ... Af_RedditImgur
[14:03:36/90779] === 0.0000 (sec)
[14:03:36/90779] ... Af_Tumblr_1280
[14:03:36/90779] === 0.0003 (sec)
[14:03:36/90779] ... Af_Unburn
[14:03:36/90779] === 0.0000 (sec)
[14:03:36/90779] ... mercury_fulltext
[14:03:36/90779] === 0.0000 (sec)
[14:03:36/90779] plugin data: af_comics,af_readability,af_redditimgur,af_tumblr_1280,af_unburn,mercury_fulltext,
[14:03:36/90779] matched filters: 
Array
(
    [0] => Array
        (
            [id] => 18
            [match_any_rule] => 
            [inverse] => 1
            [rules] => Array
                (
                    [0] => Array
                        (
                            [reg_exp] => bbc|nhk
                            [type] => title
                            [inverse] => 
                        )

                )

            [actions] => Array
                (
                    [0] => Array
                        (
                            [type] => catchup
                            [param] => 
                        )

                )

        )

)
[14:03:36/90779] matched filter rules: 
Array
(
    [0] => Array
        (
            [reg_exp] => bbc|nhk
            [type] => title
            [inverse] => 
        )

)
[14:03:36/90779] filter actions: 
Array
(
    [0] => Array
        (
            [type] => catchup
            [param] => 
        )

)
[14:03:36/90779] article labels:
[14:03:36/90779] force catchup: 
[14:03:36/90779] base guid found, checking for user record
[14:03:36/90779] initial score: 0 [including plugin modifier: 0]
[14:03:36/90779] user record FOUND: RID: 549495, IID: 549598
[14:03:36/90779] resulting RID: 549495, IID: 549598
[14:03:36/90779] assigning labels [other]...
[14:03:36/90779] assigning labels [filters]...
[14:03:36/90779] looking for enclosures...
[14:03:36/90779] article enclosures:
Array
(
    [0] => Array
        (
            [0] => https://zoink.ch/torrent/Inside.Story.AU.S02E02.Born.Bad.HDTV.x264-CBFM[eztv].mkv.torrent
            [1] => application/x-bittorrent
            [2] => 270584966
            [3] => 
            [4] => 
            [5] => 
        )

)
[14:03:36/90779] filtered article tags:
Array
(
    [0] => tv
)
[14:03:36/90779] article processed

ah right you have inverse rule, not inverse filter - wait, nvm, you don’t. hmmm.

e: i might have made this system a bit too complex, lol

going by your log, filter (id 18) is put into matched filters properly, see right below

[14:03:36/90779] matched filters:

can you check the database? i.e. select * from ttrss_filters2 where id = 18

Reading your previous reply, I assume the timestamp should appear only if the word that triggers the filter is in the feed. Since the word so far has not appeared, you are saying it is correct the timestamp is not updated.

no, that’s not how this works. if the filter is triggered, timestamp should update.

you can also try adding print_r($matched_filter_ids); right after array_map (rssutils.php:784)

As of yesterday, the timestamp keeps correctly updating.

I did nothing, except running feed debugger. Maybe that triggered something… I do not know.
The result of the sql query select * from ttrss_filters2 where id = 18 is coherent.