Monday, November 08, 2010 at 12:04 AM.

system.verbs.builtins.mainResponder.search.server.logBrowserIndexer

on logBrowserIndexer (linecount, colors) { //a macro that returns HTML for the log
	local (adrlog = log.getGuestSubTable ("Search Engine Indexer"));
	linecount = number (linecount); //I keep getting bit by this, when called thru a macro, it's a string DW
	
	local (htmltext = "", indentlevel = 0);
	on add (s) {
		htmltext = htmltext + string.filledString ("\t", indentlevel) + s + "\r"};
	on td (s) {
		return ("<td><font size=\"-1\">" + s + "</font></td>")};
	
	local (i, j, adrhourtable, adritem, sizelog = sizeof (adrlog^), ixlog, sizehourtable);
	add ("<table width=\"92%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"); indentlevel++;
	
	<<Add headers.
	add ("<tr>");
	indentlevel++;
	add ("<td height=\"28\"></td>"); //a dummy table cell to establish row height
	add (td ("<b>Time</b>"));
	add (td ("<b>URL</b>"));
	add (td ("<b>Site</b>"));
	add (td ("<b>Client</b>"));
	add (td ("<b>Index Name</b>"));
	add ("</tr>");
	indentlevel--;
	
	adrhourtable = @adrlog^ [sizelog]; //generate for the most recent hour
	sizehourtable = sizeof (adrhourtable^);
	ixlog = sizehourtable - linecount + 1;
	if ixlog < 1 {
		ixlog = 1};
	for j = sizehourtable downto ixlog {
		adritem = @adrhourtable^ [j];
		add ("<!-- " + j + " -->");
		local (ixhtmltext = sizeof (htmltext));
		add ("<tr bgcolor=\"" + colors [(j % sizeof (colors)) + 1] + "\">"); indentlevel++;
		add ("<td height=\"28\"></td>"); //a dummy table cell to establish row height
		add (td (xml.convertToDisplayName (nameOf (adrItem^))));
		bundle { //add the title
			local (title = adrItem^.title);
			title = searchEngine.stripMarkup (title);
			title = string.trimWhiteSpace (title);
			if sizeOf (title) > 25 {
				title = string.mid (title, 1, 25) + "..."};
			local (url = adrItem^.url);
			url = string.nthField (url, '@', 1);
			add (td (html.getLink (title, url)))};
		add (td (html.getLink (adrItem^.siteName, adrItem^.siteUrl)));
		bundle { //add the member name, if we have it, otherwise do a DNS lookup
			local (client = adrItem^.client);
			try {client = tcp.dns.getDomainName (adrItem^.client)};
			add (td (client))};
		add (td (adrItem^.indexName));
		add ("</tr>"); indentlevel--};
	
	add ("</table>"); indentlevel--;
	
	return (htmltext)}



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.