Commit 417a05d4b412d4f6b8374506475ec1a2adef914b

Major changes - been a while since I've updated.
  
212212 *)
213213
214214 Connect.DoLogin(parse.botname, parse.botname, "");
215 Message.DoSend(serv, "JOIN #atari-3");
216
215 (*
216 Message.DoSend(serv, "JOIN :#atari-3");
217 *)
217218 parse := Message.DoRead(serv);
218219
219220 check.trackercheck.on := FALSE;
  
4444VAR
4545 linesSent, linesRead : CARDINAL;
4646
47PROCEDURE GetServerName(VAR parse: Parse);
48
4749PROCEDURE InString( string, line : ARRAY OF CHAR ) : BOOLEAN ;
4850
4951PROCEDURE Action(channel, message : ARRAY OF CHAR);
def/o.def
(3 / 0)
  
22
33IMPORT Message;
44
5PROCEDURE ForceMessage(chan: ARRAY OF CHAR);
6(* For testing purposes, outputs to #atari-3 *)
7
58PROCEDURE OnJoin(parse : Message.Parse);
69
710END o.
Binary files differ
Binary files differ
obj/Handler.o
(70 / 72)
Binary files differ
Binary files differ
obj/Mention.o
(24 / 27)
Binary files differ
obj/Message.o
(22 / 24)
Binary files differ
obj/PageSix.o
(18 / 19)
Binary files differ
Binary files differ
Binary files differ
obj/d.o
(4 / 3)
Binary files differ
obj/gaze.o
(37 / 47)
Binary files differ
Binary files differ
Binary files differ
obj/m.o
(21 / 21)
Binary files differ
obj/o.o
(6 / 7)
Binary files differ
obj/q.o
(2 / 2)
Binary files differ
obj/r.o
(9 / 8)
Binary files differ
obj/s.o
(48 / 49)
Binary files differ
obj/t.o
(2 / 2)
Binary files differ
obj/u.o
(4 / 4)
Binary files differ
obj/users.o
(25 / 18)
Binary files differ
obj/util.o
(3 / 3)
Binary files differ
  
77
88IMPLEMENTATION MODULE Connect;
99
10FROM Message IMPORT DoSend, DoRead, Parse, InString, nickType;
10FROM Message IMPORT DoSend, DoRead, Parse, InString, nickType, GetServerName;
1111FROM NetDB IMPORT gethostbyname, HostEntPtr;
1212FROM Sockets IMPORT Socket;
1313FROM Strings IMPORT Assign, Concat;
5454
5555PROCEDURE ["C"] / connect ( socket : CARDINAL;
5656 servAddr : inAddr;
57
5758 addrlen : CARDINAL ) : BOOLEAN;
5859
5960PROCEDURE ["C"] / htons ( numb : CARD16 ) : CARD16;
134134 nonsmgl : DoSend(serv, "JOIN :#atari,#atari-2,#atari-3,#melug,#modula-2")|
135135 testchans : DoSend(serv, "JOIN :#atari-3,#sourcemage-tome") |
136136 ELSE (* Join everything *)
137 DoSend(serv, "JOIN :#sourcemage-dump,#sourcemage-fun,#sourcemage-commits,#sourcemage,#sourcemageru,#sourcemage-quality,#sourcemage-security,#sourcemage-tome,#modula-2,#atari,#atari-2,#melug");
137 (* *)
138 DoSend(serv, "JOIN :#sourcemage-dump,#sourcemage-fun,#sourcemage-commits,#sourcemage,#sourcemage-quality,#sourcemage-security,#sourcemage-tome,#modula-2,#atari,#atari-3");
139 (* *)
140 (*
141 DoSend(serv, "JOIN :#atari-3,#atari,#modula-2,#sourcemage-commits,#sourcemage-tome");
142 *)
143 (* *)
144 DoSend(serv, "JOIN :#atari-3");
145 (* *)
138146 END;
139147
140148 (* Change this to external file *)
152152 FormStr.print(string, "PRIVMSG NickServ :identify %s", nickservData);
153153 DoSend(serv, string);
154154 (* Get Server name *)
155
155 GetServerName(parse);
156156END DoLogin;
157157
158158
  
1212 answers : ARRAY [0..CHOICES] OF ARRAY [0..29] OF CHAR;
1313 choice : INTEGER;
1414BEGIN
15 seed := millisecs(); (* re-seed the random number generator *)
16 (* There is probably a better way of doing this *)
1715 answers[0] := 'Yes.';
1816 answers[1] := 'No.';
1917 answers[2] := 'Outlook not so good.';
5757 answers[42] := 'Forget about it.';
5858
5959 choice := RandInt(0, CHOICES);
60 FormStr.print(result, "%s shakes the magic 8-ball... %s", parse.botname, answers[choice]);
61 Message.PrintLine(parse.chan, result);
60 FormStr.print(result, "shakes the magic 8-ball... %s", answers[choice]);
61 Message.Action(parse.chan, result);
6262EXCEPT
6363 RETURN
6464END EightBall;
65
66BEGIN
67 seed := millisecs(); (* re-seed the random number generator *)
68 (* There is probably a better way of doing this *)
6569
6670END EightBall.
  
55FROM ProgExec IMPORT Command;
66FROM Message IMPORT DoSend, Parse;
77FROM StringParse IMPORT Replace;
8FROM FormStr IMPORT print;
89
910CONST
1011 protectFile = "/home/terry/p6dat/tmp/protect";
1818PROCEDURE StartFP ( parse : Parse );
1919VAR pingStr : ARRAY [0..39] OF CHAR;
2020BEGIN
21 print(pingStr, "PING %s :floodprotect", parse.server);
22 (*
2123 pingStr := "PING S~ :floodprotect";
2224 Replace(pingStr, "S~", parse.server);
25 *)
2326 DoSend(parse.serv, pingStr);
2427 SetProtect( pause );
2528END StartFP;
  
3939FROM SWholeIO IMPORT WriteCard, WriteInt;
4040IMPORT Connect;
4141IMPORT fortune;
42IMPORT gaze, gazeInfo, gazeProvides;
42IMPORT gaze, gazeInfo, gazeProvides, gazeVersions;
4343IMPORT Message;
4444IMPORT ProgExec;
4545IMPORT StreamFile;
4848IMPORT users;
4949IMPORT WholeStr, RegComp, FormStr;
5050
51IMPORT b, d, c, EightBall, f, google, k, m, Mention, n, o, p, q, r, s, t, u, v, w;
51IMPORT b, d, c, EightBall, f, Force, google, k, m, Mention, n, o, p, q, r, s, t, u, v, w;
5252IMPORT Timers, tracker, bugcheckState, bugsearch, conversions, util;
5353FROM Setup IMPORT ChannelT, checkChans, check;
5454
5555VAR
56 pFound : BOOLEAN;
56 pFound, skip : BOOLEAN;
5757 pOfPattern : CARDINAL;
5858 str, cmd, msg, tmp,
5959 part1, part2 : Message.strType;
167167 Capitalize(cmd);
168168 msg := parse.message;
169169 Capitalize(msg);
170
171 skip := FALSE;
172
170173 (* PING - goofing off *)
171174 (*
172175 IF Left("PING", msg) OR Left("!PING", msg) THEN PrintLine(parse.chan, "PONG!") END;
421421(* F <><><><><><><><><><> *)
422422(* f2c - convert temperature from fahrenheit to celsius *)
423423 IF Left("F2C", cmd) THEN conversions.f2c(parse) END;
424(* Force lines sent or recd *)
425 IF InString("FORCE LINES ", msg) OR
426 InString("FORCE ONJOIN ", msg) OR
427 InString("FORCE SERVER ", msg) THEN
428 Force.Force(parse);
429 END;
424430(* Force last bug - change the last known bug, for testing *)
425431 IF InString("FORCE LAST BUG", msg) OR InString("FORCE LAST KNOWN BUG", msg) THEN
426432 bugcheckState.changeLastKnownBug(parse);
497497 IF RegComp.Match(re, cmd, 0) THEN gaze.search(parse) END;
498498(* Gaze Source URL *)
499499 RegComp.Compile('GAZE SOURCE URL *|SOURCE URL *', re, regexres);
500 IF RegComp.Match(re, cmd, 0) THEN gaze.sourceURL(parse) END;
500 IF RegComp.Match(re, cmd, 0) THEN gaze.sourceURL(parse); skip := TRUE END;
501501(* Gaze Source *)
502502 RegComp.Compile('GAZE SOURCE *|SOURCE *', re, regexres);
503 IF RegComp.Match(re, cmd, 0) THEN gaze.source(parse) END;
503 IF RegComp.Match(re, cmd, 0) AND NOT skip THEN gaze.source(parse) END;
504504(* Gaze Updated *)
505505 RegComp.Compile('GAZE UPDATED *|UPDATED *', re, regexres);
506506 IF RegComp.Match(re, cmd, 0) THEN gaze.updated(parse) END;
512512 IF RegComp.Match(re, cmd, 0) THEN gaze.version(parse) END;
513513(* Gaze Versions *)
514514 RegComp.Compile('GAZE VERSIONS *|VERSIONS *', re, regexres);
515 IF RegComp.Match(re, cmd, 0) THEN gaze.versions(parse) END;
515 (* Modified to use gazeVersions.versions instead of gaze.versions - 01 July 2009 *)
516 IF RegComp.Match(re, cmd, 0) THEN gazeVersions.versions(parse) END;
516517(* Gaze What Full or Short *)
517518 RegComp.Compile('GAZE WHAT FULL *|GAZE FULL *|WHAT FULL *|FULL *|GAZE WHAT LONG *|GAZE LONG *|WHAT LONG *|LONG *', re, regexres);
518519 IF RegComp.Match(re, cmd, 0) THEN gaze.whatFull(parse) END;
619619 Left("LUNAR MODULES", cmd) OR
620620 Left("MODULES", cmd) THEN s.SpellsLunar(parse);
621621(* spells - count SMGL spells *)
622 ELSIF Left("SPELLS", cmd) THEN (*Message.PrintLine(parse.chan, "Temporarily disabled.")*) s.Spells(parse) END;
622 ELSIF Left("SPELLS", cmd) THEN s.Spells(parse) END;
623623(* status *)
624624 IF Left("STATUS", cmd) THEN s.Status(parse) END;
625625(* T <><><><><><><><><><> *)
709709 IF Left("UNMAINTAINED", cmd) THEN u.unmaintained(parse) END;
710710(* users - generate a map showing the location of users *)
711711 (* IF Left("USERS", cmd) THEN u.Users(parse) END; *)
712 IF Left("USERS", cmd) THEN (*users.users(parse) *)
712 IF Left("USERS", cmd) THEN users.users(parse)
713 (*
713714 PrintLine(parse.chan, "Sorry, !users has been disabled.");
715 *)
714716 END;
715717(* V <><><><><><><><><><> *)
716718 IF Left("VOTE", cmd) THEN v.Vote(parse) END;
  
55
66
77CONST
8 irclogFile = "/home/terry/p6dat/dat/log/irclog";
8 irclogFile = "/home/terry/p6dat/dat/log/irclog";
99 maxLogLength = 699;
10 writeFlags = SeqFile.write+SeqFile.old;
10 writeFlags = SeqFile.write+SeqFile.old;
1111
1212TYPE
13 logLineType = ARRAY [0..maxLogLength] OF CHAR;
13 logLineType = ARRAY [0..maxLogLength] OF CHAR;
1414 dateTimeType = ARRAY [0..19] OF CHAR;
1515
1616VAR
123123 ELSIF InString("/pagesix JOIN :", string) THEN
124124 ELSIF InString(" JOIN :#", string) THEN
125125 ELSIF InString(" >> PING ", string) THEN
126 ELSIF (InString("PING ", string) AND InString(" HIA", string)) THEN
127 ELSIF InString("net PONG HIA", string) THEN
126(* ELSIF (InString("PING ", string) AND InString(" HIA", string)) THEN *)
127(* ELSIF InString("PING :", string) THEN *)
128(* ELSIF InString("PONG :", string) THEN *)
129(* ELSIF InString("net PONG HIA", string) THEN *)
128130 ELSIF InString(":ChanServ!ChanServ@services. NOTICE", string) THEN
129131 ELSIF InString(":NickServ!NickServ@services. NOTICE", string) THEN
130132 ELSE
  
160160BEGIN
161161
162162 time := TimeConv.time();
163
164 Printf.sprintf(command, "cp -f %sprocessed.log /usr/local/www/servers/page6.shlrm.org/pages/mention/mention-%d.txt", p6tmpPath, time);
165 output(termout, "Sending following command:");
166 output(termout, command);
163 Printf.sprintf(command, "scp %sprocessed.log timestorm:/usr/share/httpd/htdocs/mention/mention-%d.txt", p6tmpPath, time);
164 FormStr.print(tempStr, "Debugging: Sending the following command: %s", command);
165 output(termout, tempStr);
167166 status := ProgExec.Command(command, exit);
168167 WholeStr.CardToStr(exit, tempStr);
169 output(termerr, "Debugging: copy of processed.log - exit = "); output(termerr, tempStr);
170 FormStr.print(outputStr, "Full output will be temporarily available at http://page6.shlrm.org/mention/mention-%d.txt ", time);
168 FormStr.print(tempStr, "Debugging: copy of processed.log - exit = %d", exit);
169 output(termerr, tempStr);
170 FormStr.print(outputStr, "Full output will be temporarily available at http://www.aliboom.com/mention/mention-%d.txt ", time);
171171 Message.PrintLine(line.chan, outputStr);
172
173172
174173END scpInfo;
175174
  
1111FROM STextIO IMPORT WriteString, WriteLn;
1212FROM SYSTEM IMPORT INT, LOC;
1313FROM FloodProtect IMPORT continue, SetProtect;
14IMPORT FileSys, StreamFile, WholeIO, ProgEnv, Logging, StdChans, TextIO, Printf, FormStr;
14IMPORT FileSys, StreamFile, WholeIO, ProgEnv, Logging, StdChans, TextIO, Printf, FormStr, StringParse;
1515
1616CONST
1717 CR = 15C;
3434 command : INTEGER;
3535 VAR argument : ARRAY OF LOC ) : BOOLEAN;
3636
37PROCEDURE GetServerName(msg : ARRAY OF CHAR);
37PROCEDURE GetServerName(VAR parse: Parse);
3838VAR
3939 endPos : CARDINAL;
40 debugStr : strType;
4041BEGIN
41 FindNext(" ", msg, 0, found, endPos);
42 IF found THEN
43 (* Fix this later, make sure it actually gets a freenode server *)
44 Extract(msg, 1, endPos-1, parse.server);
45 IF NOT InString("freenode.net", parse.server) THEN parse.server := "" END;
46 END;
47
42 (*
43 FindNext(" ", parse.message, 0, found, endPos);
44 *)
45
46 IF InString(".freenode.net", parse.raw) AND NOT InString(".freenode.net", parse.server) THEN
47 FindNext("net ", parse.raw, 0, found, endPos);
48 IF found THEN
49 FormStr.print(debugStr, "Debug: parse.raw: %s", parse.raw);
50 WriteString(debugStr); WriteLn;
51 (* Fix this later, make sure it actually gets a freenode server *)
52 (* Extract(parse.message, 3, endPos-3, parse.server); *)
53 Extract(parse.raw, 1, endPos-1, parse.server);
54 FormStr.print(debugStr, "Debug: In GetServerName parse.server is [%s]", parse.server);
55 WriteString(debugStr); WriteLn;
56 IF NOT InString(".freenode.net", parse.server) THEN parse.server := "" END;
57 END;
58 END;
59
4860END GetServerName;
4961
5062PROCEDURE GetHomePath(parse: Parse): Parse;
141141PROCEDURE ParseLine(msg : strType) : Parse;
142142
143143VAR
144 temp : strType;
145 found : BOOLEAN;
144 temp,
145 server,
146 null : strType;
147 found,
148 debugging: BOOLEAN;
146149 startPos,
147150 endPos : CARDINAL;
148151 debugStr : strType;
149
152 pingString : ARRAY[0..80] OF CHAR;
153
150154BEGIN
155 debugging := FALSE;
151156 temp := msg;
152157 parse.botname := botName;
153158 parse.IsMessage := FALSE;
154159
155160 parse.serv := 3;
156161
157 (* Get the actual server name *)
158 IF InString("PONG HIA", msg) THEN
159 (* Extract the server, it will be in this format:
160 :calvino.freenode.net PONG HIA79508010 :page_six *)
161 FindNext(" PONG ", msg, 0, found, startPos);
162 IF found THEN
163 Extract(msg, 1, startPos-1, parse.server);
164 END;
165 END; (* IF InString("PONG HIA", msg) *)
166
162
163 (* Get the server name *)
164 IF NOT InString(".freenode.net", parse.server) AND
165 InString(":", parse.raw) AND
166 InString(".freenode.net 372", parse.raw) THEN
167 StringParse.Split("node.net ", msg, server, null);
168 StringParse.Strip(server);
169 IF InString(":", server) THEN
170 StringParse.Split(":", server, null, server);
171 END;
172 IF InString(" ", server) THEN;
173 StringParse.Split(" ", server, null, server);
174 END;
175 Assign(server, parse.server);
176 END;
177
167178 (* Flood protection *)
168179 IF InString("PONG floodprotect", msg) THEN
169180 SetProtect( continue );
170 END;
181 END;
182 IF InString("PING :", msg) THEN
183 IF debugging THEN
184 FormStr.print(temp, "Debugging: Received a PING : -- %s", parse.raw);
185 output(temp);
186 END;
187 (* Actually, I need to modify this so it sends back precisely what was sent, just to be
188 safe/correct. The PONG :SERVERNAME will work for a bit though *)
189 FindNext(" ", msg, 1, found, startPos);
190 Extract(msg, startPos+2, LENGTH(msg), parse.server);
191 WriteString(parse.server); WriteLn;
192 StringParse.Clip(parse.server);
193 WriteString(parse.server); WriteLn;
194 FormStr.print(pingString, "PONG :%s", parse.server);
195 DoSend(parse.serv, pingString);
196 END;
171197 (* Get the channel name *)
172198 IF InString("MSG #", msg) THEN
173199 IF InString("PRIVMSG", msg) THEN
254254 parse.raw := message;
255255
256256 parse := ParseLine(message);
257
257 IF LENGTH(parse.server) < 5 THEN
258 GetServerName(parse);
259 END;
258260 IF LENGTH(msg) > 0 THEN
259261 INC( linesRead );
260262 WriteString(message);
294294 END;
295295 (* Note: Need to delete /home/terry/p6dat/tmp/rehash/serv after this works *)
296296EXCEPT
297 (* Turning off exception handling to check for errors
297 (* Turning off exception handling to check for errors *)
298 output("I'm inside the Message.mod exception handler.");
298299 RETURN;
299 *)
300 (* *)
300301END Message.
  
1414<* LINENO + *>
1515IMPLEMENTATION MODULE Timers;
1616
17FROM IOResult IMPORT endOfInput;
17FROM IOResult IMPORT endOfInput;
1818FROM StreamFile IMPORT OpenResults;
19FROM SysClock IMPORT GetClock;
20FROM TimeConv IMPORT millisecs, time;
21FROM Message IMPORT PrintLine, DoRead, DoSend, Parse;
22FROM STextIO IMPORT WriteString;
23FROM WholeStr IMPORT IntToStr;
19FROM SysClock IMPORT GetClock;
20FROM TimeConv IMPORT millisecs, time;
21FROM Message IMPORT PrintLine, DoRead, DoSend, Parse, homechan;
22FROM STextIO IMPORT WriteString;
23FROM WholeStr IMPORT IntToStr;
2424
25IMPORT FileSys, M2EXCEPTION, Message, types, unistd, wait, Printf, p, bugcheckNew;
25IMPORT FileSys, M2EXCEPTION, Message, types, unistd, wait, Printf, p, bugcheckNew, FormStr;
2626FROM Setup IMPORT check;
2727
2828CONST
5858PROCEDURE PingServer( parse : Parse ) : BOOLEAN;
5959VAR
6060 pingString, str : ARRAY [0..80] OF CHAR;
61 debugging : BOOLEAN;
6162BEGIN
6263 (* This is messing up *)
63 GetClock(pingTime);
64 IntToStr(millisecs(), str);
65 Printf.sprintf(pingString, "PING %s HIA%s", parse.server, str);
66 DoSend(parse.serv,pingString);
67 parse := DoRead(parse.serv);
68 RETURN TRUE;
64 debugging := TRUE;
65 IF time()-pingTimer >= 7200 THEN
66 IF debugging THEN
67 Message.PrintLine(Message.homechan, "Pinging...");
68 END;
69 pingTimer := time();
70 GetClock(pingTime);
71 IntToStr(millisecs(), str);
72 (* --- ERROR here, not getting the server *)
73 (*
74 Printf.sprintf(pingString, "PING %s HIA%s", parse.server, str);
75 *)
76 FormStr.print(pingString, "PING %s HIA%s", parse.server, str);
77 DoSend(parse.serv,pingString);
78 IF debugging THEN
79 Message.PrintLine(Message.homechan, "debug: executing parse := DoRead(parse.serv);");
80 END;
81 parse := DoRead(parse.serv);
82 RETURN TRUE;
83 ELSE
84 RETURN FALSE;
85 END;
6986END PingServer;
7087
7188PROCEDURE Timing(): BOOLEAN;
7289VAR
7390 statloc, statlocBC : INTEGER;
91
7492BEGIN
7593 (* get rid of any child processes that have died *)
7694 wait.waitpid( -1, statloc, wait.WNOHANG );
7795 GetClock(now);
7896
97
7998 (* This checks for bugs at bugs.sourcemage.org *)
8099 IF time()-bugCheckTimer >= check.bugcheck.update THEN
81100 IF check.bugcheck.on THEN
122122END Timing;
123123
124124BEGIN
125 (* Use time() to get sign on time - GetClock seems to have problems *)
126 signOnTimeCard := time();
127125
128126 seconds := time(); (* I'm not sure where this is used anymore *)
129127 GetClock(signOnTime);
  
11
22<* M2EXTENSIONS + *>
3(* Note that as of 20090518 this isn't in use yet *)
34IMPLEMENTATION MODULE bugcheckData;
45IMPORT TextIO, RawIO, WholeIO, Strings, SeqFile, IOResult, FileSys, XMLReadLib,
56 ProgExec, FormStr, Printf, StdChans, Message, Setup;
4040 SeqFile.OpenRead(file, bugcheckPath+"bugRecord", readRawFlags, iores);
4141 RawIO.Read(file, bug);
4242 SeqFile.Close(file);
43 (*
44 SeqFile.OpenRead(file, bugcheckPath+"formattedBug", readFlags, iores);
45 TextIO.ReadString(file, bugstring);
46 SeqFile.Close(file);
47 *)
43
4844 stdout := StdChans.StdOutChan();
4945 getBugAlias(bug.assignee); (* replace the email address with a friendly name *)
5046
4848 TextIO.WriteString(stdout, "Assignee: ");
4949 TextIO.WriteString(stdout, bug.assignee); TextIO.WriteLn(stdout);
5050
51
5251 TextIO.WriteString(stdout, bugstring); TextIO.WriteLn(stdout);
53
5452
5553 (* Copied from the old bugchecker.mod - will probably need to be modified. *)
5654 IF smcommits IN check.bugcheck.chans THEN
6161 Message.PrintLine(Setup.homechan, bugstring);
6262 END; (* home IN *)
6363 (* Sill need to handle #sourcemage-security *)
64
6564 RETURN TRUE;
66
6765END PrintBugInfo;
6866
6967
203203 handle := XMLReadLib.XMLOpenDocument(bugcheckPath+"processed");
204204 IF XMLReadLib.XMLSetCallback(handle, 1, CallbackFunction) THEN END;
205205 IF XMLReadLib.XMLParseDocument(handle)#0 THEN
206 (*
207 ErrorOutput("ERROR : ");
208 *)
206 (* ErrorOutput("ERROR : "); *)
209207 XMLReadLib.XMLGetErrorString(handle, str);
210 (*
211 ErrorOutput(str^);
212 *)
208 (* ErrorOutput(str^); *)
213209 END;
214210 XMLReadLib.XMLCloseDocument(handle);
215211 SeqFile.Close(file);
308308 WholeIO.WriteInt(outfile, lastBZbug, 0);
309309 SeqFile.Close(outfile);
310310 IF FileSys.Exists(bugcheckPath+"bugReport.csv") THEN
311 (*
312 FileSys.Remove(bugcheckPath+"bugReport.csv", done);
313 *)
311 (* FileSys.Remove(bugcheckPath+"bugReport.csv", done); *)
314312 END;
315313 RETURN TRUE;
316314END GetReport;
  
11<* M2EXTENSIONS + *>
2(* Note that as of 20090518 this isn't in use yet *)
23(* This is the new 'bugcheck.mod'
34 I am splitting it into two parts. bugCheckData and bugCheckState
45
  
1(* Note that as of 20090518 this isn't in use yet *)
12IMPLEMENTATION MODULE bugcheckState;
23
34IMPORT Printf, FileSys, SeqFile, TextIO, WholeIO,
3333 WholeStr.StrToCard(target, seconds, res);
3434 CASE res OF
3535 WholeStr.strAllRight : str := "Bug update time changed.";
36 check.bugcheck.update := seconds; (* new *) |
36 check.bugcheck.update := seconds; (* new *) |
3737 WholeStr.strOutOfRange : str := "Sorry, that number is out of range. Please try again."; |
3838 WholeStr.strWrongFormat : str := "Sorry, the seconds were in the wrong format. Please try again."; |
3939 WholeStr.strEmpty : str := "There was no time given. Please try again."; |
  
1515
1616IMPLEMENTATION MODULE bugsearch;
1717
18FROM Strings IMPORT Assign, Concat;
18FROM Strings IMPORT Assign, Concat;
1919FROM StringParse IMPORT Replace, Split, InString, Clip;
20FROM STextIO IMPORT WriteString, WriteLn;
21FROM ProgExec IMPORT Command;
22FROM FileSys IMPORT Exists, CreateDirectory, Remove;
23FROM StreamFile IMPORT Open, Close, ChanId, OpenResults, read;
24FROM util IMPORT CmdUsed;
20FROM STextIO IMPORT WriteString, WriteLn;
21FROM ProgExec IMPORT Command;
22FROM FileSys IMPORT Exists, CreateDirectory, Remove;
23FROM StreamFile IMPORT Open, Close, ChanId, OpenResults, read;
24FROM util IMPORT CmdUsed;
2525IMPORT TextIO, IOResult, Message, Timers, Setup;
26
2726
2827
2928PROCEDURE doSearch(parse: Setup.Parse);
src/d.mod
(24 / 23)
  
1515IMPLEMENTATION MODULE d;
1616
1717IMPORT ProgExec, StdChans, Strings, SeqFile, TextIO, IOResult, types, unistd, wait, WholeStr;
18IMPORT Message, StringParse, util, Timers, p;
18IMPORT Message, StringParse, util, Timers, p, FormStr;
1919FROM TimeConv IMPORT time;
20FROM FloodProtect IMPORT StartFP; (* pause, continue, SetProtect, GetProtect; *)
20FROM FloodProtect IMPORT StartFP, pause, continue, SetProtect, GetProtect;
2121FROM STextIO IMPORT WriteString, WriteChar, WriteLn;
2222FROM FileSys IMPORT Exists;
2323
4242PROCEDURE getDefinition(parse : Message.Parse);
4343VAR
4444 cmd, target, temp : Message.strType;
45 res : SeqFile.OpenResults;
45 iores : SeqFile.OpenResults;
4646 file : StdChans.ChanId;
4747 exit, count, lines : CARDINAL;
48 define, state, resume : BOOLEAN;
48 define, state, resume, debugging : BOOLEAN;
4949 src : Source;
5050 flood : Message.Parse;
5151BEGIN
52 src := cogsci;
52 SetProtect( continue );
53 src := local;
5354 count := 0; lines := 0; target := ""; define := TRUE; (* SetProtect( continue ); *)
55 debugging := FALSE;
5456 (* get the target word *)
5557 StringParse.Split("ine ", parse.cmd, temp, target);
5658 StringParse.Clip(target);
7272 abort : define := FALSE; |
7373 ELSE
7474 define := FALSE;
75 END;
75 END;
76 IF debugging THEN Message.PrintLine("#atari-3", cmd) END;
77 (* define := FALSE; *)
7678 IF define AND ProgExec.Command(cmd, exit) THEN
77 SeqFile.OpenRead(file, "/tmp/definition", SeqFile.read, res);
78 IF (res=SeqFile.opened) THEN
79 IF debugging THEN Message.PrintLine("#atari-3", "Debug: Opening /tmp/definition") END;
80 SeqFile.OpenRead(file, "/tmp/definition", SeqFile.read, iores);
81 IF debugging THEN
82 FormStr.print(temp, "Debug: /tmp/definition %s", util.DispOpenResults(iores));
83 Message.PrintLine("#atari-3", temp);
84 END;
85 IF (iores=SeqFile.opened) THEN
86 IF debugging THEN Message.PrintLine("#atari-3", "Debug: Inside IF (iores=SeqFile.opened) THEN") END;
87 Message.PrintLine(parse.chan, "Working - definition will be sent via NOTICE");
7988 REPEAT
89 IF debugging THEN WriteString("Debug: Inside REPEAT"); WriteLn; END;
8090 TextIO.ReadString(file, target);
8191 TextIO.SkipLine(file);
92 IF debugging THEN WriteString(target); WriteLn END;
8293 IF StringParse.Left("Overview of", target) THEN target := " "
8394 ELSIF StringParse.Left("The noun", target) THEN target := "noun:"
8495 ELSIF StringParse.Left("The verb", target) THEN target := "verb:"
9797 ELSIF StringParse.Left("The adv", target) THEN target := "adv:"
9898 END;
9999 IF StringParse.Left(" ", target) THEN
100 ELSIF LENGTH(target)=0 THEN
100101 ELSE
101102 (* This should be moved to FloodProtect *)
102103 Message.Notice(parse.nick, target);
103 INC (count, LENGTH(target));
104 IF ( count > 1024 ) THEN
105 StartFP(parse);
106 count := 0;
107 (*
108 temp := "PING S~ :floodprotect";
109 StringParse.Replace(temp, "S~", parse.server);
110 Message.DoSend(parse.serv, temp);
111 count := 0;
112 SetProtect( pause );
113 *)
114 END;
104 StartFP(parse);
115105 END;
116 (* Attempting some flood prevention *)
117106 REPEAT
118 UNTIL NOT Exists("/home/terry/p6dat/tmp/protect");
119
107 UNTIL NOT Exists("/home/terry/p6dat/tmp/protect"); (* flood control *)
120108 UNTIL (IOResult.ReadResult(file) = IOResult.endOfInput);
121109 SeqFile.Close(file);
122110 Message.Notice(parse.nick, "--- DONE ---");
src/gaze.mod
(28 / 35)
  
6464VAR
6565 str : Message.strType;
6666BEGIN
67 str := "I'm sorry N~, but I can't find a spell named S~.";
68 StringParse.Replace(str, "N~", parse.nick);
69 StringParse.Replace(str, "S~", spell);
67 FormStr.print(str, "I'm sorry %s, but I can't find a spell named %s.", parse.nick, spell);
7068 Message.PrintLine(parse.chan, str);
7169END Sorry;
7270
130130 StreamFile.Close(file);
131131 FileSys.Remove("/home/terry/p6dat/tmp/creator", done);
132132EXCEPT
133 str := "chews on T~ and spits it out. That wasn't very tasty.";
134 StringParse.Replace(str, "T~", target);
133 FormStr.print(str, "chews on %s and spits it out. That wasn't very tasty.", target);
135134 Message.Action(parse.chan, str);
136135
137136 Message.PrintLine(Message.homechan, "ALERT: I've encountered an exception in !gaze creator");
141141CONST
142142 recast = '/var/lib/sorcery/codex/test/gnome2-libs/glib2 is forcing a recast of pkgconfig';
143143 noColors = "| sed 's/\x1b[^m]*m//g' "; (* strip colors *)
144 modDepends = "| sed s/\(depends\)//g "; (* modify (depends) *)
145 modOptional = "| sed s/\ \(optional\)/*/g "; (* Modify (optional) *)
146 modSuggest = "| sed s/\ \(suggest\)/\$/g "; (* Modify (suggest) *)
144 modDepends = "| sed s/\(depends\)//g "; (* modify (depends) *)
145 modOptional = "| sed s/\ \(optional\)/*/g "; (* Modify (optional) *)
146 modSuggest = "| sed s/\ \(suggest\)/\$/g "; (* Modify (suggest) *)
147147 modSub = "| sed 's/-sub//g' "; (* Modify -sub *)
148148 modSpaces = "| sed 's/^ *//;s/ *$//;s/ \{1,\}/ /g' "; (* delete extra spaces *)
149149 FILTER = noColors+modDepends+modOptional+modSuggest+modSub+modSpaces;
372372VAR
373373 command, null, target, result, str : Message.strType;
374374 res : CARDINAL;
375 done, found : BOOLEAN;
375 done, found, debugging : BOOLEAN;
376376 iores : StreamFile.OpenResults;
377377 file : StreamFile.ChanId;
378
378379BEGIN
380 debugging := TRUE;
379381 command := ""; null := ""; target := ""; result := ""; str := "";
380382 util.CmdUsed(parse);
381383 StringParse.Split("nse ", parse.message, null, target);
385385 IF StringParse.InString("-h", target) THEN
386386 Message.PrintLine(parse.chan, "!gaze license target : returns the license of the spell 'target'." );
387387 ELSE
388 Strings.Assign("grep -i :", command);
389 Strings.Concat(command, target, command);
390 Strings.Concat(command, ": /home/terry/Search/grimoire.index.tkr | sort -u | awk '{print $3}' | uniq > /home/terry/p6dat/tmp/license", command);
388 FormStr.print(command, "grep -i :%s: /home/terry/Search/grimoire.index.tkr | sort -u | awk '{print $3}' | uniq > /home/terry/p6dat/tmp/license", target);
391389 done := ProgExec.Command(command, res);
392390 StreamFile.Open(file, "/home/terry/p6dat/tmp/license", StreamFile.read, iores);
393391 TextIO.ReadString(file, result);
554554 Strings.Concat(str, parse.nick, str);
555555 Message.PrintLine(parse.chan, str);
556556 ELSIF LENGTH(target)=1 THEN
557 (*
557558 str := "I don't think so ";
558559 Strings.Concat(str, parse.nick, str);
559 Message.PrintLine(parse.chan, str);
560 *)
561 FormStr.print(str, "I don't think so %s", parse.nick);
562 Message.PrintLine(parse.chan, str);
560563 ELSIF Strings.Equal(target, "is") THEN
561 str := "No way ";
562 Strings.Concat(str, parse.nick, str);
563 Strings.Concat(str, ", I don't want to flood the channel.", str);
564 Message.PrintLine(parse.chan, str);
564 FormStr.print(str, "No way %s, I don't want to flood the channel.", parse.nick);
565 Message.PrintLine(parse.chan, str);
565566 ELSE
566567 (* put some quotes around target *)
567568 null := quote;
692692 IF StringParse.InString("-h", target) THEN
693693 Message.PrintLine(parse.chan, "!gaze source url target : returns the source url of the spell 'target' - only the first source url is returned.");
694694 ELSE;
695 Strings.Assign("grep -i :", command);
696 Strings.Concat(command, target, command);
697 Strings.Concat(command, ": /home/terry/Search/grimoire.index.tkr | sort -u | awk '{print $5}' | uniq > /home/terry/p6dat/tmp/sourceURL", command);
695 FormStr.print(command, "grep -i :%s: /home/terry/Search/grimoire.index.tkr | sort -u | awk '{print $5}' | uniq > /home/terry/p6dat/tmp/sourceURL", target);
698696 done := ProgExec.Command(command, res);
699697 StreamFile.Open(file, "/home/terry/p6dat/tmp/sourceURL", StreamFile.read, iores);
700698 TextIO.ReadString(file, result);
734734 IF StringParse.InString("-h", target) THEN
735735 Message.PrintLine(parse.chan, "!gaze entered target : returns the date that the spell 'target' was last modified.");
736736 ELSE;
737 Strings.Assign("grep -i :", command);
738 Strings.Concat(command, target, command);
739 Strings.Concat(command, ": /home/terry/Search/grimoire.index.tkr | sort -u | awk '{print $10}' | uniq > /home/terry/p6dat/tmp/updated", command);
737 FormStr.print(command, "grep -i :%s: /home/terry/Search/grimoire.index.tkr | sort -u | awk '{print $10}' | uniq > /home/terry/p6dat/tmp/updated", target);
740738 done := ProgExec.Command(command, res);
741739 StreamFile.Open(file, "/home/terry/p6dat/tmp/updated", StreamFile.read, iores);
742740 TextIO.ReadString(file, result);
743741 TextIO.SkipLine(file);
744742 StreamFile.Close(file);
745743 IF LENGTH(result) > 0 THEN
746 Strings.Assign(target, str);
747 Strings.Concat(str, ": updated: ", str);
748 Strings.Concat(str, result, str);
744 FormStr.print(str, "%s: updated: %s", target, result);
749745 Message.PrintLine(parse.chan, str);
750746 ELSE
751 Strings.Assign("I'm sorry ", str);
752 Strings.Concat(str, parse.nick, str);
753 Strings.Concat(str, ", but I can't find a spell named ", str);
754 Strings.Concat(str, target, str);
747 FormStr.print(str, "I'm sorry %s, but I can't find a spell named %s.", parse.nick, target);
755748 Message.PrintLine(parse.chan, str);
756749 END;
757750 FileSys.Remove("/home/terry/p6dat/tmp/updated", done);
758751 END;
759752 str := "";
760753EXCEPT
761 str := "chews on T~ and spits it out. That wasn't very tasty.";
762 StringParse.Replace(str, "T~", target);
754 FormStr.print(str, "chews on %s and spits it out. That wasn't very tasty.", target);
763755 Message.Action(parse.chan, str);
764756
765757 Message.PrintLine(Message.homechan, "ALERT: I've encountered an exception in !gaze updated");
849849 RETURN;
850850END version;
851851
852(* July 30th, 2009 - testing a switch over to gazeVersions.mod *)
853(* Will retain this for a while, in case I have to switch back *)
854
852855PROCEDURE versions(parse : Message.Parse);
853856VAR
854857 command, null, target, result, str : Message.strType;
919919VAR
920920 command, null, target, result, str, version, url : Message.strType;
921921 res : CARDINAL;
922 done, found : BOOLEAN;
922 done, found, debugging : BOOLEAN;
923923 iores : StreamFile.OpenResults;
924924 file : StreamFile.ChanId;
925925
929929 command := "";
930930 version := "";
931931 url := "";
932 debugging := FALSE;
932933
933934 util.CmdUsed(parse);
934935 IF StringParse.InString("what short ", parse.message) OR
10821082 command, null, target, result, str : Message.strType;
10831083 fullstr : ARRAY [0 .. 8999] OF CHAR;
10841084 res, textlength : CARDINAL;
1085 done, found : BOOLEAN;
1085 done, found, debugging : BOOLEAN;
10861086 iores : StreamFile.OpenResults;
10871087 file : StreamFile.ChanId;
10881088
10891089BEGIN
10901090 command := ""; null := ""; target := ""; result := ""; str := "";
1091 debugging := FALSE;
10911092 util.CmdUsed(parse);
10921093
10931094 StringParse.Split("where ", parse.message, null, target);
10941095 StringParse.Clip(target);
10951096 IF StringParse.InString("-h", target) THEN
10961097
1097 Message.PrintLine(parse.chan, "Usage: [gaze ]where spell - Given a valid spell name, returns the section in which it can be found.");
1098 Message.PrintLine(parse.chan, "Usage: [gaze ]where spell - Given a valid spell name, returns the section in which that spell can be found.");
10981099 ELSE
10991100 Strings.Assign("grep '^", command);
11001101 Strings.Concat(command, target, command);
  
2323 Message.PrintLine(parse.chan, "!provides FEATURE - Displays spells that provide FEATURE. (I'll capitalize it for you).");
2424 RETURN;
2525 END;
26 (* Joke response *)
27 IF StringParse.Left("PR0N", target) OR StringParse.Left("PORN", target) OR StringParse.Left("PRON", target) THEN
28 Message.PrintLine(parse.chan, "provides pr0n: Sorry, too many providers. A response would break the intertubes.");
29 RETURN;
30 END;
31 (* To do: look for spaces in the target string and replace them with hypens *)
2632
2733 FormStr.print(command, "gaze provides %s > %s", target, providesFile);
2834 done := ProgExec.Command(command, result);
  
1010PROCEDURE googleCalc(parse : Message.Parse);
1111CONST
1212 prefix = "lynx -image_links -dump -width=200 -nolist http://www.google.com/search?q=";
13 suffix = " | grep calc_img.gif > /home/terry/p6dat/tmp/google/searchresult";
13 suffix = " | grep -A 2 calc_img.gif | tail -n 1 > /home/terry/p6dat/tmp/google/searchresult";
1414
1515VAR
1616 searchString, commandString, returnString : Message.strType;
1717 exit : CARDINAL;
1818 file : ChanId;
1919 res : OpenResults;
20 done : BOOLEAN;
2021BEGIN
2122 util.CmdUsed(parse);
2223 Split(" ", parse.cmd, commandString, searchString);
2324 Clip(searchString);
24 commandString := "";
25 commandString := "";
2526 REPEAT
2627 Replace(searchString, "+", "%2B");
2728 UNTIL (NOT InString("+", searchString));
5353 TextIO.ReadString(file, returnString);
5454 TextIO.SkipLine(file);
5555 Close(file);
56 IF LENGTH(returnString) > 0 THEN
57 Message.PrintLine(parse.chan, returnString);
58 Remove("/home/terry/p6dat/tmp/google/searchresult", done);
59 ELSE
60 Message.PrintLine(parse.chan, "Sorry, I don't know.");
61 END;
5662 END;
5763 END;
58
64 (*
5965 IF (InString(".gif", returnString)) THEN
6066 Split(".gif] ", returnString, commandString, returnString);
6167 Message.PrintLine(parse.chan, returnString);
6969 ELSE
7070 Message.PrintLine(parse.chan, "Sorry, I don't know.");
7171 END;
72 *)
7273END googleCalc;
7374
7475BEGIN
src/m.mod
(5 / 5)
  
7878 Message.PrintLine(Message.homechan, debugstr);
7979 END;
8080
81 command := "grep -m 1 -C 30 'C~' LF~CHAN~.log > /usr/local/www/servers/page6.shlrm.org/pages/context/last-NICK~.txt";
81 command := "grep -m 1 -C 30 'C~' LF~CHAN~.log > /usr/local/www/servers/page6.aliboom.com/pages/context/last-NICK~.txt";
8282 StringParse.Replace(parse.nick, "|", "-");
8383 StringParse.Replace(command, "NICK~", parse.nick);
8484 StringParse.Replace(command, "C~", grepfor);
8989 END;
9090 done := ProgExec.Command(command, exit);
9191
92 string := "Context for line number N~ is available at http://page6.shlrm.org/context/last-NICK~.txt";
92 string := "Context for line number N~ is available at http://page6.aliboom.com/context/last-NICK~.txt";
9393 StringParse.Replace(string, "N~", contextline);
9494 StringParse.Replace(string, "NICK~", parse.nick);
9595 Message.PrintLine(parse.chan, string);
205205 done := ProgExec.Command("cp /home/terry/p6dat/tmp/markers/markers2 /home/terry/.xplanet/markers/sourcemage-original", res);
206206 done := ProgExec.Command("cp /home/terry/p6dat/tmp/markers/markers2 /home/terry/.xplanet/markers/sourcemage-original", res);
207207 done := ProgExec.Command("cp /home/terry/p6dat/tmp/markers/markers2 /home/terry/.xplanet/markers/sourcemage", res);
208 done := ProgExec.Command("cp /home/terry/p6dat/tmp/markers/markers /usr/local/www/servers/page6.shlrm.org/pages/markers/sourcemage.txt", res);
209 done := ProgExec.Command("cp /home/terry/p6dat/tmp/markers/markers2 /usr/local/www/servers/page6.shlrm.org/pages/markers/sourcemage-transformed.txt", res);
208 done := ProgExec.Command("cp /home/terry/p6dat/tmp/markers/markers /usr/local/www/servers/page6.aliboom.com/pages/markers/sourcemage.txt", res);
209 done := ProgExec.Command("cp /home/terry/p6dat/tmp/markers/markers2 /usr/local/www/servers/page6.aliboom.com/pages/markers/sourcemage-transformed.txt", res);
210210
211211
212212
231231 Message.PrintLine(parse.chan, "Stand by please...");
232232 MarkersUpdate;
233233 Message.PrintLine(parse.chan, "I just scraped the most recent markers from http://wiki.sourcemage.org/XplanetMarkers");
234 Message.PrintLine(parse.chan, "The basic version is at: http://page6.shlrm.org/markers/sourcemage.txt - sed transformed (nicks only, and colored): http://page6.shlrm.org/markers/sourcemage-transformed.txt");
234 Message.PrintLine(parse.chan, "The basic version is at: http://page6.aliboom.com/markers/sourcemage.txt - sed transformed (nicks only, and colored): http://page6.aliboom.com/markers/sourcemage-transformed.txt");
235235END Markers;
236236
237237
src/o.mod
(70 / 3)
  
1212*)
1313IMPLEMENTATION MODULE o;
1414
15IMPORT FormStr;
1516IMPORT Message;
1617IMPORT ProgExec;
1718IMPORT StringParse;
19IMPORT StreamFile;
20IMPORT TextIO;
21IMPORT STextIO, SWholeIO;
22IMPORT RandomASM, TimeConv;
1823
24TYPE
25 Channel = (atari, modula2);
26
27
28PROCEDURE OnJoinMessage(channel : Channel) : Message.strType;
29VAR
30 string, teststring,
31 fileName : Message.strType;
32 exit,
33 line, i,
34 chance : CARDINAL;
35 file : StreamFile.ChanId;
36 iores : StreamFile.OpenResults;
37
38BEGIN
39 (* Set the seed later, with RandomASM.SetSeed *)
40 RandomASM.SetSeed(TimeConv.millisecs());
41 line := RandomASM.Random(6);
42 chance := RandomASM.Random(9);
43 IF chance > 4 THEN RETURN "noreply" END;
44 CASE channel OF
45 atari : |
46 modula2 : fileName := "/home/terry/p6dat/dat/quotes/M2QuotesPlain.txt";
47 ELSE
48 END;
49 StreamFile.Open(file, fileName, StreamFile.read, iores);
50 (* Just doing it this way temporarily, since it's a short file *)
51 FOR i := 1 TO line DO
52 TextIO.ReadString(file, string);
53 TextIO.SkipLine(file);
54 END;
55 StreamFile.Close(file);
56 RETURN string;
57
58END OnJoinMessage;
59
60PROCEDURE ForceMessage(chan: ARRAY OF CHAR);
61VAR
62 string : Message.strType;
63BEGIN
64 string := OnJoinMessage(modula2);
65 Message.PrintLine(chan, string)
66EXCEPT
67 RETURN
68
69END ForceMessage;
70
71
1972PROCEDURE OnJoin(parse : Message.Parse);
2073VAR
2174 done : BOOLEAN;
2275 exit : CARDINAL;
76 string : Message.strType;
2377
2478BEGIN
79
2580 IF StringParse.InString("JOIN :", parse.raw) THEN
2681 IF StringParse.InString(":#modula-2", parse.raw) THEN
27 IF NOT StringParse.InString("sustaining.qnr", parse.raw) THEN
82
83 IF StringParse.InString("sustaining.qnr", parse.raw) THEN (* ignore *)
84 ELSIF StringParse.InString("n=pp6bot", parse.raw) THEN (* ignore *)
85 ELSE
86 string := OnJoinMessage(modula2);
87 IF StringParse.InString("noreply", string) THEN
88 ELSE
89 Message.PrintLine("#modula-2", string);
90 END;
2891
2992 done := ProgExec.Command('play /home/terry/Multimedia/Audio/ogg/User_is_Online.ogg && flite -t "Someone has joined modula-2"', exit);
30
31 END;
93 (* *)
94 END;
95
3296 END;
3397 IF StringParse.InString(":#atari", parse.raw) THEN
3498 IF NOT StringParse.InString(":#atari-", parse.raw) THEN
101101 END;
102102 END;
103103
104EXCEPT
105
106 RETURN;
104107END OnJoin;
105108
106109END o.
src/q.mod
(1 / 1)
  
9393 FormStr.print(string, "This Channel is: %s", parse.chan);
9494 Message.PrintLine(parse.chan, string);
9595 ELSIF Strings.Equal("server", target) THEN;
96 FormStr.print(string, "My Server is: %s", parse.server);
96 FormStr.print(string, "My Server is: [%s]", parse.server);
9797 Message.PrintLine(parse.chan, string);
9898 ELSIF Strings.Equal("source", target) THEN
9999 Message.PrintLine(parse.chan, "http://gitorious.org/projects/page-six");
src/r.mod
(11 / 5)
  
3434IMPORT FileSys, SeqFile, TextIO, RawIO, WholeIO, FormStr, Message, Setup,
3535 Strings, types, unistd, util;
3636FROM Setup IMPORT check;
37FROM Timers IMPORT signOnTime;
37FROM Timers IMPORT signOnTime, signOnSeconds;
3838FROM Stack IMPORT StackType, CreateStack, Push, Pop, IsEmpty;
3939FROM StringParse IMPORT Clip;
4040
5252BEGIN
5353 SeqFile.OpenWrite(file, stFile, SeqFile.raw+SeqFile.write+SeqFile.old, res);
5454 RawIO.Write(file, signOnTime);
55 RawIO.Write(file, signOnSeconds);
5556 SeqFile.Close(file);
5657END rehashWriteTime;
5758
6363BEGIN
6464 SeqFile.OpenRead(file, stFile, SeqFile.raw+SeqFile.read, res);
6565 RawIO.Read(file, signOnTime);
66 RawIO.Read(file, signOnSeconds);
6667 SeqFile.Close(file);
6768END rehashReadTime;
6869
6970PROCEDURE Rehash(parse: Message.Parse);
7071VAR
71 done : BOOLEAN;
72 file : SeqFile.ChanId;
73 res : SeqFile.OpenResults;
72 done : BOOLEAN;
73 file : SeqFile.ChanId;
74 res : SeqFile.OpenResults;
7475 iores : SeqFile.OpenResults;
75 return : INTEGER;
76 return : INTEGER;
7677 message : ARRAY [0..79] OF CHAR;
7778
7879BEGIN
117117 SeqFile.OpenWrite(file, "/home/terry/p6dat/tmp/rehash/serv", SeqFile.write+SeqFile.old, res);
118118 WholeIO.WriteCard(file, parse.serv, 1);
119119 TextIO.WriteLn(file);
120 IF LENGTH(parse.server) > 2 THEN
121 Clip(parse.server);
122 END;
120123 TextIO.WriteString(file, parse.server);
121124 TextIO.WriteLn(file);
125
122126 IF check.trackercheck.on THEN
123127 TextIO.WriteString(file, "true");
124128 ELSE
src/s.mod
(28 / 17)
  
200200PROCEDURE Spells(parse : Message.Parse);
201201(* Count the number of Source Mage GNU/Linux spells *)
202202CONST
203 lastChecked = "/home/terry/p6dat/dat/spellcount/smgl-lastchecked";
203 lastChecked = "/home/terry/p6dat/tmp/spellcount/smgl-lastchecked";
204204 spells = "/home/terry/p6dat/tmp/spellcount/spells";
205205VAR
206206 string, lastdate, date, null, result, str, source : Message.strType;
207207 done,
208208 avail : BOOLEAN;
209209 file : StreamFile.ChanId;
210 res : StreamFile.OpenResults;
210 iores : StreamFile.OpenResults;
211211 exit : CARDINAL;
212212
213213BEGIN
220220 result := "";
221221 util.CmdUsed(parse);
222222 IF FileSys.Exists(lastChecked) THEN
223 StreamFile.Open(file, lastChecked, StreamFile.read, res);
223 StreamFile.Open(file, lastChecked, StreamFile.read, iores);
224224 TextIO.ReadString(file, lastdate);
225225 StreamFile.Close(file);
226226 ELSE
227227 (* assign earlier date - or do that as a CONST *)
228228 lastdate := util.Date(parse);
229229 StringParse.Replace(lastdate, "200", "100");
230 StreamFile.Open(file, lastChecked, StreamFile.write + StreamFile.old, res);
230 StreamFile.Open(file, lastChecked, StreamFile.write + StreamFile.old, iores);
231231 TextIO.WriteString(file, lastdate);
232232 StreamFile.Close(file);
233233 END;
237237 IF p.PrePing("codex.sourcemage.org") THEN
238238 FileSys.Remove("/home/terry/p6dat/tmp/spellcount/listing.txt", done);
239239 done := ProgExec.Command("wget -P /home/terry/p6dat/tmp/spellcount http://codex.sourcemage.org/listing.txt", exit);
240 StreamFile.Open(file, lastChecked, StreamFile.write + StreamFile.old, res);
240 StreamFile.Open(file, lastChecked, StreamFile.write + StreamFile.old, iores);
241241 TextIO.WriteString(file, date);
242242 StreamFile.Close(file);
243243 (* added this temporarily, since Page Six doesn't always print a number *)
244244 done := ProgExec.Command("wc -l /home/terry/p6dat/tmp/spellcount/listing.txt > /home/terry/p6dat/tmp/spellcount/spells", exit);
245245
246 StreamFile.Open(file, spells, StreamFile.read, res);
246 StreamFile.Open(file, spells, StreamFile.read, iores);
247247 TextIO.ReadString(file, result);
248248 TextIO.SkipLine(file);
249249 StreamFile.Close(file);
252252 END;
253253
254254 ELSE
255
256255 done := ProgExec.Command("wget -nc -P /home/terry/p6dat/tmp/spellcount http://codex.sourcemage.org/listing.txt", exit);
257256 done := ProgExec.Command("wc -l /home/terry/p6dat/tmp/spellcount/listing.txt > /home/terry/p6dat/tmp/spellcount/spells", exit);
258257
259 StreamFile.Open(file, spells, StreamFile.read, res);
258 StreamFile.Open(file, spells, StreamFile.read, iores);
260259 TextIO.ReadString(file, result);
261260 TextIO.SkipLine(file);
262261 StreamFile.Close(file);
271271
272272 Message.PrintLine(parse.chan, str);
273273 (* Added 12 July, use output of gaze grimoire *)
274 StreamFile.Open(file, "/home/terry/p6dat/dat/spells/spellTotals", StreamFile.read, res);
274 StreamFile.Open(file, "/home/terry/p6dat/dat/spells/spellTotals", StreamFile.read, iores);
275275 TextIO.ReadString(file, result);
276276 TextIO.SkipLine(file);
277277 StreamFile.Close(file);
278278 Message.PrintLine(parse.chan, result);
279
279280EXCEPT
280 RETURN
281 Message.PrintLine(homechan, "Oops... an exception in Spells.");
282 Message.PrintLine(Message.homechan, util.DispIOChanException());
283 Message.PrintLine(Message.homechan, util.DispOpenResults(iores));
284
285 RETURN;
281286END Spells;
282287
283288
292292 string, lastdate, date, null, result : Message.strType;
293293 done : BOOLEAN;
294294 file : StreamFile.ChanId;
295 res : StreamFile.OpenResults;
295 iores: StreamFile.OpenResults;
296296 exit : CARDINAL;
297297
298298BEGIN
299299 (*
300300 Message.PrintLine(parse.chan, "Lunar Linux modules count is not yet implemented.");
301301 *)
302 (* Lunar Linux moved their list
302 (* Lunar Linux moved their list *)
303303 string := "Please stand by N~, I'm examining their modules listing.";
304304 StringParse.Replace(string, "N~", parse.nick);
305305 IF FileSys.Exists("/home/terry/p6dat/tmp/spellcount/modules-lastchecked") THEN
306 StreamFile.Open(file, "/home/terry/p6dat/tmp/spellcount/modules-lastchecked", StreamFile.read, res);
306 StreamFile.Open(file, "/home/terry/p6dat/tmp/spellcount/modules-lastchecked", StreamFile.read, iores);
307307 TextIO.ReadString(file, lastdate);
308308 StreamFile.Close(file);
309309 ELSE
310310 (* assign earlier date *)
311311 lastdate := util.Date(parse);
312312 StringParse.Replace(lastdate, "200", "100");
313 StreamFile.Open(file, "/home/terry/p6dat/tmp/spellcount/modules-lastchecked", StreamFile.write+StreamFile.old, res);
313 StreamFile.Open(file, "/home/terry/p6dat/tmp/spellcount/modules-lastchecked", StreamFile.write+StreamFile.old, iores);
314314 TextIO.WriteString(file, lastdate);
315315 StreamFile.Close(file);
316316 END;
320320 done := ProgExec.Command("lynx -dump -nolist -accept_all_cookies -width=200 http://modules.lunar-linux.org > /home/terry/p6dat/tmp/spellcount/modules.txt", exit);
321321 done := ProgExec.Command("grep -i 'Total Modules' /home/terry/p6dat/tmp/spellcount/modules.txt > /home/terry/p6dat/tmp/spellcount/modules.count", exit);
322322 END;
323 StreamFile.Open(file, "/home/terry/p6dat/tmp/spellcount/modules.count", StreamFile.read, res);
323 StreamFile.Open(file, "/home/terry/p6dat/tmp/spellcount/modules.count", StreamFile.read, iores);
324324 TextIO.ReadString(file, result);
325325 StreamFile.Close(file);
326326 REPEAT
331331 StringParse.Replace(string, "N~", parse.nick);
332332 StringParse.Replace(string, "M~", result);
333333 Message.PrintLine(parse.chan, string);
334 *)
334 (* *)
335 (*
335336 FormStr.print(string, "I'm sorry %s, the Lunar Linux modules count has been temporarily disabled.", parse.nick);
336337 Message.PrintLine(parse.chan,string);
338 *)
337339EXCEPT
338340 Message.PrintLine(Setup.homechan, "Oops, an exception in SpellsLunar");
341 Message.PrintLine(Message.homechan, util.DispIOChanException());
342 Message.PrintLine(Message.homechan, util.DispOpenResults(iores));
339343 RETURN;
340344END SpellsLunar;
341345
354354VAR
355355 string : Message.strType;
356356 sent, read : ARRAY[0..9] OF CHAR;
357
357 debugging : BOOLEAN;
358358BEGIN
359 debugging := FALSE;
360 IF debugging THEN Message.PrintLine(Message.homechan, "debug: entering SignOnTime(parse)"); END;
359361 SignOnTime(parse);
362 IF debugging THEN Message.PrintLine(Message.homechan, "debug: returned from SignOnTime(parse)"); END;
360363 string := "";
361364 WholeStr.CardToStr(Message.linesSent, sent);
362365 WholeStr.CardToStr(Message.linesRead, read);
src/t.mod
(6 / 1)
  
102102 StringParse.Clip(target);
103103 StringParse.Strip(target);
104104 END;
105 FormStr.print(command, "timein %s > /home/terry/p6dat/tmp/timein", target);
105 (*
106 IF StringParse.InString(" ", target) THEN
107 StringParse.Replace(target, " ", "_");
108 END;
109 *)
110 FormStr.print(command, "timein '%s' > /home/terry/p6dat/tmp/timein", target);
106111 output(command);
107112 IF Strings.Equal(target, "") OR
108113 Strings.Equal(target, "-h") OR
src/users.mod
(10 / 10)
  
2626
2727CONST
2828 debugging = FALSE;
29 webDir = '/usr/local/www/server/page6.shlrm.org/pages/';
29 webDir = '/usr/local/www/servers/page6.aliboom.com/pages/';
3030
3131 tempfile = webDir+"users/temp.png"; (* old file, used with diff command *)
3232 difffile = webDir+"users/visual-diff.pam"; (* graphic output *)
7474 ** really works in relation to images created after I changed to this method.
7575 ** create the file note, which will contain the description and tags
7676 *)
77 command := "echo 'Source Mage GNU/Linux users centered over NAME DATE TIME http://www.sourcemage.org tags: smgl users' > /usr/local/www/servers/page6.shlrm.org/pages/users/note";
77 command := "echo 'Source Mage GNU/Linux users centered over NAME DATE TIME http://www.sourcemage.org tags: smgl users' > /usr/local/www/servers/page6.aliboom.com/pages/users/note";
7878 StringParse.Replace(command, "NAME", name);
7979 StringParse.Replace(command, "DATE", util.Date(parse));
8080 StringParse.Replace(command, "TIME", util.Time(parse));
8181 done := ProgExec.Command(command, res);
82 command := "mail -s 'smgl users in NAM' -a FILE eight06looked@photos.flickr.com < /usr/local/www/servers/page6.shlrm.org/pages/users/note";
82 command := "mail -s 'smgl users in NAM' -a FILE eight06looked@photos.flickr.com < /usr/local/www/servers/page6.aliboom.com/pages/users/note";
8383 StringParse.Replace(command, "FILE", filepng);
8484 StringParse.Replace(command, "NAM", name);
8585 IF debugging THEN
100100 ** compare -metric AE
101101 ** this is done by a bash script in the directory, and creates the file visual-diff.txt
102102 *)
103 command := '/usr/local/www/servers/page6.shlrm.org/pages/users/test.sh "PNGf"';
103 command := '/usr/local/www/servers/page6.aliboom.com/pages/users/test.sh "PNGf"';
104104 StringParse.Replace(command, "PNGf", filepng);
105105 IF debugging THEN
106106 Message.Notice("qnr", command);
114114
115115 (* Read difftext and see if the change is greater than about 55000. If it is, upload the new image
116116 ** 51000 is a guess, it will take a while to pin down the actual point *)
117 SeqFile.OpenRead( fileid, "/usr/share/httpd/htdocs/users/visual-diff.txt", SeqFile.read, fileres );
117 SeqFile.OpenRead( fileid, "/usr/local/www/servers/page6.aliboom.com/pages/users/visual-diff.txt", SeqFile.read, fileres );
118118 IF debugging THEN
119119 Message.Notice("qnr", util.DispOpenResults(fileres));
120120 END;
147147 Message.PrintLine(parse.chan, reportstring);
148148 ELSE
149149 (* They are different, upload the new image to Flickr, advise channel to go to Flickr *)
150 reportstring := "NAM has been updated. Image is being uploaded to Flickr and should be available in 60 seconds or so.";
150 reportstring := "NAM has been updated. Image is being uploaded to http://www.flickr.com/photos/qnr and should be available in 120 seconds or so.";
151151 StringParse.Replace(reportstring, "NAM", name);
152152 Message.PrintLine(parse.chan, reportstring);
153153 reportstring := "Visit http://flickr.com/search/?q=smgl+users+NAM&w=78272611%40N00&s=rec for all available images.";
162162 (* create the file note, which will contain the description and tags *)
163163 (* Use util.Date and util.Time *)
164164
165 command := "echo 'Source Mage GNU/Linux users centered over NAME DATE TIME http://www.sourcemage.org tags: smgl users' > /usr/share/httpd/htdocs/users/note";
165 command := "echo 'Source Mage GNU/Linux users centered over NAME DATE TIME http://www.sourcemage.org tags: smgl users' > /usr/local/www/servers/page6.aliboom.com/pages/users/note";
166166 StringParse.Replace(command, "NAME", name);
167167 StringParse.Replace(command, "DATE", util.Date(parse));
168168 StringParse.Replace(command, "TIME", util.Time(parse));
169169 done := ProgExec.Command(command, res);
170 command := "mail -s 'smgl users in NAM' -a FILE eight06looked@photos.flickr.com < /usr/share/httpd/htdocs/users/note";
170 command := "mail -s 'smgl users in NAM' -a FILE eight06looked@photos.flickr.com < /usr/local/www/servers/page6.aliboom.com/pages/users/note";
171171 StringParse.Replace(command, "FILE", filepng);
172172 StringParse.Replace(command, "NAM", name);
173173
210210 IF FileSys.Exists(difffile) THEN FileSys.Remove(difffile, done) END;
211211 IF FileSys.Exists(difftext) THEN FileSys.Remove(difftext, done) END;
212212 IF FileSys.Exists(notefile) THEN FileSys.Remove(notefile, done) END;
213 temp := "/usr/share/httpd/htdocs/users/smgl-NAM.png";
213 temp := "/usr/local/www/servers/page6.aliboom.com/pages/users/smgl-NAM.png";
214214 StringParse.Replace(temp, "NAM", name);
215215 IF FileSys.Exists(temp) THEN
216216 FileSys.Rename(temp, tempfile, done);
220220 END;
221221 (* Now, generate the new image *)
222222 done := ProgExec.Command(command, res);
223 command := "mv /home/terry/.xplanet/markers/smgl-NAM.png /usr/share/httpd/htdocs/users/";
223 command := "mv /home/terry/.xplanet/markers/smgl-NAM.png /usr/local/www/servers/page6.aliboom.com/pages/users/";
224224 StringParse.Replace(command, "NAM", name);
225225 done := ProgExec.Command(command, res);
226226 done := ProgExec.Command("cp /home/terry/.xplanet/markers/sourcemage-original /home/terry/.xplanet/markers/sourcemage", res);
  
201201
202202PROCEDURE CmdUsed(parse : Message.Parse);
203203VAR
204 str, date, time : Message.strType;
204 str, date, timer, time : Message.strType;
205205 iores : SeqFile.OpenResults;
206206 file,
207207 logfile : SeqFile.ChanId;
212212 date := Date(parse);
213213 time := Time(parse);
214214 FormStr.print(str, "NOTE: On %s, at %s, %s, %s used: %s", date, time, parse.chan, parse.nick, parse.cmd);
215 SeqFile.OpenAppend( logfile, "/home/terry/p6dat/log", SeqFile.write+SeqFile.old, iores);
215 SeqFile.OpenAppend( logfile, "/home/terry/p6dat/dat/log/CmdLog", SeqFile.write+SeqFile.old, iores);
216216 TextIO.WriteString(logfile, str);
217217 SeqFile.Close(logfile);
218218
Binary files differ
Binary files differ
Binary files differ
  
1515KÀÂSetup
1616Parse
1717LÀÂMessage
18InString
18GetServerName
1919QÀÂ
20InString
21RÀÂ
2022Action
21SÀÂ
23TÀÂ
2224PrintLine
23UÀÂ
25VÀÂ
2426Notice
25WÀÂ
27XÀÂ
2628DoSend
27YÀÂ
29ZÀÂ
2830DoRead
29[ÀÂ
31\ÀÂ
3032ParseLine
31\ÀàÁ@ÀÃÀfEÄÀÀ@À ÊÁ¿def/Message.def
33]ÀàÁ@ÀÃÀs
34@RÄÀÀ@À ÊÁ¿def/Message.def
3235ÀÒÂÛmaxChars
3336Á@ÀÀÄÀ
3437À ÊÁÀÓÂÛmaxNick
5656Á@À
5757À ÁÁÀìÂÆlinesSent
5858Á@À
59À ÆÁÀîÀQÀInString
59À ÆÁÀîÀQÀGetServerName
6060@Á@À
61À ÆÁÀðÀSÀAction
61À ÆÁÀðÀRÀInString
6262@Á@À
63À ÆÁÀòÀUÀPrintLine
63À ÆÁÀòÀTÀAction
6464@Á@À
65À ÆÁÀôÀWÀNotice
65À ÆÁÀôÀVÀPrintLine
6666@Á@À
67À ÆÁÀøÀYÀDoSend
67À ÆÁÀöÀXÀNotice
6868@Á@À
69À ÆÁÀúÀ[ÀDoRead
69À ÆÁÀúÀZÀDoSend
7070@Á@À
71À ÆÁÀüÀ\ÀParseLine
71À ÆÁÀüÀ\ÀDoRead
7272@Á@À
73À ÆÁÀþÀ]ÀParseLine
74@Á@À
7375À  @ÀÐÁÀËÒ@ÀMessage
7476ÀÀ
7577À ÚÁBÀÑÆÉÀÀÀÀÀÀÀÀ àÁBÀÃÀAxDÄÀÀBÀ ËÁ¿def/Setup.def
127127ÄLÀ
128128À ÍÁÁøÆEÀhomepath
129129ÄLÀ
130À  ØÁBÀÑNÀóÀÀÀÀÀÀòÀ ÒÁBÀÆÀÀÀÀÀÀÀÀòÀ ØÁBÀÑPÀÕÀÀÀÀÀÀÔÀ ÒÁBÀÆÀÀÀÀÀÀÀÀÔÀ ×Á@ÀÏÀÀÀÀQÀ ÁÁÀîÔRÀstring
130À  ØÁBÀÑNÀóÀÀÀÀÀÀòÀ ÒÁBÀÆÀÀÀÀÀÀÀÀòÀ ØÁBÀÑPÀÕÀÀÀÀÀÀÔÀ ÒÁBÀÆÀÀÀÀÀÀÀÀÔÀ ×Á@ÀÃÀÀÀÀQÀ ÂÁÀîÜLÀparse
131ÀÀ
132À  ×Á@ÀÏÀÀÀÀRÀ ÁÁÀðÔSÀstring
131133ÂÀ
132À ÁÁÀîÜRÀline
134À ÁÁÀðÜSÀline
133135ÂÀ
134À  ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀSÀ ÁÁÀðÑTÀchannel
136À  ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀTÀ ÁÁÀòÑUÀchannel
135137ÂÀ
136À ÁÁÀðÚTÀmessage
138À ÁÁÀòÚUÀmessage
137139ÂÀ
138À  ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀUÀ ÁÁÀòÔVÀchannel
140À  ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀVÀ ÁÁÀôÔWÀchannel
139141ÂÀ
140À ÁÁÀòÝVÀmessage
142À ÁÁÀôÝWÀmessage
141143ÂÀ
142À  ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀWÀ ÁÁÀôÒXÀchannel
144À  ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀXÀ ÁÁÀöÒYÀchannel
143145ÂÀ
144À ÁÁÀôÛXÀmessage
146À ÁÁÀöÛYÀmessage
145147ÂÀ
146À  ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀYÀ ÁÁÀøÑÆserv
148À  ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀZÀ ÁÁÀúÑÆserv
147149ÂÀ
148À ÁÁÀøàZÀmsg
150À ÁÁÀúà[Àmsg
149151ÂÀ
150À  ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀLÀÀÀÀÀ[À ÁÁÀúÑÆserv
152À  ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀLÀÀÀÀÀ\À ÁÁÀüÑÆserv
151153ÂÀ
152À  ×Á@ÀLÀÀÀÀÀ\À ÁÁÀüÔCÀmsg
154À  ×Á@ÀLÀÀÀÀÀ]À ÁÁÀþÔCÀmsg
153155ÂÀ
154156À  Setup
155157Sockets
Binary files differ
sym/b.sym
(2 / 2)
Binary files differ
Binary files differ
sym/c.sym
(1 / 1)
Binary files differ
Binary files differ
sym/d.sym
(1 / 1)
Binary files differ
sym/f.sym
(1 / 1)
Binary files differ
Binary files differ
Binary files differ
Binary files differ
Binary files differ
Binary files differ
sym/k.sym
(1 / 1)
Binary files differ
sym/m.sym
(1 / 1)
Binary files differ
sym/n.sym
(1 / 1)
Binary files differ
sym/o.sym
(40 / 34)
  
11S=ÂØPÂÁo
22@ÀÂ
3ForceMessage
4AÀÂ
35OnJoin
4AÀÂSetup
6CÀÂSetup
57Parse
6BÀÁ
7CÀÂ
8DÀÁ
9EÀÂ
810nickType
9DÀÂ
11FÀÂ
1012strType
11JÀàÁ@ÀÃÀ2fEÄÀÀ@À ÆÁ¿def/o.def
12ÀÄÀAÀOnJoin
13LÀàÁ@ÀÃÀx|RÄÀÀ@À ÆÁ¿def/o.def
14ÀÄÀAÀForceMessage
1315@Á@À
16À ÆÁÀÇÀCÀOnJoin
17@Á@À
1418À  @ÀÐÁÀÀÒ@Ào
1519ÀÀ
16À ×Á@ÀÃÀÀÀÀAÀ ÁÁÀÄÑBÀparse
20À ×Á@ÀÃÀÀÀÀAÀ ÁÁÀÄ×BÀchan
1721ÂÀ
18À  ÛÁCÀÀÀÀÀÄBÀ ÍÁ¿def/Setup.def
19ÁïÆDÀbotname
20ÄBÀ
22À  ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀCÀ ÁÁÀÇÑDÀparse
23ÂÀ
24À  ÛÁEÀÀÀÀÀÄDÀ ÍÁ¿def/Setup.def
25ÁïÆFÀbotname
26ÄDÀ
2127À ÍÁÁðÆÆserv
22ÄBÀ
23À ÍÁÁñÆFÀserver
24ÄBÀ
25À ÍÁÁòÆHÀchan
26ÄBÀ
27À ÍÁÁóÆDÀnick
28ÄBÀ
29À ÍÁÁôÆJÀmessage
30ÄBÀ
31À ÍÁÁõÆJÀraw
32ÄBÀ
33À ÍÁÁöÆJÀcmd
34ÄBÀ
28ÄDÀ
29À ÍÁÁñÆHÀserver
30ÄDÀ
31À ÍÁÁòÆJÀchan
32ÄDÀ
33À ÍÁÁóÆFÀnick
34ÄDÀ
35À ÍÁÁôÆLÀmessage
36ÄDÀ
37À ÍÁÁõÆLÀraw
38ÄDÀ
39À ÍÁÁöÆLÀcmd
40ÄDÀ
3541À ÍÁÁ÷ÆÏIsMessage
36ÄBÀ
37À ÍÁÁøÆDÀhomepath
38ÄBÀ
39À  àÁCÀÃÀAxDÄÀÀCÀ ËÁÁÚÃJÀstrType
40ÁCÀ
41À ËÁÁÛÂDÀnickType
42ÁCÀ
43À ËÁÁíÂBÀParse
44ÁCÀ
45À  CÀÐÁÁÌÒCÀSetup
42ÄDÀ
43À ÍÁÁøÆFÀhomepath
44ÄDÀ
45À  àÁEÀÃÀAxDÄÀÀEÀ ËÁÁÚÃLÀstrType
46ÁEÀ
47À ËÁÁÛÂFÀnickType
48ÁEÀ
49À ËÁÁíÂDÀParse
50ÁEÀ
51À  EÀÐÁÁÌÒEÀSetup
4652ÀÀ
47À ØÁCÀÑEÀóÀÀDÀÀÀÀÀòÀ ÒÁCÀÆÀÀÀÀÀÀÀÀòÀ ØÁCÀÑGÀóÀÀÀÀÀÀòÀ ÒÁCÀÆÀÀÀÀÀÀÀÀòÀ ØÁCÀÑIÀÕÀÀÀÀÀÀÔÀ ÒÁCÀÆÀÀÀÀÀÀÀÀÔÀ ØÁCÀÑKÀÄÀÀJÀÀÀÀÀÄÀ ÒÁCÀÆÀÀÀÀÀÀÀÀÄÀ Message
53À ØÁEÀÑGÀóÀÀFÀÀÀÀÀòÀ ÒÁEÀÆÀÀÀÀÀÀÀÀòÀ ØÁEÀÑIÀóÀÀÀÀÀÀòÀ ÒÁEÀÆÀÀÀÀÀÀÀÀòÀ ØÁEÀÑKÀÕÀÀÀÀÀÀÔÀ ÒÁEÀÆÀÀÀÀÀÀÀÀÔÀ ØÁEÀÑMÀÄÀÀLÀÀÀÀÀÄÀ ÒÁEÀÆÀÀÀÀÀÀÀÀÄÀ Message
sym/p.sym
(2 / 1)
Binary files differ
sym/q.sym
(1 / 1)
Binary files differ
sym/r.sym
(2 / 1)
Binary files differ
sym/s.sym
(1 / 1)
Binary files differ
sym/t.sym
(1 / 1)
Binary files differ
Binary files differ
sym/u.sym
(1 / 1)
Binary files differ
Binary files differ
Binary files differ
sym/v.sym
(2 / 1)
Binary files differ
sym/w.sym
(1 / 1)
Binary files differ
tmp.mkf
(5 / 1)
  
11M = tmp.mkf
22
3TSLIBS = /usr/local/xds/lib/x86/libts.a
3TSLIBS =
44
55INCL = .
66
2424 obj/Connect.o \
2525 obj/EightBall.o \
2626 obj/FloodProtect.o \
27 obj/Force.o \
2728 obj/Handler.o \
2829 obj/Logging.o \
2930 obj/Mention.o \
3031 obj/Message.o \
3132 obj/PageSix.o \
3233 obj/RandCard.o \
34 obj/RandomASM.o \
3335 obj/Setup.o \
3436 obj/Stack.o \
3537 obj/StringParse.o \
38 obj/TimeFunc.o \
3639 obj/Timers.o \
3740 obj/XMLReadLib.o \
3841 obj/b.o \
5151 obj/gaze.o \
5252 obj/gazeInfo.o \
5353 obj/gazeProvides.o \
54 obj/gazeVersions.o \
5455 obj/google.o \
5556 obj/k.o \
5657 obj/m.o \