Blame
Date:
Tue Dec 21 08:11:28 2021 UTC
Message:
Added README to install dependencies
001
2021-12-17
jrmu
#!/usr/bin/perl
002
2021-12-17
jrmu
use strict;
003
2021-12-17
jrmu
use warnings;
004
2021-12-17
jrmu
005
2021-12-17
jrmu
open(my $fh, ">>logbot.log") or die "Unable to write to logbot.log";
006
2021-12-17
jrmu
select((select($fh), $|=1)[0]);
007
2021-12-17
jrmu
008
2021-12-17
jrmu
package LogBot;
009
2021-12-17
jrmu
use base qw(Bot::BasicBot);
010
2021-12-17
jrmu
011
2021-12-17
jrmu
sub date {
012
2021-12-17
jrmu
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
013
2021-12-17
jrmu
my $localtime = sprintf("%04d%02d%02d %02d:%02d", $year+1900, $mon+1, $mday, $hour, $min);
014
2021-12-17
jrmu
return $localtime;
015
2021-12-17
jrmu
}
016
2021-12-17
jrmu
017
2021-12-17
jrmu
sub said {
018
2021-12-17
jrmu
my $self = shift;
019
2021-12-17
jrmu
my $arguments = shift;
020
2021-12-17
jrmu
print $fh date()." <$arguments->{who}> $arguments->{body}\n";
021
2021-12-17
jrmu
return;
022
2021-12-17
jrmu
}
023
2021-12-17
jrmu
024
2021-12-17
jrmu
sub emoted {
025
2021-12-17
jrmu
my $self = shift;
026
2021-12-17
jrmu
my $arguments = shift;
027
2021-12-17
jrmu
print $fh date()." *$arguments->{who} $arguments->{body}\n";
028
2021-12-17
jrmu
return;
029
2021-12-17
jrmu
}
030
2021-12-17
jrmu
031
2021-12-17
jrmu
sub noticed {
032
2021-12-17
jrmu
my $self = shift;
033
2021-12-17
jrmu
my $arguments = shift;
034
2021-12-17
jrmu
print $fh date()." [$arguments->{who} notice]: $arguments->{body}\n";
035
2021-12-17
jrmu
return;
036
2021-12-17
jrmu
}
037
2021-12-17
jrmu
038
2021-12-17
jrmu
sub chanjoin {
039
2021-12-17
jrmu
my $self = shift;
040
2021-12-17
jrmu
my $arguments = shift;
041
2021-12-17
jrmu
print $fh date()." -!- $arguments->{raw_nick} has joined $arguments->{channel}\n";
042
2021-12-17
jrmu
return;
043
2021-12-17
jrmu
}
044
2021-12-17
jrmu
045
2021-12-17
jrmu
sub chanpart {
046
2021-12-17
jrmu
my $self = shift;
047
2021-12-17
jrmu
my $arguments = shift;
048
2021-12-17
jrmu
print $fh date()." -!- $arguments->{raw_nick} has left $arguments->{channel} $arguments->{body}\n";
049
2021-12-17
jrmu
return;
050
2021-12-17
jrmu
}
051
2021-12-17
jrmu
052
2021-12-17
jrmu
sub topic {
053
2021-12-17
jrmu
my $self = shift;
054
2021-12-17
jrmu
my $arguments = shift;
055
2021-12-17
jrmu
my $who = $arguments->{who};
056
2021-12-17
jrmu
if (defined($who)) {
057
2021-12-17
jrmu
print $fh date()." -!- $who changed the topic of $arguments->{channel} to: $arguments->{topic}\n";
058
2021-12-17
jrmu
}
059
2021-12-17
jrmu
return;
060
2021-12-17
jrmu
}
061
2021-12-17
jrmu
062
2021-12-17
jrmu
sub nickchange {
063
2021-12-17
jrmu
my $self = shift;
064
2021-12-17
jrmu
my $oldnick = shift;
065
2021-12-17
jrmu
my $newnick = shift;
066
2021-12-17
jrmu
print $fh "$oldnick is now known as $newnick\n";
067
2021-12-17
jrmu
return;
068
2021-12-17
jrmu
}
069
2021-12-17
jrmu
070
2021-12-17
jrmu
sub mode_change {
071
2021-12-17
jrmu
my $self = shift;
072
2021-12-17
jrmu
my $arguments = shift;
073
2021-12-17
jrmu
my $chan = $arguments->{channel};
074
2021-12-17
jrmu
my $operands = $arguments->{mode_operands};
075
2021-12-17
jrmu
if (defined($chan) && $chan ne "msg" && scalar(@$operands)) {
076
2021-12-17
jrmu
print $fh date()." -!- mode/$chan $arguments->{who} [$arguments->{mode_changes}] ".join(", ", @$operands)."\n";
077
2021-12-17
jrmu
}
078
2021-12-17
jrmu
return;
079
2021-12-17
jrmu
}
080
2021-12-17
jrmu
081
2021-12-17
jrmu
sub kicked {
082
2021-12-17
jrmu
my $self = shift;
083
2021-12-17
jrmu
my $arguments = shift;
084
2021-12-17
jrmu
print $fh date()." -!- $arguments->{who} kicks $arguments->{kicked} [$arguments->{reason}]\n";
085
2021-12-17
jrmu
}
086
2021-12-17
jrmu
087
2021-12-17
jrmu
sub userquit {
088
2021-12-17
jrmu
my $self = shift;
089
2021-12-17
jrmu
my $arguments = shift;
090
2021-12-17
jrmu
print $fh " -!- $arguments->{raw_nick} quits [$arguments->{body}]\n";
091
2021-12-17
jrmu
}
092
2021-12-17
jrmu
093
2021-12-17
jrmu
package main;
094
2021-12-17
jrmu
095
2021-12-17
jrmu
my $bot = LogBot->new(
096
2021-12-17
jrmu
server => 'irc.example.com',
097
2021-12-17
jrmu
port => '6667',
098
2021-12-17
jrmu
channels => ['#perl104'],
099
2021-12-17
jrmu
nick => 'nickname',
100
2021-12-17
jrmu
name => 'username',
101
2021-12-17
jrmu
);
102
2021-12-17
jrmu
103
2021-12-17
jrmu
local $SIG{INT} = sub {
104
2021-12-17
jrmu
close($fh);
105
2021-12-17
jrmu
print "Quitting program...\n";
106
2021-12-17
jrmu
$bot->shutdown("Quitting...");
107
2021-12-17
jrmu
};
108
2021-12-17
jrmu
109
2021-12-17
jrmu
$bot->run();
IRCNow