Possibility of filters for multiple feeds/exclusive of certain feeds

I’m trying to make a filter for all feeds except for one.

For example, if I have one feed about cats, cats.rss, and many other non cats feeds. I want to delete all posts about cats from every feed except the cats.rss feed.

Match
(?i)cat(?-i) on Title in All feeds except cats.rss
or
(?i)cat(?-i) on Title in (news|politics).rss
Delete article

Those are not possible, of course. I tried doing the inverse:
(?i)cat(?-i) on Title in cats.rss
✓Inverse regular expression matching
Delete article
✓Inverse matching

…but I think I’m just being ridiculous.

The only other way I can see to do this is for each feed to have its own rule filtering out cats. That can become hard to maintain with many feeds - is a better way to do this?

What if you did something like:

\bcats\b on Title in All feeds
OriginOfCatsWebSite\.tld on Links in All feeds (inverse)

I guess the idea is to match all “cats” except those whose link contains “OriginOfCatsWebSite.tld”.

A plugin can also filter this at a more granular level. With that you could be quite specific about what you did/did not want.

Oh, that’s a good idea. Thank you.

A plugin might also be good practice for me. I’ll see if I can wrap my brain around that too.

Why not create Catagories for your feeds. In one just put your “cats.rss” feed and then just apply a filter to that catagory and then put your other feeds into another catagory and apply other filter(s) to the non-cat feed catagories. That’s what i do for my feeds (none are cat realted though) :smile:

Then if and when you add/delete feeds and/or modify filters, it’s easy to maintain.

Just My 2 Cents

I confess, I don’t actually have cat feeds :smile_cat:

That’s a good idea. I thought about that, or with tags. Maybe if there were wildcards or hierarchical categories of some sort? I think a feed can be in only one category so I would have to choose carefully.

Right now I’m using tt-rss as a news feed sort of. So, for example, I might have the following mock hierarchical categories (in hopes of having the skills to make a plugin one day):

cats/aww • (somesource1) • (somesource2) cats/recipes • (somesource3) dogs/funny • (somesource4) news/world/catmanistan • (somesource5) • (somesource6) ...

I only want cat news from cats/ categories but nowhere else. Because there are 2 cats/ categories I would need two filters I think?

For now I’m following @JustAMacUser’s excellent advice:
\bcats\b on Title in All feeds somesource1|somesource2|somesource3 on Links in All feeds (inverse)

It works pretty well until I can level up a bit!

cats/recipes

slowly backs away

I’m trying to get (what I thought was) a simple filter to work and it keeps not behaving the way I expected it to. I want a filter to label everything except the cats category. Not sure if it’s the best way to do this, but I’m using a filter that takes “. on Title in cats” and assigns a tag to it of cats (this seems to work). I then have another filter that takes “cats on Article Tags in All feeds” (with inverse matching) and assigns a label of “Not Cats.” It appears to look okay when I use the Test button, but when I save it and go to some feeds and do a fD, articles in the cats category are ending up both with the cats tag and in the “Not Cats” label. I’ve tried both “cats on Article Tags in All feeds” and “\bcats\b on Article Tags in All feeds.”

I’m being dumb and missing something really simple; aren’t I?

cats
• (somesource1)
• (somesource2)
dogs
• (somesource3)
rabbits
• (somesource4)
frogs
• (somesource5)
• (somesource6)

you won’t be able to make filters depend on each other like that, all filters are considered first and then applied to the article if it matches during a single operation.

filter on article tags is going to match tags originally present in the feed (that’s how it works on every other criteria too).

e: you can apply a non-cats tag by excluding cats category using an inverse filter, this should work i think. if you want to actually browse this later i recommend using labels.

Ah, I misread the Filters screen. I saw “Reset sort order” and for some reason thought that would translate to execution order.[quote=“fox, post:8, topic:178”]
e: you can apply a non-cats tag by excluding cats category using an inverse filter, this should work i think. if you want to actually browse this later i recommend using labels.
[/quote]

That’s actually what I was trying first, but if I tried something like “. on Title in Cats” then turn on Inverse Matching (at the filter level), the Test returns 0 results. I’m guessing it looks only inside the Cats category in that case. Same thing if I turn on Inverse at the rule level and off at the filter level.

In both cases, the intended result of the Filter was to apply a “Non-Cats” label so I was on the right track but I just can’t get it to execute the way I wanted. I know regex isn’t really “built” for inverse.

Apologies for flooding OP with not-really-related responses.

e: What I’ve done for now is created a filter that has rules for each non-Cats category (ie. “. on Title in Dogs”, “. on Title in Rabbits”, “. on Title in Frogs”) with Match Any Rule turned on. Seems to be doing the trick for now, but I’d love to find a way to get the exclusion working in case I make any new categories in the future and forget to add it to the filter.

always test filters using f D. test thing is i’m afraid not accurate at all times, especially if there’s edge cases.

A-ha! I just built a new filter to apply a label using 2 rules:

  1. “. on Title in Cats” (Inverse)
  2. “. on Title in All Feeds”

It looks like it’s doing what I want when I manually f D a few feeds from each category (obviously you are right - Testing is not accurate) Now at the risk of being too needy: is there a way to force all feeds to refresh/rehash, or will the scheduled updates take care of the old articles automatically as well?

i think the easiest way to force everything to rehash is to enable a random plugin, otherwise you’ll have to run everything through the debugger (either f D or update.php --debug-feed).