_RSS_ Collection ======================= This collection provides parsing, transform, network, and configuration support for RSS (Really Simple Syndication) files. The associated servlet allows a user to add, browse, delete, and refresh a set of RSS "channels". A good introduction to RSS is at: http://www.xml.com/pub/a/2002/12/18/dive-into-xml.html?page=1 This version supports RSS versions 0.91, 0.92, 1.0, and 2.0. Support for 0.90 is shaky. Prerequisites ====================== SSAX is used to parse the RSS files. A version for PLT is available at: http://www196.pair.com/lisovsky/download/ssax/ssax-20021009.plt Note that you need a version that contains 'parse-error.ss'; the version noted above has it. Installation ====================== Unwrap the tarball in $PLTHOME/collects. This will create an rss collection. Create the directory: $PLTHOME/collects/web-server/default-web-root/servlets/rss Move the files rss/rssservlet.ss and rss/addchannel.ss to this new servlet directory. That's it! Configuration ====================== The file $PLTHOME/collects/rss/rss-config contains user-configurable parameters: ((paths (datadir "data") (channeldir "channels")) (mychannels ("http://www.infoworld.com/rss/news.rdf" "http://slashdot.org/slashdot.rss")) (refresh 3600) (timeout 10)) The 'mychannels' parameter is a list of feed URLs; this may be edited by hand or (preferably) updated through the servlet. In this inital version 'refresh' and 'timeout' parameters are unused. The 'paths' parameters indicate where the RSS files and any other configuration information will be stored. The 'datadir' parameter should be relative to the rss directory. Startup ====================== Start the web server ($PLTHOME/bin/web-server-text -p 8080, for example), fire up a browser and point to http://localhost:8080/servlets/rss/rssservlet.ss You should see a banner page and some content (old, since the distribution comes with existing RSS files). Click the 'Reload channels' link to get fresh news. 'Add Channel' takes you to a page (ugly, but what are you gonna do?) in which you enter the URL for a feed you want to add. A handy site to find RSS feeds is: http://www.syndic8.com. Use the 'Remove channel' links to do the obvious. Notes ======================= This is an initial release so it's a little raw. Main issues: 1) Channel download is synchronous and on-demand only. 2) Pages are a bit ugly but I'm not a web designer. 3) No user-defined style-sheets. 4) Target URLs are '_self', should be able to configure this. 5) Adding a channel is error-prone and ugly. Should be able to use rss 'cloud' to derive selection lists. 6) No easy way to remove bad or broken RSS URLs from configuration other than by hand editing rss-config. 7) It's a little delicate; need more exception support in the parser and the download components. Questions and comments to: Bruce Butterfield bab@entricom.com