+FIXME: redo sorting hack in feedparser.
+
+If rawdog crashes while updating a feed, it shouldn't forget the feeds it's
+already updated. Perhaps have an exception handler that keeps a safety copy of
+the state file and saves where it's got to so far?
+
+Improve efficiency -- memoise stuff before comparing articles.
+
Detect duplicate articles (BBC News).
Detect edited articles by guid.
Review expiry logic: is maxage=0 the same as currentonly?
-Escape characters in text/plain?
-
Plugin that gets run on new articles.
OPML listing -- needs feed type.
Add a needs_update() method to Feed; make Rawdog call that on all the feeds
(when not being forced) and then call update() on each of them that needs it.
-Make feedparser take a urllib2.Opener rather than proxies etc.
-
Where articles can be shown to have been updated (by unique ID), only show the
latest version.
For next release:
- generalise templating (so the show template option takes a name, etc.)
-- remove Article compat methods
-- remove old option parsing
-- add date to Article hash
- require Python 2.3; kill 2.2 urllib2 workaround
- use unicode.encode('ascii','xmlcharrefreplace') if possible?