chiark / gitweb /
pull-mail: New script to encapsulate what my crontab needs to do to pull
[bin.git] / ircwhois.pl
1 #! /usr/bin/perl -w
2 use strict;
3
4 use Net::IRC;
5
6 sub usage ()
7 {
8         die <<"EOF";
9 Usage: $0 server my-nick target-nick [target-nick ...]
10 EOF
11 }
12
13 my $server = shift or usage;
14 my $mynick = shift or usage;
15 my @targetnicks = @ARGV;
16 usage if $#targetnicks == -1;
17
18 my $irc = new Net::IRC;
19
20 my $conn = $irc->newconn(Nick => $mynick, Server => $server)
21         or die "$0: can't connect to IRC server";
22
23 sub on_connect
24 {
25         my $self = shift;
26         $self->whois(@targetnicks);
27 }
28
29 sub on_whoisuser
30 {
31         my ($self, $event) = @_;
32         my $nick = ($event->args)[1];
33         print "$nick is online\n";
34 }
35
36 sub on_endofwhois
37 {
38         my $self = shift;
39         $self->quit;
40         exit;
41 }
42
43 $conn->add_handler('376', \&on_connect);
44 $conn->add_handler('311', \&on_whoisuser);
45 $conn->add_handler('318', \&on_endofwhois);
46
47 $irc->start;