blob: 013e87b4cd2a8b5e1188711823c9d775ee1a7981 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// MorgenGrauen MUDlib
2//
3// www.who.c
4//
5// $Id: www.who.c 8755 2014-04-26 13:13:40Z Zesstra $
6
7#pragma strong_types
8#pragma combine_strings
9
10#include <config.h>
11#include <properties.h>
12#include <www.h>
13
Zesstrabe894b42019-11-27 19:56:32 +010014string MakeLink(<object|string>* entry)
MG Mud User88f12472016-06-24 23:31:02 +020015{
16 string nm;
17 int idx;
18
19 entry[1] = regreplace(entry[1], "<", "\\&lt;", 1);
20 entry[1] = regreplace(entry[1], ">", "\\&gt;", 1);
21 nm = getuid(entry[0]);
22 if(nm == " R O O T ") return "<TT>"+entry[1][0..2]+"</TT>"+entry[1][3..];
23 idx = strstr(lower_case(entry[1]), nm);
24 return "<TT>"+entry[1][0..2]+"</TT>"+entry[1][3..idx-1]
25 + "<A HREF=\""+MUDWWW+"?"+REQ+"="+R_FINGER+"&"+USER+"="+nm+"\"><B>"
26 + entry[1][idx..idx = idx+sizeof(nm)]
27 + "</B></A>"
28 + entry[1][idx+1..];
29}
30
31string Request(mapping cmds)
32{
Zesstrabe894b42019-11-27 19:56:32 +010033 if (!sizeof(cmds))
34 return ERROR("Anfrage ung&uuml;ltig!");
35 // Wer-Liste abfragen
36 <object|string>** list = WHO;
37 int size=sizeof(list);
38 string *who = allocate(size);
39
40 // Listenreihenfolge umkehren.
41 foreach(int i : size) {
42 who[i] = MakeLink(list[<i+1]);
43 }
44
MG Mud User88f12472016-06-24 23:31:02 +020045 return "<H2>Wer ist gerade in "MUDNAME"?</H2><HR>"
46 + "<OL><LI>"+implode(who, "\n<LI>")+"</OL>";
47}