RSS Growler

So at work we use a combination of subversion for source code control and Trac to… well, to provide an RSS feed I think. I actually don’t know why we use Trac specifically, since I don’t think we use any of its other features other than the commit notification stuff. In any case, one of the best features of Trac is its ability to create an RSS feed for any individual sub portion of your source tree. In case you are wondering why this is excellent — well, getting hundreds of commit e-mails for every commit to projects you don’t really care too much about, combined with the fact that I find commit e-mails to be kind of annoying due to them interrupting my general workflow, means that I was quite looking forward to when our group was going to switch to subversion and use Trac. Unfortunately after this happened, I was unable to use an RSS reader until the sys admin re-enabled http authentication (web authentication forms are evil!), as all of the server is password-protected. And even after this got fixed, I tried pretty much every RSS client out there (I was used to using Pulp Fiction, but it really just treats RSS feeds as e-mails, more or less). One of my requirements was Growl support, since that seemed like it would make my life much easier: to get a Growl notification for every commit. I really liked the idea of RSS Menu, but it was kind of inadequate in this regard — it simply sent a “new feed item received” typed Growl notification. This was mostly unhelpful. For a few days, I tried NewsFire (which is really annoying by the way, if you haven’t paid for it. If you want to try it out, it continually bounces its dock icon every few hours telling you to register — it would be nice if it didn’t do this until you had at least tried the app for a couple of days). NewsFire was pretty cool (and impressively shiny!), since it did pretty much what I wanted with Growl, but even still I liked the idea of the app being more minimalist like RSS Menu.

My first thought was to e-mail the RSS Menu author, in the hopes that he would be amenable to making the Growl changes I wanted. He was quite nice in telling me that he was rewritten portions of the app and that it might be awhile. Oh well. My second thought was, “well, how hard can it be to write an RSS Reader?” I had already done something simple in the past using libxml2 on Linux, in order to automatically torrent files from and RSS feed based on regex matching. I figured I could just use this source as a starting point, and everything would be great.

Well, one weekend later (and a couple of days of testing), I bring to you the new app RSS Growler. It’s powered by core data (quite fun to use, once you understand how it works), web kit, and Growl. It works impressively well, and is extremely shiny because it is designed specifically with trac RSS feeds in mind (although it will probably working fine with other RSS feeds as well).

It is pretty cool in that it manages multiple feeds and takes the top most recent feeds, showing them in the main drop down menu, with older feeds in submenus (it is a menubar app, like RSS Menu). It recognizes if your feed is a trac feed and parses it, finding web links in the commit log and displays them as sub menu items with regards to the main feed item. For each item in the top most recent feeds, it automatically gets the item via web kit and caches it to your hard drive as a safari webarchive. Then when you click on the link, it opens up the cached version of the page. It displays all of the information you need in the Growl notification (revision number along with author, and the commit log), and it has the option of show each separate feed as a separate item in Growl, so that you can customize the display per feed.

The one caveat is that you want to make sure you use a trac feed that has verbose=on in the query string, which you can do by customizing the display of the revision log before clicking the RSS button in safari to get the RSS link — this way you get the entire commit log and not just the first sentence or so.

Anyway, I think it’s really great, and so have some other people — so visit the RSS Growler page now!

