5 open(my $fh, ">>logbot.log") or die "Unable to write to logbot.log";
6 select((select($fh), $|=1)[0]);
9 use base qw(Bot::BasicBot);
12 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
13 my $localtime = sprintf("%04d%02d%02d %02d:%02d", $year+1900, $mon+1, $mday, $hour, $min);
19 my $arguments = shift;
20 print $fh date()." <$arguments->{who}> $arguments->{body}\n";
26 my $arguments = shift;
27 print $fh date()." *$arguments->{who} $arguments->{body}\n";
33 my $arguments = shift;
34 print $fh date()." [$arguments->{who} notice]: $arguments->{body}\n";
40 my $arguments = shift;
41 print $fh date()." -!- $arguments->{raw_nick} has joined $arguments->{channel}\n";
47 my $arguments = shift;
48 print $fh date()." -!- $arguments->{raw_nick} has left $arguments->{channel} $arguments->{body}\n";
54 my $arguments = shift;
55 my $who = $arguments->{who};
57 print $fh date()." -!- $who changed the topic of $arguments->{channel} to: $arguments->{topic}\n";
66 print $fh "$oldnick is now known as $newnick\n";
72 my $arguments = shift;
73 my $chan = $arguments->{channel};
74 my $operands = $arguments->{mode_operands};
75 if (defined($chan) && $chan ne "msg" && scalar(@$operands)) {
76 print $fh date()." -!- mode/$chan $arguments->{who} [$arguments->{mode_changes}] ".join(", ", @$operands)."\n";
83 my $arguments = shift;
84 print $fh date()." -!- $arguments->{who} kicks $arguments->{kicked} [$arguments->{reason}]\n";
89 my $arguments = shift;
90 print $fh " -!- $arguments->{raw_nick} quits [$arguments->{body}]\n";
95 my $bot = LogBot->new(
96 server => 'irc.example.com',
98 channels => ['#perl104'],
103 local $SIG{INT} = sub {
105 print "Quitting program...\n";
106 $bot->shutdown("Quitting...");