www.news.c-Dateireferenz

#include <www.h>
Include-Abhängigkeitsdiagramm für www.news.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define DBG(x)   tell_object(find_player("hate"), sprintf("DBG: %O\n", x))
#define NEWSD   "/secure/news"
#define N_GROUP   0
#define N_AUTHOR   1
#define N_TID   2
#define N_DATE   3
#define N_TITLE   4
#define N_ARTICLE   5
#define THREAD(a)
#define TEXPR   "rn=[^\n ]*|rt=[^\n ]*|rg=[^\n ]*"
#define RN   0
#define RT   1
#define RG   2
#define TID   3

Funktionen

varargs private string url (string group, string article)
varargs private string make_link (string text, string group, string article)
string GroupList ()
private mixed tinfo (mixed article)
private int thread (mixed article, int i, mapping t)
private int expired (mixed *list, int i)
string ArticleList (string group)
private varargs string Message (string group, mixed article)
string Request (mapping cmds)

Makro-Dokumentation

#define DBG ( x   )     tell_object(find_player("hate"), sprintf("DBG: %O\n", x))

Definiert in Zeile 12 der Datei www.news.c.

#define N_ARTICLE   5

Definiert in Zeile 21 der Datei www.news.c.

Wird benutzt von Message() und tinfo().

#define N_AUTHOR   1

Definiert in Zeile 17 der Datei www.news.c.

Wird benutzt von ArticleList(), expired(), Message() und thread().

#define N_DATE   3

Definiert in Zeile 19 der Datei www.news.c.

Wird benutzt von ArticleList(), expired(), Message(), thread() und tinfo().

#define N_GROUP   0

Definiert in Zeile 16 der Datei www.news.c.

Wird benutzt von thread().

#define N_TID   2

Definiert in Zeile 18 der Datei www.news.c.

#define N_TITLE   4

Definiert in Zeile 20 der Datei www.news.c.

Wird benutzt von ArticleList(), Message() und thread().

#define NEWSD   "/secure/news"

Definiert in Zeile 14 der Datei www.news.c.

Wird benutzt von ArticleList(), GroupList() und Message().

#define RG   2

Definiert in Zeile 80 der Datei www.news.c.

#define RN   0

Definiert in Zeile 78 der Datei www.news.c.

Wird benutzt von expired() und Message().

#define RT   1

Definiert in Zeile 79 der Datei www.news.c.

Wird benutzt von expired().

#define TEXPR   "rn=[^\n ]*|rt=[^\n ]*|rg=[^\n ]*"

Definiert in Zeile 55 der Datei www.news.c.

#define THREAD (  ) 
Wert:
("~#! rn="+(a[N_AUTHOR])+" rt="+(a[N_DATE])+ \
                   " rg="+(a[N_GROUP]))

Definiert in Zeile 53 der Datei www.news.c.

#define TID   3

Definiert in Zeile 81 der Datei www.news.c.

Wird benutzt von ArticleList(), Message() und thread().


Dokumentation der Funktionen

string ArticleList ( string  group  ) 

Definiert in Zeile 116 der Datei www.news.c.

Benutzt dtime(), expired(), i, list, make_link(), N_AUTHOR, N_DATE, N_TITLE, NEWSD, old_explode(), thread(), TID und tinfo().

Wird benutzt von Request().

