Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.mainResponder.discuss.everyNight
<<8/12/99; 4:50:09 PM by DW
<<loop over all the discussion groups, building a table of statistics for them
<<there's a new sub-table for each discussion group, called stats
<<inside that table is a table called rankings
<<the name of each item in the table is the id of a message
<<the value is the number of reads for the message
<<the table is sorted in inverse order, the last item in the table is the most read
<<Changes:
<<10/2/99; 11:11:08 PM by PBS
<<An item in discuss.root may be an address or a string that can be coerced to an address. This address may point to discussion group storage outside of discuss.root.
local (adrroot = @[system.temp.mainresponder.discussrootfile], ct = sizeof (adrroot^), i, adrgroup);
for i = 1 to ct {
adrgroup = @adrroot^ [i];
msg ("Ranking discussion group \"" + nameof (adrgroup^) + "\"");
case typeOf (adrgroup^) { //PBS 10/2/99: support for addresses in discuss.root
addressType;
stringType {
if defined (adrgroup^^) {
adrgroup = adrgroup^} //de-reference to get the address of the discussion group
else {
continue}}}; //a bad address shouldn't stop the rankings of the other groups
local (adrstats = @adrgroup^.stats);
if not defined (adrstats^) {
new (tabletype, adrstats)};
local (adrrankings = @adrstats^.rankings); new (tabletype, adrrankings);
local (adrmessages = @adrgroup^.messages, ctmessages = sizeof (adrmessages^), j, adrmessage);
for j = 1 to ctmessages {
adrmessage = @adrmessages^ [j];
adrrankings^.[nameof (adrmessage^)] = adrmessage^.ctReads};
local (oldtarget = target.set (adrrankings));
msg ("Sorting discussion group \"" + nameof (adrgroup^) + "\"");
table.sortBy ("Value");
target.set (oldtarget)};
filemenu.savemyroot (adrroot);
msg ("")
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.