28 Responses to “RSS Growler”

  1. Jay Tuley says:

    Hey does this mean, you’ll setup an rsync cron job on charon to pull the niceplayer repository from sourcforge, so we can use it under trac?

  2. Coty says:

    How fortuitous. I was about to hack together something for just this purpose (showing Trac commits via Growl), but my preparatory google brought me here. Certainly better than what I would have done. The lazyweb triumphs again.

    Thanks.

  3. Zokdok says:

    I can’t get RSSGrowler to work, when I enter any url of my project, it shows some red text next to the add and remove buttons.

    line 6 column 408 – Warning: inserting “…
    or
    line 6 column 532 – Warning: trimming empty …

    Line and column differ from the url I use, but I’ve tried using the project root as url to the direct rss link as url.

  4. Robert Chin says:

    Zokdok: You need to actually enter the feed url for the source tree you want to see — so you need to go to “Browse Source” in RSS, find the folder (and included subfolders) you want to see the changes on, customize the options (you probably want the “show full log” checkbox, and then get the RSS url from that. So for example, the NicePlayer trunk changes are on the RSS feed url:
    feed://charon.laya.com/niceplayer/trac.cgi/log/NicePlayer/trunk/?verbose=on&format=rss&stop_rev=&limit=100&mode=stop_on_copy

  5. Zokdok says:

    No matter what I try, I keep getting the ‘line 6 column 502 – Warning: trimming empty …’ error message on my own trac installation. Your url does work… There has to be logged in before there is access to the content, could that be a problem (you have included a Login and Password field, so I was thinking it should work).

    The link I’m using is http://trac.[my-domain].nl/yourportfolio/log/trunk/?verbose=on&format=rss&stop_rev=&limit=100&mode=stop_on_copy

    Running Trac 10.4 and RSSGrowler 1.1.

  6. John Craft says:

    I’ve installed version 1.1 and connected my feeds, but after quitting RSS Growler, the app won’t restart. The icon appears momentarily on the menu bar and the process appears momentarily in Actvity Viewer, but they both disappear after about one second. I thought it might have to do with Growl, but I’ve unistalled and reinstalled both apps with the same result–even with only RSS Growler. Am I missing something? I really love the concept and interface, so I’d love to get it working.

  7. Robert Chin says:

    Zokdok: do you have to log in with a web form or through a normal drop down http login dialog? Currently RSS Growler only supports the latter (in fact, all RSS readers available on OS X only support reading feeds from password protected sites if they use http authentication). It is potentially possible to support the other kind of authentication, but it gets a lot more complicated since I would have to essentially display my own web browser window for you to log in. Then I would have to essential steal the login cookie, which may or may not work (since if the site only lets you stay logged in for a certain amount of time, then that is a problem).

  8. Robert Chin says:

    John Craft: Sorry for the delay, I was on vacation for the past few weeks. I’ve fixed the problem, please try out RSS Growler 1.1a.

  9. John Craft says:

    Thanks for the update–it seems like it’s working great!

  10. PiTiLeZarD says:

    Hi,

    First of all, I use you’re software every day and it’s very very usefull for me …

    I have sort of an issue with it … since I quit it (I’ve never done it before …) I’m not able to launch it anymore … It blinks in the bar and nothing happend … I try launching it from the terminal and I get :

    ./Rss\ Growler
    2007-11-12 22:08:32.575 Rss Growler[8012] An uncaught exception was raised
    2007-11-12 22:08:32.575 Rss Growler[8012] *** -[NSCFString replaceCharactersInRange:withString:]: Range or index out of bounds
    2007-11-12 22:08:32.575 Rss Growler[8012] *** Uncaught exception: *** -[NSCFString replaceCharactersInRange:withString:]: Range or index out of bounds
    Trace/BPT trap

    even with the 1.1a version … Have you got a solution to this problem ? Can I remove my configuration files somewhere to free it again and start from nothing ?

    Thank you in advance !

  11. Jack says:

    Hello, is there by any chance, a possibility that you extend RSS growler to support CruiseControl (.rss) ? Thanks

  12. Igloo says:

    I have exactly the same problem as John Craft. Are there any config files I can purge or something? Because downloading version 1.1a doesn’t help for me. I’m running OS X 10.5.3

  13. LK says:

    i’m trying to subscribe a public rss feed, nothing is getting displayed, console shows:

    29.09.08 21:15:08 Rss Growler[28498] *** -[NSURL initWithString:relativeToURL:]: nil string parameter

  14. Kirk says:

    RSS Growl is great. I wanted rss and growl and you did it already. Perfect! thanks.

  15. Robert Chin says:

    LK: Can you tell me what rss feed you’re trying to subscribe to?

    Jack: Is there a reason that CruiseControl doesn’t provide something in a standardized rss format? It looks it’s not really rss format, it’s just some publish/subscribe xml feed. The source is available for RSS growler, so you should be able to modify it to do what you want.

  16. LK says:

    Hi Robert

    Thanks for the reply, the RSS feed is here:

    http://feeds.feedburner.com/MishsGlobalEconomicTrendAnalysis

  17. Charlie says:

    I’ve been having the same problem as “Zokdok”, Getting this weird error message when trying to add password protected feeds. Just figured out something that seems to work for the moment, but may not continue to work.

    My feed url is,
    http://hosted-projects.com/trac/lageoda/geodacenter/log?verbose=on&format=rss&stop_rev=&limit=100&mode=stop_on_copy

    But before adding this, I added,
    http://hosted-projects.com/trac/lageoda/geodacenter/login
    Which invokes the traditional drop down window for auth, RSS Growler authorizes with my keychain password and then I add the above feed, and it works.

    Robert, maybe you could add an extra “Auth URL” to get the credentials straight before loading the feed?

  18. Shawn says:

    Does this still work? I can’t get 1.3 to actually give me any notifications.

    Also, does it work with the RSS feed from the Trac Timeline?

  19. Robert Chin says:

    Shawn: It should work, I use it on a daily basis at work. It should work with any RSS feed, actually — not just trac feeds.

  20. Brad says:

    It doesn’t work with all RSS feeds. Here are some that just show up as empty:
    http://feeds.feedburner.com/SlickdealsnetFP
    http://www.allthingsdistributed.com/atom.xml

  21. Robert Chin says:

    I’ll take a look and see what the problem is with the feedburner feed. Unfortunately, RSS Growler only supports RSS feeds and not atom feeds which is why it does not work with the allthingsdistributed.com feed.

  22. Hi Robert,

    I’m seeing some issues with the newest version of RSS feeder where it doesn’t seem to be going to feeds correctly. I copy and paste in the correct link when I make a subscription but when the feed is updated nothing happened and when I try and click on the feed it doesn’t take me to the correct link (It used to do this) Any thoughts on this? I’ve tried resetting all the prefs I could find and did notice an weird issue where I had to delete the old sql file to even get the app to launch.

    Thanks,

    Jordan

  23. Flo says:

    oh and I have RSS Growler 1.4 and Growl 1.3

  24. Hello Mr. Chin!

    I use Growl 1.3.3 (Lion) – RSS Growler does not work. 🙁
    what do I have to do around to modify?

  25. jackzone says:

    Hi Robert,

    thanks for this tool!

    Just updated to 1.5, but now have a problem with a feed that did work under 1.4. Could you please take a look at this feed: feed://schwarzesbrett.bremen.de/sixcms/detail.php?template=01_rss_feed_d&contentId=28582

    Greetings from Germany,
    jackzone

  26. Trying to use RSS Growler on a self signed https link. Trying to get my jenkins updates. But it’s saying invalid certificate. Can we get it to work on self signed certs?

Leave a Reply