Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.prefs.browseHttpFile
on browseHttpFile (url, ctCacheSeconds=3600, flNeuterMacros=true) {
<<Changes
<<2/5/02; 11:45:03 AM by PBS
<<Conditionalized to work in Frontier.
<<11/23/01; 12:25:25 PM by DW
<<Created. Reads an OPML file via HTTP and runs it through the browser.
local (flread = true, adrincache);
bundle { //set flread, adrincache
if not defined (system.temp.radio) { //PBS 02/05/02: this table may not exist in Frontier
new (tableType, @system.temp.radio)};
local (adrcache = @system.temp.radio.outlineCache);
if not defined (adrcache^) {
new (tabletype, adrcache)};
adrincache = @adrcache^.[url];
if defined (adrincache^) {
if (clock.now () - timeModified (adrincache)) < ctCacheSeconds {
flread = false}}};
if flread {
local (xmltext = tcp.httpReadUrl (url));
if flNeuterMacros {
if system.environment.isRadio { //PBS 02/05/02: conditionalized to work in Frontier
xmltext = string.replaceall (xmltext, "<%", "<%")}
else {
xmltext = string.replaceall (xmltext, "{", "{")}};
op.xmltooutline (xmltext, adrincache);
settimemodified (adrincache, clock.now ())};
return (radio.prefs.browser (adrincache))}
<<bundle //test code
<<browseHttpFile ("http://radio.weblogs.com/0001015/gems/todolist.opml")
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.