Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.utilities.getRecentEventLogStats
on getRecentEventLogStats (flIncludeHeader=true) { <<Changes: <<12/12/01; 2:12:57 AM by JES <<Commented out some debugging code. <<11/25/01; 4:02:14 AM by JES <<Created. This script generates a human-readable report from the current day's events log. <<flIncludeHeader, an optional parameter, specifies whether or not to include general info about this copy of Radio. Set it to false when you're concatenating multiple reports into one. local (text, indentlevel = 0); local (fldebug = false); //set this to false when not debugging on add (s) { text = text + string.filledString (" ", indentlevel) + s + "\r\n"}; on getName (id, adrName) { local (adr); for adr in @system.compiler.threads { if adr^ == id { adrName^ = nameOf (adr^); return (true)}}; return (false)}; bundle { //header add ("Radio UserLand recent events for " + user.prefs.name + " run at " + clock.now () + "."); add (""); if flIncludeHeader { add ("About This Installation:"); indentlevel++; add ("Radio version: " + Frontier.version ()); local (os = "Windows"); if system.environment.isMac { if system.environment.isCarbon { os = "Mac OS X"} else { os = "Mac OS"}}; add ("Operating System: " + os); local (osVersion = system.environment.osVersionString); if system.environment.isCarbon { osVersion = string.replace (osVersion, "16", "10")}; add ("OS Version: " + osVersion); add ("IP address: " + tcp.dns.getMyDottedId ()); add ("Email: " + user.prefs.mailAddress); add (""); indentlevel--}}; indentlevel++; local (adrevents = log.getGuestSubTable (radio.data.strings.radioLogName)); local (cthours = sizeOf (adrevents^), ixhour); for ixhour = cthours downTo 1 { local (adrhour = @adrevents^[ixhour]); local (ctevents = sizeOf (adrhour^), ixevent); for ixevent = ctevents downTo 1 { local (adrevent = @adrhour^[ixevent]); add (adrevent^.eventType + ": " + adrevent^.htmltext + " " + adrevent^.secs + " sec")}}; indentlevel--; text = string.htmlToEmail (text); if fldebug { wp.newTextObject (text, @temp.recentEventStatsText); edit (@temp.threadStatsText)}; return (text)} <<bundle //testing <<getRecentEventLogStats () <<getRecentEventLogStats (false)
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.