This commit is contained in:
norayr 2017-04-14 19:30:13 +04:00
parent 340de3824b
commit 4c73f414b0
3 changed files with 155 additions and 61 deletions

View file

@ -8,47 +8,23 @@ owner, user, nick, host, port, channel: ARRAY 32 OF CHAR;
PROCEDURE testBot;
VAR
b, b2: BOOLEAN;
patternFound : BOOLEAN;
patternPos: INTEGER;
str, str2, str3: ARRAY 512 OF CHAR;
b: BOOLEAN;
channels : IRC.chnlist;
BEGIN
IF IRC.Connect(host, port) # FALSE THEN
b := IRC.Auth(user, nick, owner);
REPEAT
b := IRC.Receive(str);
Strings.Extract(str, 0, 4, str2);
IF Strings.Equal(str2, IRC.ping) THEN
(*b := IRC.Send(IRC.pong);*)
str[1] := 'O'; (* replace "PING" by "PONG" *)
b2 := IRC.Send(str);
ELSIF str[0] = ':' THEN
Out.String("':' found"); Out.Ln;
Strings.FindNext(IRC.zzo, str, 0, patternFound, patternPos);
IF patternFound THEN
Out.String("001 found"); Out.Ln;
COPY ("MODE ", str3);
Strings.Append(nick, str3);
Strings.Append(" +B", str3);
Strings.Append(IRC.eol, str3);
Strings.Append(0X, str3);
b2 := IRC.Send(str3);
COPY("JOIN ", str3);
Strings.Append("#oberon", str3);
Strings.Append(IRC.eol, str3);
Strings.Append(0X, str3);
b2 := IRC.Send(str3);
END;
END;
UNTIL ~b;
END;
NEW(channels, 1);
channels[0] := channel;
IRC.setChannelList(channels);
IF IRC.Connect(host, port) # FALSE THEN
b := IRC.Auth(user, nick, owner);
IRC.Loop;
END;
END testBot;
BEGIN
owner := "norayr_tanakian";
user := "norayr_tanakian";
nick := "arnet_am";
nick := "vocbot";
host := "irc.freenode.net";
port := "6667";
channel := "#oberon";