From 44ec56c4e985839702b5fdb27c4dc99178d191f7 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 20 Apr 2010 22:08:23 +0000 Subject: [PATCH] fix --nick/--server handling; add list command --- irccat | 46 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/irccat b/irccat index 5febfb0..3c92777 100755 --- a/irccat +++ b/irccat @@ -20,6 +20,7 @@ Available commands (with arguments) are: who #channel List the visible users on a channel. whois username ... Query information about particular users. + list List channels. EOF exit 1; @@ -37,32 +38,47 @@ GetOptions(\%options, ); usage if $options{help}; +unless (defined $options{nick}) { + print STDERR "No nickname set; use --nick or IRCNICK.\n\n"; + usage; +} +unless (defined $options{server}) { + print STDERR "No server set; use --server or IRCSERVER.\n\n"; + usage; +} my $command = shift or usage; $command = lc $command; +my $irc = new Net::IRC; + +# TODO +my $conn = $irc->newconn(Nick => $options{nick}, Server => $options{server}) + or die "$0: can't connect to IRC server"; + if ($command eq 'who') { scalar @ARGV == 1 or usage; + $conn->add_handler('376', sub { + my $self = shift; + $self->who($ARGV[1]); + }); } elsif ($command eq 'whois') { scalar @ARGV > 0 or usage; } -else +elsif ($command eq 'list') { - usage; + scalar @ARGV == 0 or usage; + $conn->add_handler('376', sub { + my $self = shift; + $self->list('-yes'); + }); } - -my $irc = new Net::IRC; - -my $conn = $irc->newconn(Nick => $mynick, Server => $server) - or die "$0: can't connect to IRC server"; - -sub on_connect +else { - my $self = shift; - $self->who($targetchannel); + usage; } sub on_whoreply @@ -80,8 +96,14 @@ sub on_endofwho exit; } -$conn->add_handler('376', \&on_connect); +sub on_list +{ + my ($self, $event) = @_; + print $event->args, "\n"; +} + $conn->add_handler('352', \&on_whoreply); $conn->add_handler('315', \&on_endofwho); +$conn->add_handler('322', \&on_list); $irc->start; -- 2.30.2