Author: dgc@uchicago.edu
Date: 2013-03-18
Copyright: David Champion and University of Chicago
Version: 0.1
Manual section:1
Manual group:


feedmonger [-f config.ini] aggregate

feedmonger [-f config.ini] parse [options] arguments

feedmonger [-f config.ini] serve [address][:port]

feedmonger [-f config.ini] summarize [options] arguments

feedmonger [-f config.ini] write directory


Feedmonger is a smart aggregator. It consumes one or more RSS, CDF, or Atom feeds (anything that Python's feedparser module can understand), discovering articles among all feeds and producing new feeds which are defined by the user as a logical intersection of all source feeds.

Configuration is straightforward, and in the familiar .ini format. Define source feeds by giving each a shorthand name, and declaring its origin URL.

Published feeds are defined by:

  • a shorthand name
  • a list of sources (the short names associated with source feeds)
  • a title
  • a link (optional)
  • a description (optional)
  • a filter expression to select articles from sources (optional)

Published feeds may be written to output files, or served through a web server. The web service is WSGI, and can run either standalone or under mod_wsgi or another WSGI bridge.

A filter expression is written in a logical postfix notation. Each term of the expression leaves a boolean value on an internal evaluation stack, and the final value when all terms have been evaluated indicates whether an article is accepted. Terms may examine properties of an article or perform logical operations on the stack. Complex decisions are therefore possible; see the example feeds.ini file for ideas.


  • 'futures' module ** OSX: sudo port install py-futures
  • 'feedparser' module ** OSX: sudo port install py-feedparser
  • 'PyRSS2Gen' module ** OSX: easy_install PyRSS2Gen


  • Documentation is quite insufficient.