Monday, November 08, 2010 at 12:07 AM.


on bootstrap (url) {
		<<11/25/01; 8:51:03 AM by DW
			<<Takes a parameter, the url is no long hard-coded.
			<<Don't create the service table if it's already defined. (Don't want to wipe out stats or history, otherwise the user will get repeats of stories that have already appeared.)
		<<11/8/01; 9:44:25 AM by DW
			<<The aggregator is being launched for the first time.
			<<Read the virgin services list, and do a scan.
	local (adrdata = xml.aggregator.init ());
	local (xmltext = tcp.httpReadUrl (url), xstruct);
	xml.compile (xmltext, @xstruct);
	local (adropml = xml.getAddress (@xstruct, "opml"));
	local (adrbody = xml.getAddress (adropml, "body"));
	local (outlinelist = xml.getAddressList (adrbody, "outline"));
	local (adr, xmlurl, adrservice);
	for adr in outlineList {
		xmlurl = xml.getAttributeValue (adr, "xmlUrl");
		adrservice = @adrdata^.services.[xmlurl];
		if not defined (adrservice^) {
			new (tabletype, adrservice)}};
	xml.aggregator.readAllServices ()}
<<bundle //test code
	<<bootstrap (

This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.