Monday, November 08, 2010 at 12:00 AM.
river2Suite.opmlImport
on opmlImport (opmltext) { <<Changes <<12/26/09; 6:06:54 PM by DW <<Declare local variable -- adr. <<9/9/09; 10:15:17 AM by DW <<Rewritten to use new code for reading list support, much simpler and can deal with structured OPML, not just flat OPML. <<Old code <<local (adrdata = river2suite.init (), xstruct) <<xml.compile (opmltext, @xstruct) <<scratchpad.xstruct = xstruct <<local (adropml = xml.getaddress (@xstruct, "opml")) <<local (adrbody = xml.getaddress (adropml, "body"), adr) <<for adr in adrbody <<if nameof (adr^) endswith "outline" <<try <<local (url = xml.getattributevalue (adr, "xmlUrl")) <<river2Suite.subscribeFeed (url) <<else <<adrdata^.stats.lastImportError = tryerror <<adrdata^.stats.whenLastImportError = clock.now () <<6/22/09; 4:50:13 PM by DW <<Created. local (adrdata = river2suite.init (), feeds, adr); xml.rss.getOpmlFeeds (opmltext, @feeds); for adr in @feeds { try { local (url = nameof (adr^)); river2Suite.subscribeFeed (url)} else { adrdata^.stats.lastImportError = tryerror; adrdata^.stats.whenLastImportError = clock.now ()}}} <<bundle //test code <<local (f = "Ohio:OPML Editor stuff:defaultFeeds.opml") <<file.writewholefile (f, op.outlinetoxml (@river2Suite.data.defaultFeeds)) <<local (s = file.readwholefile (f)) <<opmlImport (s)
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.