00117 {
00118   string *list, ret;
00119   mapping t;
00120   int i;
00121 
00122   list = NEWSD->GetNotes(group = old_explode(group, ":")[0]);
00123   if (!pointerp(list)) {
00124   return "<H2>Gruppe: "+group+"</H2>"
00125     "<H3>existiert nicht.</H3>"
00126     "["+make_link("Gruppen&uuml;bersicht")+"]";
00127   }
00128   t = m_allocate(0,4);
00129   for (i = sizeof(list)-1, ret = ""; i >= 0; i--)
00130     if(!thread(list[i], i, t) || expired(list, i))
00131     {
00132       int ttmp;
00133       string tid;
00134       mixed tt; tt = tinfo(list[i]);
00135       ttmp = t[tid = tt[TID]] - 1;
00136       ret = sprintf("%3.3d [%-12s %-6s]%-3s %s\n",
00137                                     i+1,
00138                     list[i][N_AUTHOR]+":",
00139                     dtime(list[i][N_DATE])[5..11],
00140                     ttmp > 0 ? "+"+ttmp : " - ",
00141                     make_link((string)list[i][N_TITLE]
00142             +(ttmp > 0 ?
00143         " ("+dtime(to_int(t[tid, 3]))[5..11]
00144         +dtime(to_int(t[tid, 3]))[17..]+")" : ""),
00145             group, to_string(i)+":"+t[tid, 3])) + ret;
00146     }
00147 
00148   return "<H2>Gruppe: "+group+"</H2>"
00149     +"<H3>["+sizeof(list)+" Artikel, "
00150     +"letzte &Auml;nderung "+dtime(NEWSD->GetNewsTime(group))+"]</H3>"
00151     +"<PRE>" + ret + "</PRE>"
00152     +"["+make_link("Gruppen&uuml;bersicht")+"]";
00153 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

private int expired ( mixed *  list,
int  i 
)

Definiert in Zeile 105 der Datei www.news.c.

Benutzt info, N_AUTHOR, N_DATE, RN, RT und tinfo().

Wird benutzt von ArticleList() und Message().

00106 {
00107   mixed info;
00108   info = tinfo(list[i]);
00109   for(i--; i >= 0; i--)
00110     if(list[i][N_AUTHOR] == info[RN] &&
00111        list[i][N_DATE] == to_int(info[RT]))
00112       return 0;
00113   return 1;
00114 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

string GroupList (  ) 

Definiert in Zeile 36 der Datei www.news.c.

Benutzt dtime(), i, list, make_link() und NEWSD.

Wird benutzt von Request().

00037 {
00038   string *list, ret;
00039   int i, t;
00040 
00041   list = NEWSD->GetGroups();
00042   for (i = 0, ret = ""; i < sizeof(list); i++)
00043     ret += sprintf("[%3d Artikel, %-6s] %s\n",
00044                    sizeof(NEWSD->GetNotes(list[i])),
00045                    dtime(t = NEWSD->GetNewsTime(list[i]))[5..11],
00046                    make_link(list[i],list[i]+":"+t));
00047   return "<H2>&Uuml;bersicht</H2>"
00048         +"<H3>["+sizeof(list)+" Gruppen, "
00049         +"letzte &Auml;nderung "+dtime(NEWSD->GetNewsTime())+"]</H3>"
00050         +"<PRE>" + ret +"</PRE>";
00051 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

varargs private string make_link ( string  text,
string  group,
string  article 
)

Definiert in Zeile 30 der Datei www.news.c.

Benutzt url().

Wird benutzt von ArticleList(), GroupList(), Message() und thread().

00031 {
00032   if(!text || !strlen(text)) text = "-Unbenannt-";
00033   return "<A HREF="+url(group, article)+">"+text+"</A>";
00034 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

private varargs string Message ( string  group,
mixed  article 
)

Definiert in Zeile 155 der Datei www.news.c.

Benutzt dtime(), expired(), i, info, make_link(), N_ARTICLE, N_AUTHOR, N_DATE, N_TITLE, NEWSD, old_explode(), RN, text(), thread(), TID und tinfo().

Wird benutzt von Request().

00156 {
00157   mixed text, tmp, ttmp, next, prev, info;
00158   string art;
00159   mapping t;
00160   int i;
00161 
00162   if (!article) article = 0;
00163   else article = to_int(old_explode(article, ":")[0]);
00164 
00165   tmp = NEWSD->GetNotes(group = old_explode(group, ":")[0]);
00166   if (pointerp(tmp) && (article >= sizeof(tmp)))
00167       return("Artikel nicht gefunden, soviele Artikel hat diese Rubrik "
00168                   "nicht!\n");
00169 
00170   text = tmp[article];
00171 
00172   t = m_allocate(0,4);
00173   for(i = sizeof(tmp)-1; i > article; i--)
00174     thread(tmp[i], i, t);
00175   next = "N&auml;chster Artikel";
00176   prev = "Voriger Artikel";
00177 
00178   art = implode((ttmp = old_explode(text[N_ARTICLE], "\n"))
00179                 - regexp(ttmp, "^~#!"), "\n");
00180 
00181   art = regreplace(art, "<", "\\&lt;", 1);
00182   art = regreplace(art, ">", "\\&gt;", 1);
00183   art = regreplace(art, "([a-zA-Z][a-zA-Z]*://[^ \n\t][^ \n\t]*)", "<a href=\"\\1\">\\1</a>", 1);
00184 
00185   info = tinfo(text);
00186 
00187   return "<H1>" + text[N_TITLE] + "</H1><HR>\n"
00188        + "<H3>" + group + ": " + text[N_AUTHOR]
00189        + " (Artikel " + (article + 1) + ", " + dtime(text[N_DATE]) + ")\n</H3>"
00190        + (info[RN] ? ("<H4>Antwort auf "+info[RN]+
00191           (expired(tmp, article) ? " (verfallen)" : "")+"</H4>")
00192     : "")
00193        + "<PRE>" + art + "</PRE>\n"
00194        + (t[info[TID]] ?
00195           "<HR>Weitere Artikel zu diesem Thema:"
00196   + "<PRE>" + t[info[TID], 1] + "</PRE><HR>" : "")
00197        + " ["+(article < sizeof(tmp)-1 ? make_link(next, group,to_string(article+1)) :
00198               next)+"]"
00199        + " ["+(article ? make_link(prev, group, to_string(article-1)) : prev)+"]"
00200        + " ["+make_link("Artikel&uuml;bersicht", group)+"]"
00201        + " ["+make_link("Gruppen&uuml;bersicht")+"]";
00202 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

string Request ( mapping  cmds  ) 

Definiert in Zeile 204 der Datei www.news.c.

Benutzt ARTICLE, ArticleList(), GROUP, GroupList(), Message(), MUDNAME und text().

00205 {
00206   string text;
00207   if(!cmds[GROUP]) text = GroupList();
00208   else
00209     if(!cmds[ARTICLE]) text = ArticleList(cmds[GROUP]);
00210     else text = Message(cmds[GROUP], cmds[ARTICLE]);
00211 
00212   return "<H2>"+MUDNAME+" Zeitung</H2><HR>"
00213         +text;
00214 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

private int thread ( mixed  article,
int  i,
mapping  t 
)

Definiert in Zeile 83 der Datei www.news.c.

Benutzt dtime(), info, make_link(), N_AUTHOR, N_DATE, N_GROUP, N_TITLE, TID und tinfo().

Wird benutzt von ArticleList() und Message().

00084 {
00085   mixed info;
00086   info = tinfo(article);
00087 
00088   if(info[TID]) {
00089     t[info[TID]]++;
00090     t[info[TID], 1] = sprintf("%3.3d [%-12s %-6s]%-3s %s\n",
00091             i+1,
00092             article[N_AUTHOR]+":",
00093             dtime(article[N_DATE])[5..11],
00094             (t[info[TID]] - 1) ? "+"+(t[info[TID]]-1) : " - ",
00095             make_link(article[N_TITLE],
00096           article[N_GROUP], to_string(i)))
00097       + (t[info[TID], 1] ? t[info[TID], 1] : "");
00098     t[info[TID], 2] = info;
00099     if(article[N_DATE] > to_int(t[info[TID], 3]))
00100       t[info[TID], 3] = ""+article[N_DATE];
00101     return 1;
00102   }
00103 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

private mixed tinfo ( mixed  article  ) 

Definiert in Zeile 57 der Datei www.news.c.

Benutzt info, N_ARTICLE, N_DATE und old_explode().

Wird benutzt von ArticleList(), expired(), Message() und thread().

00058 {
00059   mixed tmp, info;
00060   string rn, rt, rg, tid;
00061   int j, k;
00062 
00063   tmp = regexp(old_explode(article[N_ARTICLE], "\n"), "^~#!");
00064   for(j = sizeof(tmp); j--;) {
00065     mixed line;
00066     line = old_explode(tmp[j], " ");
00067     for(k = sizeof(line); k--;) {
00068       if(line[k][0..1]=="rn") rn = line[k][3..];
00069       if(line[k][0..1]=="rt") rt = line[k][3..];
00070       if(line[k][0..1]=="rg") rg = line[k][3..];
00071       if(line[k][0..2]=="tid") tid = line[k][4..];
00072     }
00073   }
00074   if(!tid) tid = ""+article[N_DATE];
00075   return ({ rn, rt, rg, tid });
00076 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

varargs private string url ( string  group,
string  article 
)

Definiert in Zeile 23 der Datei www.news.c.

Benutzt ARTICLE, GROUP, MUDWWW, R_NEWS und REQ.

Wird benutzt von make_link().

00024 {
00025   return "\""+MUDWWW+"?"+REQ+"="+R_NEWS
00026     +(group?"&"+GROUP+"="+group:"")
00027     +(article?"&"+ARTICLE+"="+article:"")+"\"";
00028 }

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

Erzeugt am Thu Jun 3 14:42:02 2010 für MorgenGrauen Mudlib von  doxygen 1.6.3