| 1 | use v6; |
|---|
| 2 | |
|---|
| 3 | warn 'Init'; |
|---|
| 4 | |
|---|
| 5 | my $socket = IO::Socket::INET.new; |
|---|
| 6 | |
|---|
| 7 | warn 'Created socket'; |
|---|
| 8 | |
|---|
| 9 | $socket.open('irc.freenode.net', 6667); |
|---|
| 10 | |
|---|
| 11 | warn 'opened connection'; |
|---|
| 12 | |
|---|
| 13 | $socket.send: qq{USER littletestbot "" "" :littletestbot\r\n}; |
|---|
| 14 | |
|---|
| 15 | warn 'sent USER'; |
|---|
| 16 | |
|---|
| 17 | $socket.send("NICK imaltb\r\n"); |
|---|
| 18 | |
|---|
| 19 | warn 'sent NICK'; |
|---|
| 20 | |
|---|
| 21 | $socket.send("JOIN #perl6\r\n"); |
|---|
| 22 | |
|---|
| 23 | warn 'sent JOIN'; |
|---|
| 24 | |
|---|
| 25 | loop { |
|---|
| 26 | warn 'init loop'; |
|---|
| 27 | |
|---|
| 28 | my $buf = ''; |
|---|
| 29 | |
|---|
| 30 | warn 'cleared buffer'; |
|---|
| 31 | |
|---|
| 32 | until $buf ~~ / \r\n $ / { |
|---|
| 33 | warn 'start of until'; |
|---|
| 34 | $buf ~= $socket.recv(1); |
|---|
| 35 | warn 'recv'; |
|---|
| 36 | } |
|---|
| 37 | say $buf; |
|---|
| 38 | my $msg = $buf.split(' '); |
|---|
| 39 | warn 'split buf'; |
|---|
| 40 | if $msg.shift eq 'PING' { |
|---|
| 41 | warn 'sending ping'; |
|---|
| 42 | $socket.send("PONG {$msg.shift}\r\n"); |
|---|
| 43 | warn 'sent ping'; |
|---|
| 44 | } |
|---|
| 45 | warn 'end of loop'; |
|---|
| 46 | } |
|---|