Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.upstream.getServerCapabilities
on getServerCapabilities (adrspec, flAlwaysGetCapabilities = false) { <<Changes: <<11/20/01; 2:36:51 AM by JES <<Get the password from user.radio.prefs.passwords.[passwordName] instead of from the upstream spec cache. <<10/23/01; 10:32:54 AM by JES <<Changed <account> to <usernum>. <<8/15/01; 1:33:08 AM by JES <<Display our own message in the About window, instead of the message displayed by tcp.httpClient. <<7/24/01; 1:51:32 AM by JES <<New parameter, adrspec, is the address of a server specification table. <<New optional parameter: flAlwaysGetCapabilities. If true, always make the RPC call. Default is false. <<New return values: if successful, the address of the server capabilities table is returned. If not successful, false is returned. local (data = adrspec^); if not defined (data.fldebug) { data.fldebug = false}; with data { local (adrServerData = @user.radio.prefs.upstream.servers.[server]); if not defined (adrServerData^) { new (tableType, adrServerData)}; local (adrServerCapabilities = @adrServerData^.serverCapabilities); if not defined (adrServerData^.timeLastServerCapabilities) { adrServerData^.timeLastServerCapabilities = date (0)}; if not flAlwaysGetCapabilities { local (now = clock.now ()); local (flGotWithinLast24Hrs = (now - adrServerData^.timeLastServerCapabilities) > (60 * 60 * 24)); if not flGotWithinLast24Hrs { //ask again, once a day if defined (adrServerCapabilities^) { return (adrServerCapabilities)}}}; msg ("Getting server info: " + data.server); if not xmlStorageSystem.getServerCapabilities (usernum, user.radio.prefs.passwords.[passwordName], adrServerCapabilities, adrdata:@data, flMessages:false) { msg (""); return (false)}; adrServerData^.timeLastServerCapabilities = clock.now (); msg (""); return (adrServerCapabilities)}} <<bundle //debugging <<local (adrTable) <<adrTable = getServerCapabilities (@system.temp.radio.upstreamSpecCache.["Backup:Radio UserLand:www:system:upstream:#upstream.xml"], true) <<edit (adrTable)
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.