Commit 417a05d4b412d4f6b8374506475ec1a2adef914b
- Diff rendering mode:
- inline
- side by side
PageSix.mod
(3 / 2)
|   | |||
| 212 | 212 | *) | |
| 213 | 213 | ||
| 214 | 214 | Connect.DoLogin(parse.botname, parse.botname, ""); | |
| 215 | Message.DoSend(serv, "JOIN #atari-3"); | ||
| 216 | |||
| 215 | (* | ||
| 216 | Message.DoSend(serv, "JOIN :#atari-3"); | ||
| 217 | *) | ||
| 217 | 218 | parse := Message.DoRead(serv); | |
| 218 | 219 | ||
| 219 | 220 | check.trackercheck.on := FALSE; |
def/Message.def
(2 / 0)
|   | |||
| 44 | 44 | VAR | |
| 45 | 45 | linesSent, linesRead : CARDINAL; | |
| 46 | 46 | ||
| 47 | PROCEDURE GetServerName(VAR parse: Parse); | ||
| 48 | |||
| 47 | 49 | PROCEDURE InString( string, line : ARRAY OF CHAR ) : BOOLEAN ; | |
| 48 | 50 | ||
| 49 | 51 | PROCEDURE Action(channel, message : ARRAY OF CHAR); |
def/o.def
(3 / 0)
|   | |||
| 2 | 2 | ||
| 3 | 3 | IMPORT Message; | |
| 4 | 4 | ||
| 5 | PROCEDURE ForceMessage(chan: ARRAY OF CHAR); | ||
| 6 | (* For testing purposes, outputs to #atari-3 *) | ||
| 7 | |||
| 5 | 8 | PROCEDURE OnJoin(parse : Message.Parse); | |
| 6 | 9 | ||
| 7 | 10 | END o. |
obj/Connect.o
(2 / 2)
Binary files differ
obj/FloodProtect.o
(3 / 4)
Binary files differ
obj/Handler.o
(70 / 72)
Binary files differ
obj/Logging.o
(9 / 8)
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
obj/Timers.o
(4 / 2)
Binary files differ
obj/bugsearch.o
(1 / 1)
Binary files differ
obj/d.o
(4 / 3)
Binary files differ
obj/gaze.o
(37 / 47)
Binary files differ
obj/gazeProvides.o
(2 / 4)
Binary files differ
obj/google.o
(4 / 3)
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
src/Connect.mod
(12 / 3)
|   | |||
| 7 | 7 | ||
| 8 | 8 | IMPLEMENTATION MODULE Connect; | |
| 9 | 9 | ||
| 10 | FROM Message IMPORT DoSend, DoRead, Parse, InString, nickType; | ||
| 10 | FROM Message IMPORT DoSend, DoRead, Parse, InString, nickType, GetServerName; | ||
| 11 | 11 | FROM NetDB IMPORT gethostbyname, HostEntPtr; | |
| 12 | 12 | FROM Sockets IMPORT Socket; | |
| 13 | 13 | FROM Strings IMPORT Assign, Concat; | |
| … | … | ||
| 54 | 54 | ||
| 55 | 55 | PROCEDURE ["C"] / connect ( socket : CARDINAL; | |
| 56 | 56 | servAddr : inAddr; | |
| 57 | |||
| 57 | 58 | addrlen : CARDINAL ) : BOOLEAN; | |
| 58 | 59 | ||
| 59 | 60 | PROCEDURE ["C"] / htons ( numb : CARD16 ) : CARD16; | |
| … | … | ||
| 134 | 134 | nonsmgl : DoSend(serv, "JOIN :#atari,#atari-2,#atari-3,#melug,#modula-2")| | |
| 135 | 135 | testchans : DoSend(serv, "JOIN :#atari-3,#sourcemage-tome") | | |
| 136 | 136 | 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 | (* *) | ||
| 138 | 146 | END; | |
| 139 | 147 | ||
| 140 | 148 | (* Change this to external file *) | |
| … | … | ||
| 152 | 152 | FormStr.print(string, "PRIVMSG NickServ :identify %s", nickservData); | |
| 153 | 153 | DoSend(serv, string); | |
| 154 | 154 | (* Get Server name *) | |
| 155 | |||
| 155 | GetServerName(parse); | ||
| 156 | 156 | END DoLogin; | |
| 157 | 157 | ||
| 158 | 158 |
src/EightBall.mod
(6 / 4)
|   | |||
| 12 | 12 | answers : ARRAY [0..CHOICES] OF ARRAY [0..29] OF CHAR; | |
| 13 | 13 | choice : INTEGER; | |
| 14 | 14 | BEGIN | |
| 15 | seed := millisecs(); (* re-seed the random number generator *) | ||
| 16 | (* There is probably a better way of doing this *) | ||
| 17 | 15 | answers[0] := 'Yes.'; | |
| 18 | 16 | answers[1] := 'No.'; | |
| 19 | 17 | answers[2] := 'Outlook not so good.'; | |
| … | … | ||
| 57 | 57 | answers[42] := 'Forget about it.'; | |
| 58 | 58 | ||
| 59 | 59 | 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); | ||
| 62 | 62 | EXCEPT | |
| 63 | 63 | RETURN | |
| 64 | 64 | END EightBall; | |
| 65 | |||
| 66 | BEGIN | ||
| 67 | seed := millisecs(); (* re-seed the random number generator *) | ||
| 68 | (* There is probably a better way of doing this *) | ||
| 65 | 69 | ||
| 66 | 70 | END EightBall. |
src/FloodProtect.mod
(4 / 0)
|   | |||
| 5 | 5 | FROM ProgExec IMPORT Command; | |
| 6 | 6 | FROM Message IMPORT DoSend, Parse; | |
| 7 | 7 | FROM StringParse IMPORT Replace; | |
| 8 | FROM FormStr IMPORT print; | ||
| 8 | 9 | ||
| 9 | 10 | CONST | |
| 10 | 11 | protectFile = "/home/terry/p6dat/tmp/protect"; | |
| … | … | ||
| 18 | 18 | PROCEDURE StartFP ( parse : Parse ); | |
| 19 | 19 | VAR pingStr : ARRAY [0..39] OF CHAR; | |
| 20 | 20 | BEGIN | |
| 21 | print(pingStr, "PING %s :floodprotect", parse.server); | ||
| 22 | (* | ||
| 21 | 23 | pingStr := "PING S~ :floodprotect"; | |
| 22 | 24 | Replace(pingStr, "S~", parse.server); | |
| 25 | *) | ||
| 23 | 26 | DoSend(parse.serv, pingStr); | |
| 24 | 27 | SetProtect( pause ); | |
| 25 | 28 | END StartFP; |
src/Handler.mod
(20 / 8)
|   | |||
| 39 | 39 | FROM SWholeIO IMPORT WriteCard, WriteInt; | |
| 40 | 40 | IMPORT Connect; | |
| 41 | 41 | IMPORT fortune; | |
| 42 | IMPORT gaze, gazeInfo, gazeProvides; | ||
| 42 | IMPORT gaze, gazeInfo, gazeProvides, gazeVersions; | ||
| 43 | 43 | IMPORT Message; | |
| 44 | 44 | IMPORT ProgExec; | |
| 45 | 45 | IMPORT StreamFile; | |
| … | … | ||
| 48 | 48 | IMPORT users; | |
| 49 | 49 | IMPORT WholeStr, RegComp, FormStr; | |
| 50 | 50 | ||
| 51 | IMPORT b, d, c, EightBall, f, google, k, m, Mention, n, o, p, q, r, s, t, u, v, w; | ||
| 51 | IMPORT b, d, c, EightBall, f, Force, google, k, m, Mention, n, o, p, q, r, s, t, u, v, w; | ||
| 52 | 52 | IMPORT Timers, tracker, bugcheckState, bugsearch, conversions, util; | |
| 53 | 53 | FROM Setup IMPORT ChannelT, checkChans, check; | |
| 54 | 54 | ||
| 55 | 55 | VAR | |
| 56 | pFound : BOOLEAN; | ||
| 56 | pFound, skip : BOOLEAN; | ||
| 57 | 57 | pOfPattern : CARDINAL; | |
| 58 | 58 | str, cmd, msg, tmp, | |
| 59 | 59 | part1, part2 : Message.strType; | |
| … | … | ||
| 167 | 167 | Capitalize(cmd); | |
| 168 | 168 | msg := parse.message; | |
| 169 | 169 | Capitalize(msg); | |
| 170 | |||
| 171 | skip := FALSE; | ||
| 172 | |||
| 170 | 173 | (* PING - goofing off *) | |
| 171 | 174 | (* | |
| 172 | 175 | IF Left("PING", msg) OR Left("!PING", msg) THEN PrintLine(parse.chan, "PONG!") END; | |
| … | … | ||
| 421 | 421 | (* F <><><><><><><><><><> *) | |
| 422 | 422 | (* f2c - convert temperature from fahrenheit to celsius *) | |
| 423 | 423 | 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; | ||
| 424 | 430 | (* Force last bug - change the last known bug, for testing *) | |
| 425 | 431 | IF InString("FORCE LAST BUG", msg) OR InString("FORCE LAST KNOWN BUG", msg) THEN | |
| 426 | 432 | bugcheckState.changeLastKnownBug(parse); | |
| … | … | ||
| 497 | 497 | IF RegComp.Match(re, cmd, 0) THEN gaze.search(parse) END; | |
| 498 | 498 | (* Gaze Source URL *) | |
| 499 | 499 | 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; | ||
| 501 | 501 | (* Gaze Source *) | |
| 502 | 502 | 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; | ||
| 504 | 504 | (* Gaze Updated *) | |
| 505 | 505 | RegComp.Compile('GAZE UPDATED *|UPDATED *', re, regexres); | |
| 506 | 506 | IF RegComp.Match(re, cmd, 0) THEN gaze.updated(parse) END; | |
| … | … | ||
| 512 | 512 | IF RegComp.Match(re, cmd, 0) THEN gaze.version(parse) END; | |
| 513 | 513 | (* Gaze Versions *) | |
| 514 | 514 | 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; | ||
| 516 | 517 | (* Gaze What Full or Short *) | |
| 517 | 518 | RegComp.Compile('GAZE WHAT FULL *|GAZE FULL *|WHAT FULL *|FULL *|GAZE WHAT LONG *|GAZE LONG *|WHAT LONG *|LONG *', re, regexres); | |
| 518 | 519 | IF RegComp.Match(re, cmd, 0) THEN gaze.whatFull(parse) END; | |
| … | … | ||
| 619 | 619 | Left("LUNAR MODULES", cmd) OR | |
| 620 | 620 | Left("MODULES", cmd) THEN s.SpellsLunar(parse); | |
| 621 | 621 | (* 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; | ||
| 623 | 623 | (* status *) | |
| 624 | 624 | IF Left("STATUS", cmd) THEN s.Status(parse) END; | |
| 625 | 625 | (* T <><><><><><><><><><> *) | |
| … | … | ||
| 709 | 709 | IF Left("UNMAINTAINED", cmd) THEN u.unmaintained(parse) END; | |
| 710 | 710 | (* users - generate a map showing the location of users *) | |
| 711 | 711 | (* 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 | (* | ||
| 713 | 714 | PrintLine(parse.chan, "Sorry, !users has been disabled."); | |
| 715 | *) | ||
| 714 | 716 | END; | |
| 715 | 717 | (* V <><><><><><><><><><> *) | |
| 716 | 718 | IF Left("VOTE", cmd) THEN v.Vote(parse) END; |
src/Logging.mod
(7 / 5)
|   | |||
| 5 | 5 | ||
| 6 | 6 | ||
| 7 | 7 | CONST | |
| 8 | irclogFile = "/home/terry/p6dat/dat/log/irclog"; | ||
| 8 | irclogFile = "/home/terry/p6dat/dat/log/irclog"; | ||
| 9 | 9 | maxLogLength = 699; | |
| 10 | writeFlags = SeqFile.write+SeqFile.old; | ||
| 10 | writeFlags = SeqFile.write+SeqFile.old; | ||
| 11 | 11 | ||
| 12 | 12 | TYPE | |
| 13 | logLineType = ARRAY [0..maxLogLength] OF CHAR; | ||
| 13 | logLineType = ARRAY [0..maxLogLength] OF CHAR; | ||
| 14 | 14 | dateTimeType = ARRAY [0..19] OF CHAR; | |
| 15 | 15 | ||
| 16 | 16 | VAR | |
| … | … | ||
| 123 | 123 | ELSIF InString("/pagesix JOIN :", string) THEN | |
| 124 | 124 | ELSIF InString(" JOIN :#", string) THEN | |
| 125 | 125 | 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 *) | ||
| 128 | 130 | ELSIF InString(":ChanServ!ChanServ@services. NOTICE", string) THEN | |
| 129 | 131 | ELSIF InString(":NickServ!NickServ@services. NOTICE", string) THEN | |
| 130 | 132 | ELSE |
src/Mention.mod
(6 / 7)
|   | |||
| 160 | 160 | BEGIN | |
| 161 | 161 | ||
| 162 | 162 | 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); | ||
| 167 | 166 | status := ProgExec.Command(command, exit); | |
| 168 | 167 | 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); | ||
| 171 | 171 | Message.PrintLine(line.chan, outputStr); | |
| 172 | |||
| 173 | 172 | ||
| 174 | 173 | END scpInfo; | |
| 175 | 174 |
src/Message.mod
(67 / 26)
|   | |||
| 11 | 11 | FROM STextIO IMPORT WriteString, WriteLn; | |
| 12 | 12 | FROM SYSTEM IMPORT INT, LOC; | |
| 13 | 13 | FROM FloodProtect IMPORT continue, SetProtect; | |
| 14 | IMPORT FileSys, StreamFile, WholeIO, ProgEnv, Logging, StdChans, TextIO, Printf, FormStr; | ||
| 14 | IMPORT FileSys, StreamFile, WholeIO, ProgEnv, Logging, StdChans, TextIO, Printf, FormStr, StringParse; | ||
| 15 | 15 | ||
| 16 | 16 | CONST | |
| 17 | 17 | CR = 15C; | |
| … | … | ||
| 34 | 34 | command : INTEGER; | |
| 35 | 35 | VAR argument : ARRAY OF LOC ) : BOOLEAN; | |
| 36 | 36 | ||
| 37 | PROCEDURE GetServerName(msg : ARRAY OF CHAR); | ||
| 37 | PROCEDURE GetServerName(VAR parse: Parse); | ||
| 38 | 38 | VAR | |
| 39 | 39 | endPos : CARDINAL; | |
| 40 | debugStr : strType; | ||
| 40 | 41 | BEGIN | |
| 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 | |||
| 48 | 60 | END GetServerName; | |
| 49 | 61 | ||
| 50 | 62 | PROCEDURE GetHomePath(parse: Parse): Parse; | |
| … | … | ||
| 141 | 141 | PROCEDURE ParseLine(msg : strType) : Parse; | |
| 142 | 142 | ||
| 143 | 143 | VAR | |
| 144 | temp : strType; | ||
| 145 | found : BOOLEAN; | ||
| 144 | temp, | ||
| 145 | server, | ||
| 146 | null : strType; | ||
| 147 | found, | ||
| 148 | debugging: BOOLEAN; | ||
| 146 | 149 | startPos, | |
| 147 | 150 | endPos : CARDINAL; | |
| 148 | 151 | debugStr : strType; | |
| 149 | |||
| 152 | pingString : ARRAY[0..80] OF CHAR; | ||
| 153 | |||
| 150 | 154 | BEGIN | |
| 155 | debugging := FALSE; | ||
| 151 | 156 | temp := msg; | |
| 152 | 157 | parse.botname := botName; | |
| 153 | 158 | parse.IsMessage := FALSE; | |
| 154 | 159 | ||
| 155 | 160 | parse.serv := 3; | |
| 156 | 161 | ||
| 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 | |||
| 167 | 178 | (* Flood protection *) | |
| 168 | 179 | IF InString("PONG floodprotect", msg) THEN | |
| 169 | 180 | 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; | ||
| 171 | 197 | (* Get the channel name *) | |
| 172 | 198 | IF InString("MSG #", msg) THEN | |
| 173 | 199 | IF InString("PRIVMSG", msg) THEN | |
| … | … | ||
| 254 | 254 | parse.raw := message; | |
| 255 | 255 | ||
| 256 | 256 | parse := ParseLine(message); | |
| 257 | |||
| 257 | IF LENGTH(parse.server) < 5 THEN | ||
| 258 | GetServerName(parse); | ||
| 259 | END; | ||
| 258 | 260 | IF LENGTH(msg) > 0 THEN | |
| 259 | 261 | INC( linesRead ); | |
| 260 | 262 | WriteString(message); | |
| … | … | ||
| 294 | 294 | END; | |
| 295 | 295 | (* Note: Need to delete /home/terry/p6dat/tmp/rehash/serv after this works *) | |
| 296 | 296 | EXCEPT | |
| 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."); | ||
| 298 | 299 | RETURN; | |
| 299 | *) | ||
| 300 | (* *) | ||
| 300 | 301 | END Message. |
src/Timers.mod
(32 / 15)
|   | |||
| 14 | 14 | <* LINENO + *> | |
| 15 | 15 | IMPLEMENTATION MODULE Timers; | |
| 16 | 16 | ||
| 17 | FROM IOResult IMPORT endOfInput; | ||
| 17 | FROM IOResult IMPORT endOfInput; | ||
| 18 | 18 | FROM StreamFile IMPORT OpenResults; | |
| 19 | FROM SysClock IMPORT GetClock; | ||
| 20 | FROM TimeConv IMPORT millisecs, time; | ||
| 21 | FROM Message IMPORT PrintLine, DoRead, DoSend, Parse; | ||
| 22 | FROM STextIO IMPORT WriteString; | ||
| 23 | FROM WholeStr IMPORT IntToStr; | ||
| 19 | FROM SysClock IMPORT GetClock; | ||
| 20 | FROM TimeConv IMPORT millisecs, time; | ||
| 21 | FROM Message IMPORT PrintLine, DoRead, DoSend, Parse, homechan; | ||
| 22 | FROM STextIO IMPORT WriteString; | ||
| 23 | FROM WholeStr IMPORT IntToStr; | ||
| 24 | 24 | ||
| 25 | IMPORT FileSys, M2EXCEPTION, Message, types, unistd, wait, Printf, p, bugcheckNew; | ||
| 25 | IMPORT FileSys, M2EXCEPTION, Message, types, unistd, wait, Printf, p, bugcheckNew, FormStr; | ||
| 26 | 26 | FROM Setup IMPORT check; | |
| 27 | 27 | ||
| 28 | 28 | CONST | |
| … | … | ||
| 58 | 58 | PROCEDURE PingServer( parse : Parse ) : BOOLEAN; | |
| 59 | 59 | VAR | |
| 60 | 60 | pingString, str : ARRAY [0..80] OF CHAR; | |
| 61 | debugging : BOOLEAN; | ||
| 61 | 62 | BEGIN | |
| 62 | 63 | (* 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; | ||
| 69 | 86 | END PingServer; | |
| 70 | 87 | ||
| 71 | 88 | PROCEDURE Timing(): BOOLEAN; | |
| 72 | 89 | VAR | |
| 73 | 90 | statloc, statlocBC : INTEGER; | |
| 91 | |||
| 74 | 92 | BEGIN | |
| 75 | 93 | (* get rid of any child processes that have died *) | |
| 76 | 94 | wait.waitpid( -1, statloc, wait.WNOHANG ); | |
| 77 | 95 | GetClock(now); | |
| 78 | 96 | ||
| 97 | |||
| 79 | 98 | (* This checks for bugs at bugs.sourcemage.org *) | |
| 80 | 99 | IF time()-bugCheckTimer >= check.bugcheck.update THEN | |
| 81 | 100 | IF check.bugcheck.on THEN | |
| … | … | ||
| 122 | 122 | END Timing; | |
| 123 | 123 | ||
| 124 | 124 | BEGIN | |
| 125 | (* Use time() to get sign on time - GetClock seems to have problems *) | ||
| 126 | signOnTimeCard := time(); | ||
| 127 | 125 | ||
| 128 | 126 | seconds := time(); (* I'm not sure where this is used anymore *) | |
| 129 | 127 | GetClock(signOnTime); |
src/bugcheckData.mod
(5 / 18)
|   | |||
| 1 | 1 | ||
| 2 | 2 | <* M2EXTENSIONS + *> | |
| 3 | (* Note that as of 20090518 this isn't in use yet *) | ||
| 3 | 4 | IMPLEMENTATION MODULE bugcheckData; | |
| 4 | 5 | IMPORT TextIO, RawIO, WholeIO, Strings, SeqFile, IOResult, FileSys, XMLReadLib, | |
| 5 | 6 | ProgExec, FormStr, Printf, StdChans, Message, Setup; | |
| … | … | ||
| 40 | 40 | SeqFile.OpenRead(file, bugcheckPath+"bugRecord", readRawFlags, iores); | |
| 41 | 41 | RawIO.Read(file, bug); | |
| 42 | 42 | SeqFile.Close(file); | |
| 43 | (* | ||
| 44 | SeqFile.OpenRead(file, bugcheckPath+"formattedBug", readFlags, iores); | ||
| 45 | TextIO.ReadString(file, bugstring); | ||
| 46 | SeqFile.Close(file); | ||
| 47 | *) | ||
| 43 | |||
| 48 | 44 | stdout := StdChans.StdOutChan(); | |
| 49 | 45 | getBugAlias(bug.assignee); (* replace the email address with a friendly name *) | |
| 50 | 46 | ||
| … | … | ||
| 48 | 48 | TextIO.WriteString(stdout, "Assignee: "); | |
| 49 | 49 | TextIO.WriteString(stdout, bug.assignee); TextIO.WriteLn(stdout); | |
| 50 | 50 | ||
| 51 | |||
| 52 | 51 | TextIO.WriteString(stdout, bugstring); TextIO.WriteLn(stdout); | |
| 53 | |||
| 54 | 52 | ||
| 55 | 53 | (* Copied from the old bugchecker.mod - will probably need to be modified. *) | |
| 56 | 54 | IF smcommits IN check.bugcheck.chans THEN | |
| … | … | ||
| 61 | 61 | Message.PrintLine(Setup.homechan, bugstring); | |
| 62 | 62 | END; (* home IN *) | |
| 63 | 63 | (* Sill need to handle #sourcemage-security *) | |
| 64 | |||
| 65 | 64 | RETURN TRUE; | |
| 66 | |||
| 67 | 65 | END PrintBugInfo; | |
| 68 | 66 | ||
| 69 | 67 | ||
| … | … | ||
| 203 | 203 | handle := XMLReadLib.XMLOpenDocument(bugcheckPath+"processed"); | |
| 204 | 204 | IF XMLReadLib.XMLSetCallback(handle, 1, CallbackFunction) THEN END; | |
| 205 | 205 | IF XMLReadLib.XMLParseDocument(handle)#0 THEN | |
| 206 | (* | ||
| 207 | ErrorOutput("ERROR : "); | ||
| 208 | *) | ||
| 206 | (* ErrorOutput("ERROR : "); *) | ||
| 209 | 207 | XMLReadLib.XMLGetErrorString(handle, str); | |
| 210 | (* | ||
| 211 | ErrorOutput(str^); | ||
| 212 | *) | ||
| 208 | (* ErrorOutput(str^); *) | ||
| 213 | 209 | END; | |
| 214 | 210 | XMLReadLib.XMLCloseDocument(handle); | |
| 215 | 211 | SeqFile.Close(file); | |
| … | … | ||
| 308 | 308 | WholeIO.WriteInt(outfile, lastBZbug, 0); | |
| 309 | 309 | SeqFile.Close(outfile); | |
| 310 | 310 | IF FileSys.Exists(bugcheckPath+"bugReport.csv") THEN | |
| 311 | (* | ||
| 312 | FileSys.Remove(bugcheckPath+"bugReport.csv", done); | ||
| 313 | *) | ||
| 311 | (* FileSys.Remove(bugcheckPath+"bugReport.csv", done); *) | ||
| 314 | 312 | END; | |
| 315 | 313 | RETURN TRUE; | |
| 316 | 314 | END GetReport; |
src/bugcheckNew.mod
(1 / 0)
|   | |||
| 1 | 1 | <* M2EXTENSIONS + *> | |
| 2 | (* Note that as of 20090518 this isn't in use yet *) | ||
| 2 | 3 | (* This is the new 'bugcheck.mod' | |
| 3 | 4 | I am splitting it into two parts. bugCheckData and bugCheckState | |
| 4 | 5 |
src/bugcheckState.mod
(2 / 1)
|   | |||
| 1 | (* Note that as of 20090518 this isn't in use yet *) | ||
| 1 | 2 | IMPLEMENTATION MODULE bugcheckState; | |
| 2 | 3 | ||
| 3 | 4 | IMPORT Printf, FileSys, SeqFile, TextIO, WholeIO, | |
| … | … | ||
| 33 | 33 | WholeStr.StrToCard(target, seconds, res); | |
| 34 | 34 | CASE res OF | |
| 35 | 35 | WholeStr.strAllRight : str := "Bug update time changed."; | |
| 36 | check.bugcheck.update := seconds; (* new *) | | ||
| 36 | check.bugcheck.update := seconds; (* new *) | | ||
| 37 | 37 | WholeStr.strOutOfRange : str := "Sorry, that number is out of range. Please try again."; | | |
| 38 | 38 | WholeStr.strWrongFormat : str := "Sorry, the seconds were in the wrong format. Please try again."; | | |
| 39 | 39 | WholeStr.strEmpty : str := "There was no time given. Please try again."; | |
src/bugsearch.mod
(6 / 7)
|   | |||
| 15 | 15 | ||
| 16 | 16 | IMPLEMENTATION MODULE bugsearch; | |
| 17 | 17 | ||
| 18 | FROM Strings IMPORT Assign, Concat; | ||
| 18 | FROM Strings IMPORT Assign, Concat; | ||
| 19 | 19 | FROM StringParse IMPORT Replace, Split, InString, Clip; | |
| 20 | FROM STextIO IMPORT WriteString, WriteLn; | ||
| 21 | FROM ProgExec IMPORT Command; | ||
| 22 | FROM FileSys IMPORT Exists, CreateDirectory, Remove; | ||
| 23 | FROM StreamFile IMPORT Open, Close, ChanId, OpenResults, read; | ||
| 24 | FROM util IMPORT CmdUsed; | ||
| 20 | FROM STextIO IMPORT WriteString, WriteLn; | ||
| 21 | FROM ProgExec IMPORT Command; | ||
| 22 | FROM FileSys IMPORT Exists, CreateDirectory, Remove; | ||
| 23 | FROM StreamFile IMPORT Open, Close, ChanId, OpenResults, read; | ||
| 24 | FROM util IMPORT CmdUsed; | ||
| 25 | 25 | IMPORT TextIO, IOResult, Message, Timers, Setup; | |
| 26 | |||
| 27 | 26 | ||
| 28 | 27 | ||
| 29 | 28 | PROCEDURE doSearch(parse: Setup.Parse); |
src/d.mod
(24 / 23)
|   | |||
| 15 | 15 | IMPLEMENTATION MODULE d; | |
| 16 | 16 | ||
| 17 | 17 | IMPORT ProgExec, StdChans, Strings, SeqFile, TextIO, IOResult, types, unistd, wait, WholeStr; | |
| 18 | IMPORT Message, StringParse, util, Timers, p; | ||
| 18 | IMPORT Message, StringParse, util, Timers, p, FormStr; | ||
| 19 | 19 | FROM TimeConv IMPORT time; | |
| 20 | FROM FloodProtect IMPORT StartFP; (* pause, continue, SetProtect, GetProtect; *) | ||
| 20 | FROM FloodProtect IMPORT StartFP, pause, continue, SetProtect, GetProtect; | ||
| 21 | 21 | FROM STextIO IMPORT WriteString, WriteChar, WriteLn; | |
| 22 | 22 | FROM FileSys IMPORT Exists; | |
| 23 | 23 | ||
| … | … | ||
| 42 | 42 | PROCEDURE getDefinition(parse : Message.Parse); | |
| 43 | 43 | VAR | |
| 44 | 44 | cmd, target, temp : Message.strType; | |
| 45 | res : SeqFile.OpenResults; | ||
| 45 | iores : SeqFile.OpenResults; | ||
| 46 | 46 | file : StdChans.ChanId; | |
| 47 | 47 | exit, count, lines : CARDINAL; | |
| 48 | define, state, resume : BOOLEAN; | ||
| 48 | define, state, resume, debugging : BOOLEAN; | ||
| 49 | 49 | src : Source; | |
| 50 | 50 | flood : Message.Parse; | |
| 51 | 51 | BEGIN | |
| 52 | src := cogsci; | ||
| 52 | SetProtect( continue ); | ||
| 53 | src := local; | ||
| 53 | 54 | count := 0; lines := 0; target := ""; define := TRUE; (* SetProtect( continue ); *) | |
| 55 | debugging := FALSE; | ||
| 54 | 56 | (* get the target word *) | |
| 55 | 57 | StringParse.Split("ine ", parse.cmd, temp, target); | |
| 56 | 58 | StringParse.Clip(target); | |
| … | … | ||
| 72 | 72 | abort : define := FALSE; | | |
| 73 | 73 | ELSE | |
| 74 | 74 | define := FALSE; | |
| 75 | END; | ||
| 75 | END; | ||
| 76 | IF debugging THEN Message.PrintLine("#atari-3", cmd) END; | ||
| 77 | (* define := FALSE; *) | ||
| 76 | 78 | 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"); | ||
| 79 | 88 | REPEAT | |
| 89 | IF debugging THEN WriteString("Debug: Inside REPEAT"); WriteLn; END; | ||
| 80 | 90 | TextIO.ReadString(file, target); | |
| 81 | 91 | TextIO.SkipLine(file); | |
| 92 | IF debugging THEN WriteString(target); WriteLn END; | ||
| 82 | 93 | IF StringParse.Left("Overview of", target) THEN target := " " | |
| 83 | 94 | ELSIF StringParse.Left("The noun", target) THEN target := "noun:" | |
| 84 | 95 | ELSIF StringParse.Left("The verb", target) THEN target := "verb:" | |
| … | … | ||
| 97 | 97 | ELSIF StringParse.Left("The adv", target) THEN target := "adv:" | |
| 98 | 98 | END; | |
| 99 | 99 | IF StringParse.Left(" ", target) THEN | |
| 100 | ELSIF LENGTH(target)=0 THEN | ||
| 100 | 101 | ELSE | |
| 101 | 102 | (* This should be moved to FloodProtect *) | |
| 102 | 103 | 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); | ||
| 115 | 105 | END; | |
| 116 | (* Attempting some flood prevention *) | ||
| 117 | 106 | REPEAT | |
| 118 | UNTIL NOT Exists("/home/terry/p6dat/tmp/protect"); | ||
| 119 | |||
| 107 | UNTIL NOT Exists("/home/terry/p6dat/tmp/protect"); (* flood control *) | ||
| 120 | 108 | UNTIL (IOResult.ReadResult(file) = IOResult.endOfInput); | |
| 121 | 109 | SeqFile.Close(file); | |
| 122 | 110 | Message.Notice(parse.nick, "--- DONE ---"); |
src/gaze.mod
(28 / 35)
|   | |||
| 64 | 64 | VAR | |
| 65 | 65 | str : Message.strType; | |
| 66 | 66 | BEGIN | |
| 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); | ||
| 70 | 68 | Message.PrintLine(parse.chan, str); | |
| 71 | 69 | END Sorry; | |
| 72 | 70 | ||
| … | … | ||
| 130 | 130 | StreamFile.Close(file); | |
| 131 | 131 | FileSys.Remove("/home/terry/p6dat/tmp/creator", done); | |
| 132 | 132 | EXCEPT | |
| 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); | ||
| 135 | 134 | Message.Action(parse.chan, str); | |
| 136 | 135 | ||
| 137 | 136 | Message.PrintLine(Message.homechan, "ALERT: I've encountered an exception in !gaze creator"); | |
| … | … | ||
| 141 | 141 | CONST | |
| 142 | 142 | recast = '/var/lib/sorcery/codex/test/gnome2-libs/glib2 is forcing a recast of pkgconfig'; | |
| 143 | 143 | 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) *) | ||
| 147 | 147 | modSub = "| sed 's/-sub//g' "; (* Modify -sub *) | |
| 148 | 148 | modSpaces = "| sed 's/^ *//;s/ *$//;s/ \{1,\}/ /g' "; (* delete extra spaces *) | |
| 149 | 149 | FILTER = noColors+modDepends+modOptional+modSuggest+modSub+modSpaces; | |
| … | … | ||
| 372 | 372 | VAR | |
| 373 | 373 | command, null, target, result, str : Message.strType; | |
| 374 | 374 | res : CARDINAL; | |
| 375 | done, found : BOOLEAN; | ||
| 375 | done, found, debugging : BOOLEAN; | ||
| 376 | 376 | iores : StreamFile.OpenResults; | |
| 377 | 377 | file : StreamFile.ChanId; | |
| 378 | |||
| 378 | 379 | BEGIN | |
| 380 | debugging := TRUE; | ||
| 379 | 381 | command := ""; null := ""; target := ""; result := ""; str := ""; | |
| 380 | 382 | util.CmdUsed(parse); | |
| 381 | 383 | StringParse.Split("nse ", parse.message, null, target); | |
| … | … | ||
| 385 | 385 | IF StringParse.InString("-h", target) THEN | |
| 386 | 386 | Message.PrintLine(parse.chan, "!gaze license target : returns the license of the spell 'target'." ); | |
| 387 | 387 | 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); | ||
| 391 | 389 | done := ProgExec.Command(command, res); | |
| 392 | 390 | StreamFile.Open(file, "/home/terry/p6dat/tmp/license", StreamFile.read, iores); | |
| 393 | 391 | TextIO.ReadString(file, result); | |
| … | … | ||
| 554 | 554 | Strings.Concat(str, parse.nick, str); | |
| 555 | 555 | Message.PrintLine(parse.chan, str); | |
| 556 | 556 | ELSIF LENGTH(target)=1 THEN | |
| 557 | (* | ||
| 557 | 558 | str := "I don't think so "; | |
| 558 | 559 | 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); | ||
| 560 | 563 | 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); | ||
| 565 | 566 | ELSE | |
| 566 | 567 | (* put some quotes around target *) | |
| 567 | 568 | null := quote; | |
| … | … | ||
| 692 | 692 | IF StringParse.InString("-h", target) THEN | |
| 693 | 693 | Message.PrintLine(parse.chan, "!gaze source url target : returns the source url of the spell 'target' - only the first source url is returned."); | |
| 694 | 694 | 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); | ||
| 698 | 696 | done := ProgExec.Command(command, res); | |
| 699 | 697 | StreamFile.Open(file, "/home/terry/p6dat/tmp/sourceURL", StreamFile.read, iores); | |
| 700 | 698 | TextIO.ReadString(file, result); | |
| … | … | ||
| 734 | 734 | IF StringParse.InString("-h", target) THEN | |
| 735 | 735 | Message.PrintLine(parse.chan, "!gaze entered target : returns the date that the spell 'target' was last modified."); | |
| 736 | 736 | 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); | ||
| 740 | 738 | done := ProgExec.Command(command, res); | |
| 741 | 739 | StreamFile.Open(file, "/home/terry/p6dat/tmp/updated", StreamFile.read, iores); | |
| 742 | 740 | TextIO.ReadString(file, result); | |
| 743 | 741 | TextIO.SkipLine(file); | |
| 744 | 742 | StreamFile.Close(file); | |
| 745 | 743 | 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); | ||
| 749 | 745 | Message.PrintLine(parse.chan, str); | |
| 750 | 746 | 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); | ||
| 755 | 748 | Message.PrintLine(parse.chan, str); | |
| 756 | 749 | END; | |
| 757 | 750 | FileSys.Remove("/home/terry/p6dat/tmp/updated", done); | |
| 758 | 751 | END; | |
| 759 | 752 | str := ""; | |
| 760 | 753 | EXCEPT | |
| 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); | ||
| 763 | 755 | Message.Action(parse.chan, str); | |
| 764 | 756 | ||
| 765 | 757 | Message.PrintLine(Message.homechan, "ALERT: I've encountered an exception in !gaze updated"); | |
| … | … | ||
| 849 | 849 | RETURN; | |
| 850 | 850 | END version; | |
| 851 | 851 | ||
| 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 | |||
| 852 | 855 | PROCEDURE versions(parse : Message.Parse); | |
| 853 | 856 | VAR | |
| 854 | 857 | command, null, target, result, str : Message.strType; | |
| … | … | ||
| 919 | 919 | VAR | |
| 920 | 920 | command, null, target, result, str, version, url : Message.strType; | |
| 921 | 921 | res : CARDINAL; | |
| 922 | done, found : BOOLEAN; | ||
| 922 | done, found, debugging : BOOLEAN; | ||
| 923 | 923 | iores : StreamFile.OpenResults; | |
| 924 | 924 | file : StreamFile.ChanId; | |
| 925 | 925 | ||
| … | … | ||
| 929 | 929 | command := ""; | |
| 930 | 930 | version := ""; | |
| 931 | 931 | url := ""; | |
| 932 | debugging := FALSE; | ||
| 932 | 933 | ||
| 933 | 934 | util.CmdUsed(parse); | |
| 934 | 935 | IF StringParse.InString("what short ", parse.message) OR | |
| … | … | ||
| 1082 | 1082 | command, null, target, result, str : Message.strType; | |
| 1083 | 1083 | fullstr : ARRAY [0 .. 8999] OF CHAR; | |
| 1084 | 1084 | res, textlength : CARDINAL; | |
| 1085 | done, found : BOOLEAN; | ||
| 1085 | done, found, debugging : BOOLEAN; | ||
| 1086 | 1086 | iores : StreamFile.OpenResults; | |
| 1087 | 1087 | file : StreamFile.ChanId; | |
| 1088 | 1088 | ||
| 1089 | 1089 | BEGIN | |
| 1090 | 1090 | command := ""; null := ""; target := ""; result := ""; str := ""; | |
| 1091 | debugging := FALSE; | ||
| 1091 | 1092 | util.CmdUsed(parse); | |
| 1092 | 1093 | ||
| 1093 | 1094 | StringParse.Split("where ", parse.message, null, target); | |
| 1094 | 1095 | StringParse.Clip(target); | |
| 1095 | 1096 | IF StringParse.InString("-h", target) THEN | |
| 1096 | 1097 | ||
| 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."); | ||
| 1098 | 1099 | ELSE | |
| 1099 | 1100 | Strings.Assign("grep '^", command); | |
| 1100 | 1101 | Strings.Concat(command, target, command); |
src/gazeProvides.mod
(6 / 0)
|   | |||
| 23 | 23 | Message.PrintLine(parse.chan, "!provides FEATURE - Displays spells that provide FEATURE. (I'll capitalize it for you)."); | |
| 24 | 24 | RETURN; | |
| 25 | 25 | 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 *) | ||
| 26 | 32 | ||
| 27 | 33 | FormStr.print(command, "gaze provides %s > %s", target, providesFile); | |
| 28 | 34 | done := ProgExec.Command(command, result); |
src/google.mod
(11 / 3)
|   | |||
| 10 | 10 | PROCEDURE googleCalc(parse : Message.Parse); | |
| 11 | 11 | CONST | |
| 12 | 12 | 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"; | ||
| 14 | 14 | ||
| 15 | 15 | VAR | |
| 16 | 16 | searchString, commandString, returnString : Message.strType; | |
| 17 | 17 | exit : CARDINAL; | |
| 18 | 18 | file : ChanId; | |
| 19 | 19 | res : OpenResults; | |
| 20 | done : BOOLEAN; | ||
| 20 | 21 | BEGIN | |
| 21 | 22 | util.CmdUsed(parse); | |
| 22 | 23 | Split(" ", parse.cmd, commandString, searchString); | |
| 23 | 24 | Clip(searchString); | |
| 24 | commandString := ""; | ||
| 25 | commandString := ""; | ||
| 25 | 26 | REPEAT | |
| 26 | 27 | Replace(searchString, "+", "%2B"); | |
| 27 | 28 | UNTIL (NOT InString("+", searchString)); | |
| … | … | ||
| 53 | 53 | TextIO.ReadString(file, returnString); | |
| 54 | 54 | TextIO.SkipLine(file); | |
| 55 | 55 | 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; | ||
| 56 | 62 | END; | |
| 57 | 63 | END; | |
| 58 | |||
| 64 | (* | ||
| 59 | 65 | IF (InString(".gif", returnString)) THEN | |
| 60 | 66 | Split(".gif] ", returnString, commandString, returnString); | |
| 61 | 67 | Message.PrintLine(parse.chan, returnString); | |
| … | … | ||
| 69 | 69 | ELSE | |
| 70 | 70 | Message.PrintLine(parse.chan, "Sorry, I don't know."); | |
| 71 | 71 | END; | |
| 72 | *) | ||
| 72 | 73 | END googleCalc; | |
| 73 | 74 | ||
| 74 | 75 | BEGIN |
src/m.mod
(5 / 5)
|   | |||
| 78 | 78 | Message.PrintLine(Message.homechan, debugstr); | |
| 79 | 79 | END; | |
| 80 | 80 | ||
| 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"; | ||
| 82 | 82 | StringParse.Replace(parse.nick, "|", "-"); | |
| 83 | 83 | StringParse.Replace(command, "NICK~", parse.nick); | |
| 84 | 84 | StringParse.Replace(command, "C~", grepfor); | |
| … | … | ||
| 89 | 89 | END; | |
| 90 | 90 | done := ProgExec.Command(command, exit); | |
| 91 | 91 | ||
| 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"; | ||
| 93 | 93 | StringParse.Replace(string, "N~", contextline); | |
| 94 | 94 | StringParse.Replace(string, "NICK~", parse.nick); | |
| 95 | 95 | Message.PrintLine(parse.chan, string); | |
| … | … | ||
| 205 | 205 | done := ProgExec.Command("cp /home/terry/p6dat/tmp/markers/markers2 /home/terry/.xplanet/markers/sourcemage-original", res); | |
| 206 | 206 | done := ProgExec.Command("cp /home/terry/p6dat/tmp/markers/markers2 /home/terry/.xplanet/markers/sourcemage-original", res); | |
| 207 | 207 | 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); | ||
| 210 | 210 | ||
| 211 | 211 | ||
| 212 | 212 | ||
| … | … | ||
| 231 | 231 | Message.PrintLine(parse.chan, "Stand by please..."); | |
| 232 | 232 | MarkersUpdate; | |
| 233 | 233 | 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"); | ||
| 235 | 235 | END Markers; | |
| 236 | 236 | ||
| 237 | 237 |
src/o.mod
(70 / 3)
|   | |||
| 12 | 12 | *) | |
| 13 | 13 | IMPLEMENTATION MODULE o; | |
| 14 | 14 | ||
| 15 | IMPORT FormStr; | ||
| 15 | 16 | IMPORT Message; | |
| 16 | 17 | IMPORT ProgExec; | |
| 17 | 18 | IMPORT StringParse; | |
| 19 | IMPORT StreamFile; | ||
| 20 | IMPORT TextIO; | ||
| 21 | IMPORT STextIO, SWholeIO; | ||
| 22 | IMPORT RandomASM, TimeConv; | ||
| 18 | 23 | ||
| 24 | TYPE | ||
| 25 | Channel = (atari, modula2); | ||
| 26 | |||
| 27 | |||
| 28 | PROCEDURE OnJoinMessage(channel : Channel) : Message.strType; | ||
| 29 | VAR | ||
| 30 | string, teststring, | ||
| 31 | fileName : Message.strType; | ||
| 32 | exit, | ||
| 33 | line, i, | ||
| 34 | chance : CARDINAL; | ||
| 35 | file : StreamFile.ChanId; | ||
| 36 | iores : StreamFile.OpenResults; | ||
| 37 | |||
| 38 | BEGIN | ||
| 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 | |||
| 58 | END OnJoinMessage; | ||
| 59 | |||
| 60 | PROCEDURE ForceMessage(chan: ARRAY OF CHAR); | ||
| 61 | VAR | ||
| 62 | string : Message.strType; | ||
| 63 | BEGIN | ||
| 64 | string := OnJoinMessage(modula2); | ||
| 65 | Message.PrintLine(chan, string) | ||
| 66 | EXCEPT | ||
| 67 | RETURN | ||
| 68 | |||
| 69 | END ForceMessage; | ||
| 70 | |||
| 71 | |||
| 19 | 72 | PROCEDURE OnJoin(parse : Message.Parse); | |
| 20 | 73 | VAR | |
| 21 | 74 | done : BOOLEAN; | |
| 22 | 75 | exit : CARDINAL; | |
| 76 | string : Message.strType; | ||
| 23 | 77 | ||
| 24 | 78 | BEGIN | |
| 79 | |||
| 25 | 80 | IF StringParse.InString("JOIN :", parse.raw) THEN | |
| 26 | 81 | 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; | ||
| 28 | 91 | ||
| 29 | 92 | 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 | |||
| 32 | 96 | END; | |
| 33 | 97 | IF StringParse.InString(":#atari", parse.raw) THEN | |
| 34 | 98 | IF NOT StringParse.InString(":#atari-", parse.raw) THEN | |
| … | … | ||
| 101 | 101 | END; | |
| 102 | 102 | END; | |
| 103 | 103 | ||
| 104 | EXCEPT | ||
| 105 | |||
| 106 | RETURN; | ||
| 104 | 107 | END OnJoin; | |
| 105 | 108 | ||
| 106 | 109 | END o. |
src/q.mod
(1 / 1)
|   | |||
| 93 | 93 | FormStr.print(string, "This Channel is: %s", parse.chan); | |
| 94 | 94 | Message.PrintLine(parse.chan, string); | |
| 95 | 95 | 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); | ||
| 97 | 97 | Message.PrintLine(parse.chan, string); | |
| 98 | 98 | ELSIF Strings.Equal("source", target) THEN | |
| 99 | 99 | Message.PrintLine(parse.chan, "http://gitorious.org/projects/page-six"); |
src/r.mod
(11 / 5)
|   | |||
| 34 | 34 | IMPORT FileSys, SeqFile, TextIO, RawIO, WholeIO, FormStr, Message, Setup, | |
| 35 | 35 | Strings, types, unistd, util; | |
| 36 | 36 | FROM Setup IMPORT check; | |
| 37 | FROM Timers IMPORT signOnTime; | ||
| 37 | FROM Timers IMPORT signOnTime, signOnSeconds; | ||
| 38 | 38 | FROM Stack IMPORT StackType, CreateStack, Push, Pop, IsEmpty; | |
| 39 | 39 | FROM StringParse IMPORT Clip; | |
| 40 | 40 | ||
| … | … | ||
| 52 | 52 | BEGIN | |
| 53 | 53 | SeqFile.OpenWrite(file, stFile, SeqFile.raw+SeqFile.write+SeqFile.old, res); | |
| 54 | 54 | RawIO.Write(file, signOnTime); | |
| 55 | RawIO.Write(file, signOnSeconds); | ||
| 55 | 56 | SeqFile.Close(file); | |
| 56 | 57 | END rehashWriteTime; | |
| 57 | 58 | ||
| … | … | ||
| 63 | 63 | BEGIN | |
| 64 | 64 | SeqFile.OpenRead(file, stFile, SeqFile.raw+SeqFile.read, res); | |
| 65 | 65 | RawIO.Read(file, signOnTime); | |
| 66 | RawIO.Read(file, signOnSeconds); | ||
| 66 | 67 | SeqFile.Close(file); | |
| 67 | 68 | END rehashReadTime; | |
| 68 | 69 | ||
| 69 | 70 | PROCEDURE Rehash(parse: Message.Parse); | |
| 70 | 71 | VAR | |
| 71 | done : BOOLEAN; | ||
| 72 | file : SeqFile.ChanId; | ||
| 73 | res : SeqFile.OpenResults; | ||
| 72 | done : BOOLEAN; | ||
| 73 | file : SeqFile.ChanId; | ||
| 74 | res : SeqFile.OpenResults; | ||
| 74 | 75 | iores : SeqFile.OpenResults; | |
| 75 | return : INTEGER; | ||
| 76 | return : INTEGER; | ||
| 76 | 77 | message : ARRAY [0..79] OF CHAR; | |
| 77 | 78 | ||
| 78 | 79 | BEGIN | |
| … | … | ||
| 117 | 117 | SeqFile.OpenWrite(file, "/home/terry/p6dat/tmp/rehash/serv", SeqFile.write+SeqFile.old, res); | |
| 118 | 118 | WholeIO.WriteCard(file, parse.serv, 1); | |
| 119 | 119 | TextIO.WriteLn(file); | |
| 120 | IF LENGTH(parse.server) > 2 THEN | ||
| 121 | Clip(parse.server); | ||
| 122 | END; | ||
| 120 | 123 | TextIO.WriteString(file, parse.server); | |
| 121 | 124 | TextIO.WriteLn(file); | |
| 125 | |||
| 122 | 126 | IF check.trackercheck.on THEN | |
| 123 | 127 | TextIO.WriteString(file, "true"); | |
| 124 | 128 | ELSE |
src/s.mod
(28 / 17)
|   | |||
| 200 | 200 | PROCEDURE Spells(parse : Message.Parse); | |
| 201 | 201 | (* Count the number of Source Mage GNU/Linux spells *) | |
| 202 | 202 | CONST | |
| 203 | lastChecked = "/home/terry/p6dat/dat/spellcount/smgl-lastchecked"; | ||
| 203 | lastChecked = "/home/terry/p6dat/tmp/spellcount/smgl-lastchecked"; | ||
| 204 | 204 | spells = "/home/terry/p6dat/tmp/spellcount/spells"; | |
| 205 | 205 | VAR | |
| 206 | 206 | string, lastdate, date, null, result, str, source : Message.strType; | |
| 207 | 207 | done, | |
| 208 | 208 | avail : BOOLEAN; | |
| 209 | 209 | file : StreamFile.ChanId; | |
| 210 | res : StreamFile.OpenResults; | ||
| 210 | iores : StreamFile.OpenResults; | ||
| 211 | 211 | exit : CARDINAL; | |
| 212 | 212 | ||
| 213 | 213 | BEGIN | |
| … | … | ||
| 220 | 220 | result := ""; | |
| 221 | 221 | util.CmdUsed(parse); | |
| 222 | 222 | IF FileSys.Exists(lastChecked) THEN | |
| 223 | StreamFile.Open(file, lastChecked, StreamFile.read, res); | ||
| 223 | StreamFile.Open(file, lastChecked, StreamFile.read, iores); | ||
| 224 | 224 | TextIO.ReadString(file, lastdate); | |
| 225 | 225 | StreamFile.Close(file); | |
| 226 | 226 | ELSE | |
| 227 | 227 | (* assign earlier date - or do that as a CONST *) | |
| 228 | 228 | lastdate := util.Date(parse); | |
| 229 | 229 | 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); | ||
| 231 | 231 | TextIO.WriteString(file, lastdate); | |
| 232 | 232 | StreamFile.Close(file); | |
| 233 | 233 | END; | |
| … | … | ||
| 237 | 237 | IF p.PrePing("codex.sourcemage.org") THEN | |
| 238 | 238 | FileSys.Remove("/home/terry/p6dat/tmp/spellcount/listing.txt", done); | |
| 239 | 239 | 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); | ||
| 241 | 241 | TextIO.WriteString(file, date); | |
| 242 | 242 | StreamFile.Close(file); | |
| 243 | 243 | (* added this temporarily, since Page Six doesn't always print a number *) | |
| 244 | 244 | done := ProgExec.Command("wc -l /home/terry/p6dat/tmp/spellcount/listing.txt > /home/terry/p6dat/tmp/spellcount/spells", exit); | |
| 245 | 245 | ||
| 246 | StreamFile.Open(file, spells, StreamFile.read, res); | ||
| 246 | StreamFile.Open(file, spells, StreamFile.read, iores); | ||
| 247 | 247 | TextIO.ReadString(file, result); | |
| 248 | 248 | TextIO.SkipLine(file); | |
| 249 | 249 | StreamFile.Close(file); | |
| … | … | ||
| 252 | 252 | END; | |
| 253 | 253 | ||
| 254 | 254 | ELSE | |
| 255 | |||
| 256 | 255 | done := ProgExec.Command("wget -nc -P /home/terry/p6dat/tmp/spellcount http://codex.sourcemage.org/listing.txt", exit); | |
| 257 | 256 | done := ProgExec.Command("wc -l /home/terry/p6dat/tmp/spellcount/listing.txt > /home/terry/p6dat/tmp/spellcount/spells", exit); | |
| 258 | 257 | ||
| 259 | StreamFile.Open(file, spells, StreamFile.read, res); | ||
| 258 | StreamFile.Open(file, spells, StreamFile.read, iores); | ||
| 260 | 259 | TextIO.ReadString(file, result); | |
| 261 | 260 | TextIO.SkipLine(file); | |
| 262 | 261 | StreamFile.Close(file); | |
| … | … | ||
| 271 | 271 | ||
| 272 | 272 | Message.PrintLine(parse.chan, str); | |
| 273 | 273 | (* 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); | ||
| 275 | 275 | TextIO.ReadString(file, result); | |
| 276 | 276 | TextIO.SkipLine(file); | |
| 277 | 277 | StreamFile.Close(file); | |
| 278 | 278 | Message.PrintLine(parse.chan, result); | |
| 279 | |||
| 279 | 280 | EXCEPT | |
| 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; | ||
| 281 | 286 | END Spells; | |
| 282 | 287 | ||
| 283 | 288 | ||
| … | … | ||
| 292 | 292 | string, lastdate, date, null, result : Message.strType; | |
| 293 | 293 | done : BOOLEAN; | |
| 294 | 294 | file : StreamFile.ChanId; | |
| 295 | res : StreamFile.OpenResults; | ||
| 295 | iores: StreamFile.OpenResults; | ||
| 296 | 296 | exit : CARDINAL; | |
| 297 | 297 | ||
| 298 | 298 | BEGIN | |
| 299 | 299 | (* | |
| 300 | 300 | Message.PrintLine(parse.chan, "Lunar Linux modules count is not yet implemented."); | |
| 301 | 301 | *) | |
| 302 | (* Lunar Linux moved their list | ||
| 302 | (* Lunar Linux moved their list *) | ||
| 303 | 303 | string := "Please stand by N~, I'm examining their modules listing."; | |
| 304 | 304 | StringParse.Replace(string, "N~", parse.nick); | |
| 305 | 305 | 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); | ||
| 307 | 307 | TextIO.ReadString(file, lastdate); | |
| 308 | 308 | StreamFile.Close(file); | |
| 309 | 309 | ELSE | |
| 310 | 310 | (* assign earlier date *) | |
| 311 | 311 | lastdate := util.Date(parse); | |
| 312 | 312 | 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); | ||
| 314 | 314 | TextIO.WriteString(file, lastdate); | |
| 315 | 315 | StreamFile.Close(file); | |
| 316 | 316 | END; | |
| … | … | ||
| 320 | 320 | done := ProgExec.Command("lynx -dump -nolist -accept_all_cookies -width=200 http://modules.lunar-linux.org > /home/terry/p6dat/tmp/spellcount/modules.txt", exit); | |
| 321 | 321 | done := ProgExec.Command("grep -i 'Total Modules' /home/terry/p6dat/tmp/spellcount/modules.txt > /home/terry/p6dat/tmp/spellcount/modules.count", exit); | |
| 322 | 322 | 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); | ||
| 324 | 324 | TextIO.ReadString(file, result); | |
| 325 | 325 | StreamFile.Close(file); | |
| 326 | 326 | REPEAT | |
| … | … | ||
| 331 | 331 | StringParse.Replace(string, "N~", parse.nick); | |
| 332 | 332 | StringParse.Replace(string, "M~", result); | |
| 333 | 333 | Message.PrintLine(parse.chan, string); | |
| 334 | *) | ||
| 334 | (* *) | ||
| 335 | (* | ||
| 335 | 336 | FormStr.print(string, "I'm sorry %s, the Lunar Linux modules count has been temporarily disabled.", parse.nick); | |
| 336 | 337 | Message.PrintLine(parse.chan,string); | |
| 338 | *) | ||
| 337 | 339 | EXCEPT | |
| 338 | 340 | Message.PrintLine(Setup.homechan, "Oops, an exception in SpellsLunar"); | |
| 341 | Message.PrintLine(Message.homechan, util.DispIOChanException()); | ||
| 342 | Message.PrintLine(Message.homechan, util.DispOpenResults(iores)); | ||
| 339 | 343 | RETURN; | |
| 340 | 344 | END SpellsLunar; | |
| 341 | 345 | ||
| … | … | ||
| 354 | 354 | VAR | |
| 355 | 355 | string : Message.strType; | |
| 356 | 356 | sent, read : ARRAY[0..9] OF CHAR; | |
| 357 | |||
| 357 | debugging : BOOLEAN; | ||
| 358 | 358 | BEGIN | |
| 359 | debugging := FALSE; | ||
| 360 | IF debugging THEN Message.PrintLine(Message.homechan, "debug: entering SignOnTime(parse)"); END; | ||
| 359 | 361 | SignOnTime(parse); | |
| 362 | IF debugging THEN Message.PrintLine(Message.homechan, "debug: returned from SignOnTime(parse)"); END; | ||
| 360 | 363 | string := ""; | |
| 361 | 364 | WholeStr.CardToStr(Message.linesSent, sent); | |
| 362 | 365 | WholeStr.CardToStr(Message.linesRead, read); |
src/t.mod
(6 / 1)
|   | |||
| 102 | 102 | StringParse.Clip(target); | |
| 103 | 103 | StringParse.Strip(target); | |
| 104 | 104 | 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); | ||
| 106 | 111 | output(command); | |
| 107 | 112 | IF Strings.Equal(target, "") OR | |
| 108 | 113 | Strings.Equal(target, "-h") OR |
src/users.mod
(10 / 10)
|   | |||
| 26 | 26 | ||
| 27 | 27 | CONST | |
| 28 | 28 | debugging = FALSE; | |
| 29 | webDir = '/usr/local/www/server/page6.shlrm.org/pages/'; | ||
| 29 | webDir = '/usr/local/www/servers/page6.aliboom.com/pages/'; | ||
| 30 | 30 | ||
| 31 | 31 | tempfile = webDir+"users/temp.png"; (* old file, used with diff command *) | |
| 32 | 32 | difffile = webDir+"users/visual-diff.pam"; (* graphic output *) | |
| … | … | ||
| 74 | 74 | ** really works in relation to images created after I changed to this method. | |
| 75 | 75 | ** create the file note, which will contain the description and tags | |
| 76 | 76 | *) | |
| 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"; | ||
| 78 | 78 | StringParse.Replace(command, "NAME", name); | |
| 79 | 79 | StringParse.Replace(command, "DATE", util.Date(parse)); | |
| 80 | 80 | StringParse.Replace(command, "TIME", util.Time(parse)); | |
| 81 | 81 | 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"; | ||
| 83 | 83 | StringParse.Replace(command, "FILE", filepng); | |
| 84 | 84 | StringParse.Replace(command, "NAM", name); | |
| 85 | 85 | IF debugging THEN | |
| … | … | ||
| 100 | 100 | ** compare -metric AE | |
| 101 | 101 | ** this is done by a bash script in the directory, and creates the file visual-diff.txt | |
| 102 | 102 | *) | |
| 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"'; | ||
| 104 | 104 | StringParse.Replace(command, "PNGf", filepng); | |
| 105 | 105 | IF debugging THEN | |
| 106 | 106 | Message.Notice("qnr", command); | |
| … | … | ||
| 114 | 114 | ||
| 115 | 115 | (* Read difftext and see if the change is greater than about 55000. If it is, upload the new image | |
| 116 | 116 | ** 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 ); | ||
| 118 | 118 | IF debugging THEN | |
| 119 | 119 | Message.Notice("qnr", util.DispOpenResults(fileres)); | |
| 120 | 120 | END; | |
| … | … | ||
| 147 | 147 | Message.PrintLine(parse.chan, reportstring); | |
| 148 | 148 | ELSE | |
| 149 | 149 | (* 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."; | ||
| 151 | 151 | StringParse.Replace(reportstring, "NAM", name); | |
| 152 | 152 | Message.PrintLine(parse.chan, reportstring); | |
| 153 | 153 | reportstring := "Visit http://flickr.com/search/?q=smgl+users+NAM&w=78272611%40N00&s=rec for all available images."; | |
| … | … | ||
| 162 | 162 | (* create the file note, which will contain the description and tags *) | |
| 163 | 163 | (* Use util.Date and util.Time *) | |
| 164 | 164 | ||
| 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"; | ||
| 166 | 166 | StringParse.Replace(command, "NAME", name); | |
| 167 | 167 | StringParse.Replace(command, "DATE", util.Date(parse)); | |
| 168 | 168 | StringParse.Replace(command, "TIME", util.Time(parse)); | |
| 169 | 169 | 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"; | ||
| 171 | 171 | StringParse.Replace(command, "FILE", filepng); | |
| 172 | 172 | StringParse.Replace(command, "NAM", name); | |
| 173 | 173 | ||
| … | … | ||
| 210 | 210 | IF FileSys.Exists(difffile) THEN FileSys.Remove(difffile, done) END; | |
| 211 | 211 | IF FileSys.Exists(difftext) THEN FileSys.Remove(difftext, done) END; | |
| 212 | 212 | 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"; | ||
| 214 | 214 | StringParse.Replace(temp, "NAM", name); | |
| 215 | 215 | IF FileSys.Exists(temp) THEN | |
| 216 | 216 | FileSys.Rename(temp, tempfile, done); | |
| … | … | ||
| 220 | 220 | END; | |
| 221 | 221 | (* Now, generate the new image *) | |
| 222 | 222 | 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/"; | ||
| 224 | 224 | StringParse.Replace(command, "NAM", name); | |
| 225 | 225 | done := ProgExec.Command(command, res); | |
| 226 | 226 | done := ProgExec.Command("cp /home/terry/.xplanet/markers/sourcemage-original /home/terry/.xplanet/markers/sourcemage", res); |
src/util.mod
(2 / 2)
|   | |||
| 201 | 201 | ||
| 202 | 202 | PROCEDURE CmdUsed(parse : Message.Parse); | |
| 203 | 203 | VAR | |
| 204 | str, date, time : Message.strType; | ||
| 204 | str, date, timer, time : Message.strType; | ||
| 205 | 205 | iores : SeqFile.OpenResults; | |
| 206 | 206 | file, | |
| 207 | 207 | logfile : SeqFile.ChanId; | |
| … | … | ||
| 212 | 212 | date := Date(parse); | |
| 213 | 213 | time := Time(parse); | |
| 214 | 214 | 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); | ||
| 216 | 216 | TextIO.WriteString(logfile, str); | |
| 217 | 217 | SeqFile.Close(logfile); | |
| 218 | 218 |
sym/FloodProtect.sym
(1 / 1)
Binary files differ
sym/Handler.sym
(2 / 1)
Binary files differ
sym/Mention.sym
(1 / 1)
Binary files differ
sym/Message.sym
(33 / 26)
|   | |||
| 15 | 15 | KÀÂSetup | |
| 16 | 16 | Parse | |
| 17 | 17 | LÀÂMessage | |
| 18 | InString | ||
| 18 | GetServerName | ||
| 19 | 19 | QÀÂ | |
| 20 | InString | ||
| 21 | RÀÂ | ||
| 20 | 22 | Action | |
| 21 | SÀÂ | ||
| 23 | TÀÂ | ||
| 22 | 24 | PrintLine | |
| 23 | UÀÂ | ||
| 25 | VÀÂ | ||
| 24 | 26 | Notice | |
| 25 | WÀÂ | ||
| 27 | XÀÂ | ||
| 26 | 28 | DoSend | |
| 27 | YÀÂ | ||
| 29 | ZÀÂ | ||
| 28 | 30 | DoRead | |
| 29 | [ÀÂ | ||
| 31 | \ÀÂ | ||
| 30 | 32 | ParseLine | |
| 31 | \ÀàÁ@ÀÃÀfEÄÀÀ@ÀÊÁ¿def/Message.def | ||
| 33 | ]ÀàÁ@ÀÃÀs | ||
| 34 | @RÄÀÀ@ÀÊÁ¿def/Message.def | ||
| 32 | 35 | ÀÒÂÛmaxChars | |
| 33 | 36 | Á@ÀÀ ÄÀ | |
| 34 | 37 | À ÊÁÀÓÂÛmaxNick | |
| … | … | ||
| 56 | 56 | Á@À | |
| 57 | 57 | À ÁÁÀìÂÆlinesSent | |
| 58 | 58 | Á@À | |
| 59 | À ÆÁÀîÀQÀInString | ||
| 59 | À ÆÁÀîÀQÀGetServerName | ||
| 60 | 60 | @Á@À | |
| 61 | À ÆÁÀðÀSÀAction | ||
| 61 | À ÆÁÀðÀRÀInString | ||
| 62 | 62 | @Á@À | |
| 63 | À ÆÁÀòÀUÀPrintLine | ||
| 63 | À ÆÁÀòÀTÀAction | ||
| 64 | 64 | @Á@À | |
| 65 | À ÆÁÀôÀWÀNotice | ||
| 65 | À ÆÁÀôÀVÀPrintLine | ||
| 66 | 66 | @Á@À | |
| 67 | À ÆÁÀøÀYÀDoSend | ||
| 67 | À ÆÁÀöÀXÀNotice | ||
| 68 | 68 | @Á@À | |
| 69 | À ÆÁÀúÀ[ÀDoRead | ||
| 69 | À ÆÁÀúÀZÀDoSend | ||
| 70 | 70 | @Á@À | |
| 71 | À ÆÁÀüÀ\ÀParseLine | ||
| 71 | À ÆÁÀüÀ\ÀDoRead | ||
| 72 | 72 | @Á@À | |
| 73 | À ÆÁÀþÀ]ÀParseLine | ||
| 74 | @Á@À | ||
| 73 | 75 | À @ÀÐÁÀËÒ@ÀMessage | |
| 74 | 76 | ÀÀ | |
| 75 | 77 | À ÚÁBÀÑÆÉÀÀÀÀÀÀÀÀ àÁBÀÃÀAxDÄÀÀBÀËÁ¿def/Setup.def | |
| … | … | ||
| 127 | 127 | ÄLÀ | |
| 128 | 128 | À ÍÁÁøÆEÀhomepath | |
| 129 | 129 | Ä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 | ||
| 131 | 133 | ÂÀ | |
| 132 | À ÁÁÀîÜRÀline | ||
| 134 | À ÁÁÀðÜSÀline | ||
| 133 | 135 | ÂÀ | |
| 134 | À ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀSÀÁÁÀðÑTÀchannel | ||
| 136 | À ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀTÀÁÁÀòÑUÀchannel | ||
| 135 | 137 | ÂÀ | |
| 136 | À ÁÁÀðÚTÀmessage | ||
| 138 | À ÁÁÀòÚUÀmessage | ||
| 137 | 139 | ÂÀ | |
| 138 | À ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀUÀÁÁÀòÔVÀchannel | ||
| 140 | À ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀVÀÁÁÀôÔWÀchannel | ||
| 139 | 141 | ÂÀ | |
| 140 | À ÁÁÀòÝVÀmessage | ||
| 142 | À ÁÁÀôÝWÀmessage | ||
| 141 | 143 | ÂÀ | |
| 142 | À ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀWÀÁÁÀôÒXÀchannel | ||
| 144 | À ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀXÀÁÁÀöÒYÀchannel | ||
| 143 | 145 | ÂÀ | |
| 144 | À ÁÁÀôÛXÀmessage | ||
| 146 | À ÁÁÀöÛYÀmessage | ||
| 145 | 147 | ÂÀ | |
| 146 | À ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀYÀÁÁÀøÑÆserv | ||
| 148 | À ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀÃÀÀÀÀZÀÁÁÀúÑÆserv | ||
| 147 | 149 | ÂÀ | |
| 148 | À ÁÁÀøàZÀmsg | ||
| 150 | À ÁÁÀúà[Àmsg | ||
| 149 | 151 | ÂÀ | |
| 150 | À ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀLÀÀÀÀÀ[ÀÁÁÀúÑÆserv | ||
| 152 | À ÙÁ@ÀÑÆÁÀÀÀÀÀÀÀÀ ×Á@ÀLÀÀÀÀÀ\ÀÁÁÀüÑÆserv | ||
| 151 | 153 | ÂÀ | |
| 152 | À ×Á@ÀLÀÀÀÀÀ\ÀÁÁÀüÔCÀmsg | ||
| 154 | À ×Á@ÀLÀÀÀÀÀ]ÀÁÁÀþÔCÀmsg | ||
| 153 | 155 | ÂÀ | |
| 154 | 156 | À Setup | |
| 155 | 157 | Sockets |
sym/Timers.sym
(2 / 1)
Binary files differ
sym/b.sym
(2 / 2)
Binary files differ
sym/bugsearch.sym
(1 / 1)
Binary files differ
sym/c.sym
(1 / 1)
Binary files differ
sym/conversions.sym
(1 / 1)
Binary files differ
sym/d.sym
(1 / 1)
Binary files differ
sym/f.sym
(1 / 1)
Binary files differ
sym/fortune.sym
(2 / 1)
Binary files differ
sym/gaze.sym
(2 / 1)
Binary files differ
sym/gazeInfo.sym
(2 / 1)
Binary files differ
sym/gazeProvides.sym
(2 / 1)
Binary files differ
sym/google.sym
(1 / 1)
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)
|   | |||
| 1 | 1 | S=ÂØPÂÁo | |
| 2 | 2 | @ÀÂ | |
| 3 | ForceMessage | ||
| 4 | AÀÂ | ||
| 3 | 5 | OnJoin | |
| 4 | AÀÂSetup | ||
| 6 | CÀÂSetup | ||
| 5 | 7 | Parse | |
| 6 | BÀÁ | ||
| 7 | CÀÂ | ||
| 8 | DÀÁ | ||
| 9 | EÀÂ | ||
| 8 | 10 | nickType | |
| 9 | DÀÂ | ||
| 11 | FÀÂ | ||
| 10 | 12 | strType | |
| 11 | JÀàÁ@ÀÃÀ2fEÄÀÀ@ÀÆÁ¿def/o.def | ||
| 12 | ÀÄÀAÀOnJoin | ||
| 13 | LÀàÁ@ÀÃÀx|RÄÀÀ@ÀÆÁ¿def/o.def | ||
| 14 | ÀÄÀAÀForceMessage | ||
| 13 | 15 | @Á@À | |
| 16 | À ÆÁÀÇÀCÀOnJoin | ||
| 17 | @Á@À | ||
| 14 | 18 | À @ÀÐÁÀÀÒ@Ào | |
| 15 | 19 | ÀÀ | |
| 16 | À ×Á@ÀÃÀÀÀÀAÀÁÁÀÄÑBÀparse | ||
| 20 | À ×Á@ÀÃÀÀÀÀAÀÁÁÀÄ×BÀchan | ||
| 17 | 21 | ÂÀ | |
| 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À | ||
| 21 | 27 | À ÍÁÁðÆÆ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À | ||
| 35 | 41 | À ÍÁÁ÷ÆÏ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 | ||
| 46 | 52 | ÀÀ | |
| 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
sym/tracker.sym
(1 / 1)
Binary files differ
sym/u.sym
(1 / 1)
Binary files differ
sym/users.sym
(2 / 1)
Binary files differ
sym/util.sym
(2 / 1)
Binary files differ
sym/v.sym
(2 / 1)
Binary files differ
sym/w.sym
(1 / 1)
Binary files differ
tmp.mkf
(5 / 1)
|   | |||
| 1 | 1 | M = tmp.mkf | |
| 2 | 2 | ||
| 3 | TSLIBS = /usr/local/xds/lib/x86/libts.a | ||
| 3 | TSLIBS = | ||
| 4 | 4 | ||
| 5 | 5 | INCL = . | |
| 6 | 6 | ||
| … | … | ||
| 24 | 24 | obj/Connect.o \ | |
| 25 | 25 | obj/EightBall.o \ | |
| 26 | 26 | obj/FloodProtect.o \ | |
| 27 | obj/Force.o \ | ||
| 27 | 28 | obj/Handler.o \ | |
| 28 | 29 | obj/Logging.o \ | |
| 29 | 30 | obj/Mention.o \ | |
| 30 | 31 | obj/Message.o \ | |
| 31 | 32 | obj/PageSix.o \ | |
| 32 | 33 | obj/RandCard.o \ | |
| 34 | obj/RandomASM.o \ | ||
| 33 | 35 | obj/Setup.o \ | |
| 34 | 36 | obj/Stack.o \ | |
| 35 | 37 | obj/StringParse.o \ | |
| 38 | obj/TimeFunc.o \ | ||
| 36 | 39 | obj/Timers.o \ | |
| 37 | 40 | obj/XMLReadLib.o \ | |
| 38 | 41 | obj/b.o \ | |
| … | … | ||
| 51 | 51 | obj/gaze.o \ | |
| 52 | 52 | obj/gazeInfo.o \ | |
| 53 | 53 | obj/gazeProvides.o \ | |
| 54 | obj/gazeVersions.o \ | ||
| 54 | 55 | obj/google.o \ | |
| 55 | 56 | obj/k.o \ | |
| 56 | 57 | obj/m.o \ |

