aboutsummaryrefslogtreecommitdiff
path: root/lib/IRC
diff options
context:
space:
mode:
authorZoffix Znet <cpan@zoffix.com>2016-06-05 21:39:47 -0400
committerZoffix Znet <cpan@zoffix.com>2016-06-05 21:39:47 -0400
commit140959e4f170d732d990e69b9a0ca129b89e3ac4 (patch)
treec96d92c8eba8af28eea21585c1c0e5c8a18f69d7 /lib/IRC
parent16056e8af837a4d982d23728adf24b4cc406576c (diff)
First working test
Diffstat (limited to 'lib/IRC')
-rw-r--r--lib/IRC/Client.pm68
-rw-r--r--lib/IRC/Client/Grammar/Actions.pm65
-rw-r--r--lib/IRC/Client/Message.pm61
-rw-r--r--lib/IRC/Client/Message/Numeric.pm62
-rw-r--r--lib/IRC/Client/Message/Privmsg.pm64
-rw-r--r--lib/IRC/Client/Message/Privmsg/Channel.pm65
-rw-r--r--lib/IRC/Client/Message/Privmsg/Me.pm62
-rw-r--r--lib/IRC/Client/Message/Unknown.pm64
8 files changed, 10 insertions, 21 deletions
diff --git a/lib/IRC/Client.pm6 b/lib/IRC/Client.pm6
index 96580cf..cacd7c1 100644
--- a/lib/IRC/Client.pm6
+++ b/lib/IRC/Client.pm6
@@ -37,14 +37,14 @@ method run {
"USER $!username $!username $!host :$!userreal",
:server($s-name);
+ my $left-overs = '';
react {
CATCH { warn .backtrace }
whenever $s-conf<sock>.Supply :bin -> $buf is copy {
- state $left-overs = '';
my $str = try $buf.decode: 'utf8';
$str or $str = $buf.decode: 'latin-1';
- $str = $left-overs ~ $str;
+ $str = ($left-overs//'') ~ $str;
(my $events, $left-overs)
= self!parse: $str, :server($s-name);
@@ -84,8 +84,8 @@ method !handle-event ($e) {
}
when 'PING' { $e.reply }
when 'JOIN' {
- say "Joined channel $e.channel()"
- if $e.nick eq %!servers{ $e.server }<nick>;
+ # say "Joined channel $e.channel() on $e.server()"
+ # if $e.nick eq %!servers{ $e.server }<nick>;
}
}
diff --git a/lib/IRC/Client/Grammar/Actions.pm6 b/lib/IRC/Client/Grammar/Actions.pm6
index cf702f8..7c16227 100644
--- a/lib/IRC/Client/Grammar/Actions.pm6
+++ b/lib/IRC/Client/Grammar/Actions.pm6
@@ -58,6 +58,11 @@ method message ($match) {
:channel( %args<params>[0] ),
|%msg-args;
}
+ when 'NICK' {
+ $msg = IRC::Client::Message::Nick.new:
+ :new-nick( %args<params>[0] ),
+ |%msg-args;
+ }
when 'NOTICE' { $msg = msg-notice %args, %msg-args }
when 'MODE' { $msg = msg-mode %args, %msg-args }
when 'PING' { $msg = IRC::Client::Message::Ping.new: |%msg-args }
diff --git a/lib/IRC/Client/Message.pm6 b/lib/IRC/Client/Message.pm6
index 9a51803..74261c9 100644
--- a/lib/IRC/Client/Message.pm6
+++ b/lib/IRC/Client/Message.pm6
@@ -22,6 +22,7 @@ role Notice::Me does Notice { }
role Mode does M { has @.modes; }
role Mode::Channel does Mode { has $.channel; }
role Mode::Me does Mode { }
+role Nick does M { has $.new-nick; }
role Numeric does M { }
role Part does M { has $.channel; }
role Quit does M { }
diff --git a/lib/IRC/Client/Message/Numeric.pm6 b/lib/IRC/Client/Message/Numeric.pm6
deleted file mode 100644
index c059eb4..0000000
--- a/lib/IRC/Client/Message/Numeric.pm6
+++ /dev/null
@@ -1,2 +0,0 @@
-use IRC::Client::Message;
-unit role IRC::Client::Message::Numeric does IRC::Client::Message;
diff --git a/lib/IRC/Client/Message/Privmsg.pm6 b/lib/IRC/Client/Message/Privmsg.pm6
deleted file mode 100644
index 31efdea..0000000
--- a/lib/IRC/Client/Message/Privmsg.pm6
+++ /dev/null
@@ -1,4 +0,0 @@
-use IRC::Client::Message;
-unit role IRC::Client::Message::Privmsg does IRC::Client::Message;
-
-has $.what;
diff --git a/lib/IRC/Client/Message/Privmsg/Channel.pm6 b/lib/IRC/Client/Message/Privmsg/Channel.pm6
deleted file mode 100644
index 36cf3d6..0000000
--- a/lib/IRC/Client/Message/Privmsg/Channel.pm6
+++ /dev/null
@@ -1,5 +0,0 @@
-use IRC::Client::Message::Privmsg;
-unit role IRC::Client::Message::Privmsg::Channel
- does IRC::Client::Message::Privmsg;
-
-has $.channel;
diff --git a/lib/IRC/Client/Message/Privmsg/Me.pm6 b/lib/IRC/Client/Message/Privmsg/Me.pm6
deleted file mode 100644
index 1ff31ba..0000000
--- a/lib/IRC/Client/Message/Privmsg/Me.pm6
+++ /dev/null
@@ -1,2 +0,0 @@
-use IRC::Client::Message::Privmsg;
-unit role IRC::Client::Message::Privmsg::Me does IRC::Client::Message::Privmsg;
diff --git a/lib/IRC/Client/Message/Unknown.pm6 b/lib/IRC/Client/Message/Unknown.pm6
deleted file mode 100644
index 91baa79..0000000
--- a/lib/IRC/Client/Message/Unknown.pm6
+++ /dev/null
@@ -1,4 +0,0 @@
-use IRC::Client::Message;
-unit role IRC::Client::Message::Unknown does IRC::Client::Message;
-
-method Str { "❚⚠❚ $.command @.args[]" }