Muting RSS Items with Feed Wrangler and Workflow

It's been awhile since my latest entry and when I was thinking about workflows I've been using, I kept circling back to one very specfic workflow that I spent quite a bit of time perfecting, but I imagine is incredibly niche.

Let me explain.

For those that don't know, I am a part of the Suicde Squadcast podcast network. I take my comic book media very seriously. I am subscribed to the RSS feeds of a number of comic sites, or sites that frequently report on comic media news. However, in direct conflict with this, I like to go media dark for movies around 4-5 weeks before they release. I avoid all clips, any last minute tv spots, reviews, etc. I use Tweetbot for Twitter, allowing me to easily customize as many filters as I want for tweets with specfic words to be muted.

For RSS though, it's harder. I know that right now you're thinking I could just NOT read those articles. But the reason that doesn't work for me is because many of sites I follow, are TERRIBLE when it comes to avoiding spoilers in their headlines.

My RSS feeds are synced with a service called Feed Wrangler. Yes, there are free services that do this, but at $19/year it's practicatlly free for me anyway based on how often I use it. I like the service to sync because then I can read it on both iOS and macOS.

This is where we get into my workflow. I started developing this to avoid spoilers for Wonder Woman, and really got it nailed down for Spider-Man: Homecoming.

Feed Wrangler has a developer's api which I call in workflow. The basic premise is I do an API request for any unread items, i compare it to bank of words, and any items that match are marked "read" by another API call. So when I go into my RSS app and sync it, I never have to see those.

When you first launch the workflow it will ask for your Feed Wrangler api token, which you can get from the website. I think the easiest way is to just log in to your account and then you can get the token out of any of the examples.

After your token is entered, you see a text box containing the words you want to hide. I have it set up so that each line is a new term. The text field is then split up and re-combined with a pipe character separating the words. Technically I could just do that at the start, but from a visual perspective I prefer the list.

After determining the words to mute, I do an API call to get a list of all my Unread items. The results are returned in JSON and one of the values this can give is the Count. If this count is zero then there is nothing else to go through and the workflow ends, takes me into Reeder (my RSS app of choice) and it will show a notifcation stating there are no unread items.

If Count is larger than zero, I use the Get Dictionary Value to pull the feed items, and run a Repeat with Each to get the title of each. Using Regular Expressions (which frankly took longer for me to figure out than it probably should have) that title is matched against my word bank. If a match is found then the Feed ID Number for that item is added to a list (via Add to Variable).

After all the feed items have been compared to the word bank, any matches are combined into one entry so a single API call is all thats needed to mark those as read (earlier versions of my workflow did individual calls per item. This way is much quicker). After that call, it takes me into Reeder and tells me how many items were marked read out of how many there were to begin with.

Like I said, this is incredibly niche but it served as a way for me to both practice using web APIs as well as avoiding spoilers.

If you're interested in the Workflow you can get it here. If you have ways to improve it then please let me know on twitter @brentacPrime