An RSS/Atom newsreader that sucks less

Canto | Details

Updated for 0.7.x. Older versions here
HOMENEWSFAQSCREENSHOTSDOWNLOADGETTING STARTEDCONFIGGITWEBBUG TRACKERCONTACT
0.7.8
2010-05-20 00:14:00

You can grab the 0.7.8 release from the download page.

Feedparser

Hot on the heels of the 0.7.7 release comes 0.7.8. It's been awhile since there's been a release that's only lasted a week, but in this case it had to happen. Why? Feedparser.

I love feedparser. It really makes my life much easier when it comes to getting feeds. I haven't touched XML with code since I started using it and it's been great. What I don't like about feedparser however is that the venerable Mark Pilgrim that authored it and maintains it has no time to fix or integrate fixes for about a million little bugs.

Right now, the Debian version of feedparser (the one I use everyday) has 14 patches against it. Understandable since the last release of feedparser was in April 2007. Things are bound to break. Arch has got 5. Gentoo, and I'm sure a lot of other distros have 0. So there are a number of versions floating around each with different behavior. I've known about this since Canto started using feedparser.

Over the last year or so a number of people have submitted bugs about this and that, and some of them were serious in that they rendered a feed entirely useless. Like misreporting titles. Or even worse, causing exceptions. Each time I just told them, "I'm sorry, it's feedparser, talk to your distro's maintainer about picking up this patch."

For the most part things were okay like this only because (at least, initially) I thought mpilgrim was going to step up and feedparser 4.2 would be coming out and maybe I wouldn't have to resort to importing the source. Then, in the last week, I got two bug reports from two separate people on two different distros that both came down to feedparser. The clock on 4.1 just passed three years and I've had enough. So I grabbed Debian's feedparser and tossed it into the source.

Now everyone will be on a level playing field and if (or when) someone else reports a bug that traces into feedparser. I can get in there and fix it myself, without having to wait on mpilgrim or the distros. Mission accomplished.

I don't foresee problems migrating beyond, perhaps, some items being marked as unread again because their IDs have changed.

Rendering

The other noticeable improvement on this release is the rendering of content that is explicitly reported as text/plain. Previous to this release, Canto ignored such things and attempted to render basically everything as HTML. It's a strategy that had served Canto well trying to cope with feeds published by moronic broken publishers and most of the time text/plain content wasn't changed in the process. However, this is sort of punishing good feed publishers for the others' stupidity by messing with the spacing of their content.

In particular, things like plaintext logs and the like would show up as a jumbled mess even though the feed declared "hey, don't format this."

So, to stop punishing the good guys, Canto honors the type. This may make bad feeds look like crap, but in that case the user can contact the publisher to complain.

0.7.7 Exception

Twice in the short lifespan of 0.7.7 it was reported that Canto excepted on line 289 of process.py. I didn't fix it directly, but I believe that it was fixed by restoring an accidentally dropped line from 0.7.6. If this isn't the case and you see such an exception, please report it.

Thanks

Lastly, thanks to jaacoppi (the pidwatcher), evg_krsk, and Caleb for reporting bugs for this release.

Have fun! Submit bugs!


Send all bug reports to canto-reader [at] codezen [dot] org
Or come to discuss in #canto on irc.freenode.net