Filters organisation / policy


Hi, I’m trying to configure filters and I think I’m missing something about the way filters work.

To me, TTRSS is designed to extract articles, according to filters, from a huge load of feeds. To me extract means delete the articles that don’t match any filter. In the actions list of the filters there is a delete article option but no extract from feed. So I suppose that the default behaviour of TTRSS is to import all the articles from all the feeds, maybe delete only a few of them, and then use the tags, scores and labels to sort them and highlight the most interesting ones. Am I right?

I would like to delete a vast majority of the articles (to save storage space and make the interface more clear), except the ones containing given keywords, and then use the flags, scores, etc.

I first tried to set a filter with one rule per keyword, set the action to delete article, and set the inverse flag. That works but there is only one filter, and the nice interface displaying the filters settings looks pointless (that’s what make me think this is not the proper way).

Then I tried to set one filter per keyword, and set the action to Stop / Do nothing (means import the article to me), and then set a final filter that will match all the articles (that don’t contain any of the keywords, as they went through all the previous filters without triggering the Stop / Do nothing action) and set the action to Delete article. I put no rule in this last filter, and ticked the inverse flag, the test button returns 100 articles, which I understand means the filter matches every single article. This way of doing doesn’t work: all the articles are imported.

What’s the proper way to organize filters?


you don’t really need inverse matching. a list of filters like this should work:

  1. a bunch of keywords/rulesstop / do nothing
  2. .* (i.e. catchall regexp) → delete article

delete filter should be the last one.

a filter without any rules won’t work when processing articles. preview results might be slightly incorrect there.

i also suggest you test any filter-related stuff using feed debugger (f D) which would show you exactly how everything is being matched.


Of course. That works perfectly, thanks!