Kurt McKee

lessons learned in production


Hey there! This article was written in 2009.

It might not have aged well for any number of reasons, so keep that in mind when reading (or clicking outgoing links!).

listparser 0.9 - "Celery wolves"

Posted 3 October 2009 in listparser

I'm very pleased to announce that listparser v0.9 is now available! There are some big changes in this release.


listparser now supports RDF+FOAF, an XML-based subscription list format that the vast majority of Planet-based websites produce. If you like reading what the Pidgin developers are up to, keep in mind that Pidgin Planet has a FOAF blogroll. Or if you're an RDF junkie, Planet RDF has a FOAF blogroll. So do Planet Gnome, Planet Ubuntu, and Planet Mozilla.

Adding support for another format was exciting, but it prompted me to finally fix an issue that had been bothering me.


A while back I discovered that Wordpress-based blogs can output an OPML version of the links in the blog sidebar. What I noticed, however, was that most blog owners only put in the linked blog's homepage, and not its feed URL.

While implementing RDF+FOAF support I discovered that the same problem could exist in that format (see Planet Freedesktop's FOAF blogroll for an example). Thus, I decided to save those homepage URLs.

The way I see it, software can either choose to beat users over the head for problems they neither understand nor have any way to fix, or it can do its best to handle the problems gracefully. By storing those homepage URLs, feed readers that use listparser have the opportunity to run feed and subscription list autodiscovery software against those homepage URLs. Obviously they don't have to, but its an opportunity for the feed reader to help the user, rather than hinder them. Its for that reason that I called the set of homepage URLs "opportunities".

distutils support

At long last, listparser can be easily installed using the standard Python distutils. Rather than just copying listparser.py somewhere in your path, you can now just install it like any other piece of Python software:

$ python setup.py install

It's just as easy as that.

In closing

listparser has become much more mature; there is exactly one more significant shortcoming that I'm aware needs to be addressed (you can look at Planet KDE's broken FOAF blogroll to see exactly what listparser -- like Firefox -- will not handle). However, I think I'm going to take a break from listparser and recharge my batteries.

listparser is a Python library that parses subscription lists (also called reading lists) and returns all of the feeds and subscription lists that it finds. It currently supports OPML, RDF+FOAF, and the iGoogle exported settings format.

[listparser homepage]
[listparser downloads]

☕ Like my work? I accept tips!