sqX ȭoȭo {FFFF000000060001001777AA000000000071000000001001710000001-7FFF6FBE18000004800480632200-1394239420632222FFFF0103C30000100000036000000010D840840632181C4028C000276326100002000000DD00000000D8,Conversion, by Andy Fragen, of Dann Sheridan's excellent real-time data receiver scripts into a tool.000400000009000000020DA000050000000A0000000201DA0000600000031000000010920FFFF0900000 20 00070000003500000002010180A10 1018000080000009A0000000140,Verdana40,401C230 10000900000015000000023CC1FA3CC1FA000A0000001500000002632222632222000B00000005000000020000C0000001500000001D83122135B2000F0000005200000000400 10 4,77A4,C4,C4,4,C4,C4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA013x{Vuȭo  "5 AM Y ȭo author Andy Fragen authorEmailafragen@mac.com descriptionX homePageUrl-http://radio.weblogs.com/0001017/publicTools/name Dashboard releaseDateversion0.4 rr VVerdana rr'LANDmac on any (pta) //boilerplate for your responder pta^.responseHeaders.["Content-Type"] = "text/html" pta^.code = 200 //everything was OK pta^.responseBody = "" //build response return (true) V2.rr anyX2.rS <D L condition.(string.lower (path) beginsWith "/dashboard/")enabledmethodsX rr rr Verdana ss'LANDmac This script runs every hour. ^Verdana r )LANDmac This script runs every minute. dashboardSuite.init () dashboardSuite.commands.templatePlace() Verdana st'LANDmac This script runs every night. {w.rs  ". 9 everyHour everyMinute everyNight { tvo cVerdana <'LANDmac dashboardThread.enabled = true dashboardSuite.init () dashboardSuite.commands.dwhpTemplatePlace () 62tj startup( 6RN$t$  fileMenu user RlArial ?'4~l LANDmac Changes 1/15/02; 5:21:20 PM by DW Runs on the user's machine, when refreshing. local (adrtable = @system.temp.dashboardSnapshot) dashboardData = adrtable^.data dashboardInfo = adrtable^.info dashboardSuite = adrtable^.suite dashboardThread = adrtable^.thread dashboardWebsite = adrtable^.website filemenu.savemyroot (@dashboardSuite) local (x = string.parseAddress (@dashboardSuite), f = x [1]) frontier.tools.install (f) dialog.notify ("Thanks for updating.") hB Arial ?4|u^LANDmac 1/15/02; 5:18:06 PM by DW This is the Refresh menu command. local (url = "http://radio.weblogs.com/0001017/publicTools/dashboard/codeFreshener.fttb") local (urllist = string.urlsplit (url)) local (s = tcp.httpclient (server:urllist [2], path:urllist [3])) local (f = frontier.pathstring + "codeFreshener.fttb") file.writewholefile (f, s) fatpages.importfatfile (f) thread.callscript (@system.temp.dashboardSnapshot.loader, {}) hHArial =HVyLANDmac Changes 1/15/02; 5:08:55 PM by DW Created. I run this on my machine to create a package for refreshCode to load. Talk about a Mobius Strip. It's really simple code, but it's fun to walk your mind through it. local (oldDashboardData) bundle //get dashboardData ready for ship oldDashboardData = dashboardData new (tabletype, @dashboardData) dashboardThread.enabled = true dashboardInfo.releaseDate = clock.now () local (adrtable = @system.temp.dashboardSnapshot) new (tabletype, adrtable) adrtable^.data = dashboardData adrtable^.info = dashboardInfo adrtable^.suite = dashboardSuite adrtable^.thread = dashboardThread adrtable^.website = dashboardWebsite adrtable^.loader = dashboardSuite.codeFreshener.loadNewCode local (f =radio.file.getSubFolder("publicTools/dashboard") + "codeFreshener.fttb") file.surefilepath (f) export.sendobject (adrtable, f) f = radio.file.getSubFolder("publicTools/dashboard") + "dashboard.root" target.set (this) fileMenu.saveCopy (f) dashboardData = oldDashboardData dialog.alert (file.filefrompath (f) + " is " + string.megabytestring (file.size (f))) }.R?RG  $0 ? loadNewCodey refreshCode>releaseNewCodeVArial 3x13Verdana w%wH*LANDmac table.emptyTable (@dashboardWebsite.["#glossary"]) "0zVerdana ȭ:-g~LANDmac I'm not sure why I wrote this but I don't think it's called anywhere. (??) on homeTemplate (f, adrFileText, adrRelativePath) msg ("homeTemplate") try if string.lower (f) contains "#homeTemplate.txt" if not defined (user.html.templates.homeTemplate) wp.newTextObject (adrFileText^, @user.html.templates.homeTemplate) user.html.templates.homeTemplate = adrFileText^ "Z Verdana W ]Gkd+LANDmac on templatePlace () local (homeTemplate, baseTemplate, s, adrTemplate, ct) homeTemplate = user.radio.prefs.wwwfolder + "#homeTemplate.txt" baseTemplate = user.radio.prefs.wwwfolder + "#template.txt" templateList = {homeTemplate, baseTemplate} adrTemplateList = {"homeTemplate", "baseTemplate"} ct = 0 for template in templateList ct++ adrTemplate = @user.html.templates.[adrTemplateList[ct]] s = file.readWholeFile (template) try {delete (adrTemplate)} wp.newTextObject (s, adrTemplate) bundle//test templatePlace () .l  )5 CcleanUp!homeTemplateCallback templatePlace VVerdana 22V Verdana ǩ00d>aLANDmac bundle //make sure prefs exist if not defined (dashboardData.prefs) new (tabletype, @dashboardData.prefs) if not defined (dashboardData.prefs.events) new (tabletype, @dashboardData.prefs.events) if not defined (dashboardData.prefs.weblogs) new (tabletype, @dashboardData.prefs.weblogs) if not defined (dashboardData.prefs.events.flShow) dashboardData.prefs.events.flShow = true if not defined (dashboardData.prefs.weblogs.flShow) dashboardData.prefs.weblogs.flShow = true if not defined (dashboardData.prefs.weblogs.time) dashboardData.prefs.weblogs.time = 60 if not defined (dashboardData.prefs.events.time) dashboardData.prefs.events.time = 120 bundle//rename template file local pc = file.getPathChar () oldName = user.radio.prefs.wwwfolder + "dashboard" + pc + "template.txt" newName = user.radio.prefs.wwwfolder + "dashboard" + pc + "#template.txt" if file.exists (newName) and file.exists (oldName) file.delete (newName) if file.exists (oldName) file.rename (oldName, newName) JHVerdana , Nw\r\n"); add ("

Dashboard Directions

") add ("Version: " + dashboardInfo.version) add ("After installing dashboard.root you must quit and restart Radio for the proper changes to be effected.") add ("Dashboard is a conversion of Dann Sheridan's real-time data receiver scripts into a tool.") add ("If you want to add additional dashboard items you can send them to me to be incorporated into this tool or you can roll your own. If you think others might be interested in your dashboard item I would request sending them in for incorporation. Otherwise they may get overwritten with a Refresh Code.") return (html) J*Geneva {mX4 'LANDmac dashboardSuite.menuCommands.refreshCode() Verdana t4Q'LANDmac Dashboard Refresh Code... *Kp*`RVerdana   p>Arial BB#}?jLANDmac on menuCheckText (s, pref) if pref s = "!" + s return (s)  kVerdana |H帘43 |+LANDmac if dialog.confirm ("Get the newest code from Andy's folder?") dashboardSuite.codeFreshener.refreshCode () Z$|Hڸ|L  & menuCheckText,0 refreshCode- VVerdana 2@x2lN Arial EM!/)O)LANDmac 2/16/2001, 1730 EST DS parameters url: url of the page that renders the data of the web service wait: interval between updates in seconds name: name of the iframe border: border for the iframe width: width of the iframe height: height of the iframe scrolling: turns scrolling on and off align: align the iframe with the surrounding text on rFrame(url, wait, name, border, width, height, scrolling, align) local (html ="", interval) interval = wait * 1000 html = "" html = html + "" return (html) 2f&Verdana t.2 ~LANDmac This script returns a string which appears in the Status Center on the Radio UserLand home page. local dwhpMacros = "" eventsUpdate = dashboardSuite.rFrame("http://127.0.0.1:5335/dashboard/viewLogService",dashboardData.prefs.events.time,"Events",0,250,160,"no","top") blogUpdates = "" blogUpdates2 = "" weblogsUpdate = dashboardSuite.rFrame("http://127.0.0.1:5335/dashboard/viewLogUpdates",dashboardData.prefs.weblogs.time,"weblogsCom",0,250,160,"no","top") weblogsUpdate2 = dashboardSuite.rFrame("http://127.0.0.1:5335/dashboard/viewLogUpdates",dashboardData.prefs.weblogs.time,"webLogs",1,250,160,"no","top") on add (s) dwhpMacros = dwhpMacros + s + "\r\n"; if dashboardData.prefs.events.flShow add (eventsUpdate) if dashboardData.prefs.weblogs.flShow add (blogUpdates2) add (weblogsUpdate) add (weblogsUpdate2) return (dwhpMacros) Arial sF@(LANDmac on viewLogService (cnt) local (adrlog = log.getGuestSubTable (radio.data.strings.radioLogName)) local (htmltext = "\r", indentlevel = 0) htmltext = htmltext + "
The " + cnt + " most recent events:
" htmltext = htmltext + "(current time: " + string.timestring() + ")
" on add (s) htmltext = htmltext + string.filledstring ("\t", indentlevel) + s + "\r\n" local (adrhour, adritem, i, j, ct = 0) for i = sizeof (adrlog^) downto 1 adrhour = @adrlog^ [i] for j = sizeof (adrhour^) downto 1 adritem = @adrhour^ [j] local (s) s = s + "" + adritem^.eventType + " : " s = s + radio.string.decodeEntities (adritem^.htmlText) + " : " s = s + date.timestring (xml.convertToDisplayName (nameof (adritem^))) + " : " s = s + adritem^.secs + " sec
" add (s) ct++ if ct >= cnt break if ct >= cnt break htmltext = htmltext + "
" return (htmlText) rVerdana LANDmac on webLogUpdates(ctLogs) local (htmltext = "", ct = 1, changes = "", header = "", xmlChanges) changes = tcp.httpClient(server:"www.weblogs.com",path:"/changes.xml") header = string.patternMatch ("\r\n\r\n", changes) changes = string.delete(changes, 1, header + 3) changes = string.replaceall(changes, "\n", "\r") new(tableType, @xmlChanges) xml.compile(changes, @xmlChanges) adrUpdates = xml.getAddress(@xmlChanges, "weblogUpdates") weblogList = xml.getAddressList(adrUpdates, "weblog") htmltext = htmltext + "
The 10 Most Recently Updated Weblogs from Weblogs.com:
" while ct <= ctLogs local(weblogname = weblogList[ct]^.["/atts"].name) local (weblogurl = weblogList[ct]^.["/atts"].url) local(link = ct +". " + weblogname + "
") htmltext = htmltext + link ct++ htmltext = htmltext + "(" + clock.now() + ")
" return (htmltext) r  !- ;G P\ am r~  background - callbacks codeFreshener>commands init main%menu+ menuCommands.rFrame.statusCenterMessage3viewLogService: webLogUpdates?&6!Verdana uCgLANDmac Changes 1/28/02; 9:13:50 PM by AJF Copied idea from ManilaBloggerBridge, only needs to run once. dashboardThread.enabled = false dashboardSuite.init() dashboardSuite.commands.templatePlace() dashboardSuite.commands.cleanUp() filemenu.savemyroot (this) //save this root never run again! TP.uȭo ctenabledscriptE{TtArial FF2LANDmac on finalFilter (pta) pta^.renderedText = string.replace (pta^.renderedText, "[[title]]", "") return (true) ����������������������������� ���-����Geneva���������������������������� ��������������Eu`Q�������2LAND������mac ������������on firstFilter (adrPageTable) return (true) �����������������������*��[����Geneva���������������������������� ��������������Eu7a���p���L�3*lLAND������mac ������������on pageFilter (pta) if typeOf (pta^.template) == outlineType or typeOf (pta^.template) == wpTextType table.assign (@pta^.template, string (pta^.template)) if typeOf (pta^.template) == stringType and not pta^.indirectTemplate pta^.template = string.replace (pta^.template, "<title>", "[[title]]") html.addPageToGlossary (pta) return (true) �����������������������������������������������y���.���EF�������� ���� ��� ����$���0 ����; finalFilter������G firstFilter������H pagefilter������I}��VGeneva���������������������������� �����������P�E��$����������������������������J�������F������7S�������� ����url��� http://127.0.0.1:5335/dashboard/���J���n�����������������ȣ������VArial����������������������������� ������������������������������������������������n����������W����������������������space���/GIFfGIF89a�������!����,�������D�;��VArial����������������������������� ������������������������������������������������������������_���Verdana��������������������������� ��������������ǣ'�����'�LAND������mac ������������#template "homeTemplate" <h2>Dashboard Directions</h2> Version: <%dashboardInfo.version%><p/> Dashboard is a conversion of Dann Sheridan's <a href="http://radio.weblogs.com/0001134/stories/2002/02/16/turningYourBrowserIntoARealtimeDataReceiver.html">real-time data receiver</a> scripts into a tool.<p/> If you want to add additional dashboard items you can send them to me to be incorporated into this tool or you can roll your own. If you think others might be interested in your dashboard item I would request sending them in for incorporation. Otherwise they may get overwritten with a Refresh Code.<p/> ���������������������������������������V��������������� ������� �������"�������+ ����0���: ����C���L ����Q���[ ����aalink���008000bgcolor���FFFFFFflRenderlink���0000FFspaceGif���spacetext���000000vlink���800080��VArial����������������������������� ��������������������������������������������������n�����������������������VArial����������������������������� ������������������������������������������������n������FFFF000000060001001777AA000000000065000000001001710000001-7FFE6FBE18000004800480611200-10611222FFFF01032000001000000310000000103D840611222028E000611165000020000004200000000�3D,<%["xmlrpc://127.0.0.1:5335/RPC2"].radio.webLogUpdates (10)%>0004000000090000000203F00005000000090000000203F0000600000031000000010920FFFF0900000 30 0007000000190000000102018000080000009A00000001�40,Verdana���������������������������������������������������������40,����������������������������������������������������������������401C230 100009000000150000000239C17D39C17D000A0000001500000002611222611222000B00000005000000020000C00000016000000013D10221015F2000F0000005200000000400 10 �4,77A�4,Cx���4,Cx���4,�����4,Cx���4,Cz���4,����00130000007E00000000DA91F8CE1C1D1E1F7F1B0�44,-��.��������������.��'��"��������������FFFF0FFFF0FFFE000000060001001777AA�LM������������������������������������������=�����������S������/������������������������������������������������������������������������Verdana��������������������������� ��������������ǤǤ������RLAND������mac ������������return (dashboardSuite.main()) ��������������FFFF000000060001001777AA00000000006F000000001001710000001-7EFB6FBE180000048004806171200-101A06171222FFFF010345300001000000380000000104538406171222453028E00016661716000020000045900000000�453,<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <style type="text/css"> body { margin-top: 0px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px; } body, td, p { font-family: verdana, sans-serif; font-size: 12px; } h2 { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 24px; font-weight: bold } .header { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 40px; font-weight: bold } .realsmall { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; } .small { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; } </style> <META HTTP-EQUIV="Expires" CONTENT="Mon, 01 Jan 1990 01:00:00 GMT"> <body> <%bodytext%> </body> </html> 00040000000A000000020455000050000000A0000000204550000600000031000000010920FFFF0900000 20 0007000000190000000102018000080000009A00000001�40,Verdana���������������������������������������������������������40,����������������������������������������������������������������401C230 100009000000170000000231571AF31571AF000A000000170000000261712226171222000B00000005000000020000C00000010000000014530200000F0000005200000000400 10 �4,77A�4,�4,�4,C���4,C���4,�����4,C��00130000007E00000000DA91F8CE1C1D1E1F7F1B0�44,-��.��������������.��'��"��������������FFFF0FFFF0FFFE000000060001001777AA�GG�����������������������������������������S����������3x:������W��������������������������������������������������������j����FFFF000000060001001777AA000000000065000000001001710000001-7FFB6FBE18000004800480611200-10611222FFFF01032500001000000320000000102540840611222028E000611DF000020000002A00000000�25,<%dashboardSuite.viewLogService(10)%>000400000009000000020270000500000009000000020270000600000031000000010920FFFF0900000 30 0007000000190000000102018000080000009A00000001�40,Verdana���������������������������������������������������������40,����������������������������������������������������������������401C230 100009000000150000000239C17D39C17D000A0000001500000002611222611222000B00000005000000020000C000000150000000125102210D92000F0000002100000000400 10 00130000007E00000000DA91F8CE1C1D1E1F7F1B0�44,-��.��������������.��'��"��������������FFFF0FFFF0FFFE000000060001001777AA�''������������������������������������������%����������3x������������������������������������������������������������j��i����FFFF000000060001001777AA000000000065000000001001710000001-7FFF6FBE18000004800480611200-10611222FFFF01032400001000000320000000102440840611222028E000611E0000020000002900000000�24,<%dashboardSuite.webLogUpdates(10)%>000400000009000000020260000500000009000000020260000600000031000000010920FFFF0900000 30 0007000000190000000102018000080000009A00000001�40,Verdana���������������������������������������������������������40,����������������������������������������������������������������401C230 100009000000150000000239C17D39C17D000A0000001500000002611222611222000B00000005000000020000C000000150000000124102210DA2000F0000002100000000400 10 00130000007E00000000DA91F8CE1C1D1E1F7F1B0�44,-��.��������������.��'��"��������������FFFF0FFFF0FFFE000000060001001777AA�'C'P������������������������������������������$����������3x������������������������������������������������������������i��������������7Ȫ�������� ���� ��� �������* ����4���@ ����H���T ����^���j ����q���} ������� ������� ������� ������� ������� ����#filters������K#ftpSite������Le #glossary������L#images������M5 #indexOld�������M#prefs������P#tools������R#viewLogUpdatesOld������Rindex������WWtemplate������X�viewLogService������`viewLogUpdates������e]��VVerdana��������������������������� ������������??8��������������������������� ������������rr��������������� �����������~���rȭo��������������� �������# ����1���= ����P���\ ����o���{ ������� ������� ������� ������� ����� ���'#enabled dashboardData��������X dashboardInfo������� dashboardNodeTypes�������,dashboardResponder�������dashboardRpcHandlers������� dashboardSoapHandlers������� dashboardSuite�������CdashboardThread�������GVdashboardWebsite�������idashboardWindowTypes�������k��V Lucida Grande����������������������������������=������������������������� ��t� ��Verdana��������������������������� ������������#aȭo���h��'�LAND������mac ������������#enabled dashboardData dashboardInfo dashboardNodeTypes dashboardResponder dashboardRpcHandlers dashboardSoapHandlers dashboardSuite background callbacks codeFreshener loadNewCode refreshCode releaseNewCode commands init main menu menuCommands rFrame statusCenterMessage viewLogService webLogUpdates dashboardThread dashboardWebsite dashboardWindowTypes �������k�jT��������������������k�jT�������������������k�jT�������������������k�jT�������������������k�jT�������������������k�jT�������������������k�jT�������������������k�jT�������������������k�k $�������������������k�k $�������������������k�k $��������������������k�k T���������������������k�k T���������������������k�k T��������������������k�k $��������������������k�k $���������������������k�k $���������������������k�k $��������������������k�k $��������������������k�k $���������������������k�k $���������������������k�k $���������������������k�k $��������������������k�jT�������������������k�jT�������������������k�jT������������������������k@xChicago��������������������������?� ���������������� Lucida Grande���������������������� �����������������J��Geneva����������������������������� ����������������^}Chicago��������������������������?� ����������������mnChicago��������������������������?� ���������������� Lucida Grande���������������������� ��������������������������������������������������������������������������������