/* Do not remove the headers from this file! see /USAGE for more info. */ #include <ports.h> private string lobotomize (string s) { s = lower_case (s); return s; // s = replace_string (s, "[","\\["); // return replace_string (s, "]","\\]"); } private string get_mudlib (string s) { switch (s[0..3]) { case "Lima": return "<a href=http://lima.mudlib.org:7881>Lima</a>"; case "Nigh": return sprintf("<a href=http://www.imaginary.com/LPC/Nightmare/>%s</a>", s); case "Disc": return sprintf("<a href=http://www.imaginary.com:5678/>%s</a>", s); case "Tmi-": return sprintf("<a href=http://130.89.226.53:5550/>%s</a>", s); default: return s; } } private string mail_link (string s) { if (s == "unknown") { return s; } return sprintf ("<a href=mailto:%s>%s</a>", s, s); } string main (string pattern) { string ret = ""; mapping mudlist = IMUD_D->query_mudlist (); mapping upmuds; int nummuds = sizeof (mudlist); string mudname; mixed array data; if (!pattern) pattern = "*"; pattern = replace_string(pattern, "+", " "); pattern = lower_case (pattern); if(pattern[0] == '=') pattern=pattern[1..]; pattern = "^" + M_GLOB->translate (pattern, 1); mudlist = filter_mapping (mudlist, (: regexp (lobotomize($1), $(pattern)) :)); if (!sizeof (mudlist)) { return sprintf ("<h3>No muds out of %d match your pattern.<h3>", nummuds); } if (sizeof (mudlist) != 1) { ret += "<h3>Which of the following muds are you looking for?</h3>" "<br><font size=+1><em>"; foreach (mudname in sort_array (keys (mudlist), 1)) { // ret += sprintf ("<a href=http://%s:%d/cgi/mudinfo.c?=%s$>%s</a><br>", // __HOST__, PORT_HTTP, mudname, mudname); ret += sprintf ("<a href=mudinfo.c?=%s$>%s</a><br>", replace_string(mudname, " ", "+"), mudname); } return ret + "</em></font>"; } foreach (mudname, data in mudlist) // there's only 1 { ret += sprintf ("<TABLE BORDER=5><caption><h2><a href=" "telnet://%s:%d>%s</a></h2></caption>" "<TR><TH>Type</TH><TD>%s</TD></TR>" "<TR><TH>Current Mudlib</TH><TD>%s</TD></TR>" "<TR><TH>Base Mudlib</TH><TD>%s</TD></TR>" "<TR><TH>Server</TH><TD>%s</TD></TR>" "<TR><TH>I3 Status</TH><TD>%s</TD></TR>" "<TR><TH>Playability</TH><TD>%s</TD></TR>" "<TR><TH>Admin email</TH><TD>%s</TD></TR>" "</TABLE>", data[1], data[2], mudname, data[8], data[5], get_mudlib (data[6]), data[7], data[0] == -1 ? "Connected" : "Not connected", data[9], mail_link (data[10])); } return ret; }