/bottle-fever

A clean-room clone of the Fever RSS aggregator, focusing on the API

Primary LanguagePython

bottle-fever

A clean-room clone of the Fever RSS aggregator, focusing on providing a compatible API and a simple but scalable feed store and fetcher based on SQLite or Postgres (using the Peewee ORM)

Project Status (May 2014)

This is ON HOLD -- i.e., usable and reasonably updated, but I have decided I'd rather read my RSS feeds as mail and moved on to use rss2imap, which was a more cost-effective hack.

I am preparing to incorporate portions of this into rss2imap-gae, which is a completely different thing in more ways than one, so look there for news.

Nevertheless, this codebase has served me well in terms of exploring ways to parallelize feed fetching -- I suggest you explore the available branches to get a feel for the different strategies I employed.

Target Features

  • Multi-user support
  • Compatible with Reeder apps on iOS and Mac OS X
  • URL expansion (i.e., no more junk URLs)
  • Grouping of similar items
  • Junk filtering (automatic elimination of redundant news items)
  • Page extraction from link-only feeds

Stuff I don't intend to do

  • A full-featured web interface (feel free to add your own)

Related Work

  • Coldsweat, by Andrea Peltrin, is a much nicer, polished solution if you're looking for something like this. And yes, there's a nice web interface in there, too.

Technical underpinnings

  • SQLite database (trivial to replace if you want to scale up, since I use the Peewee ORM)
  • Bottle web framework
  • gevent for parallel feed fetching
  • Uses Mark Pilgrim's feedparser as a fallback to HiiDef's speedparser
  • Pick your own HTML parser (lxml, html5lib, html.parser)
  • A nice bowl of BeautifulSoup