/* 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;
}