Public feed
#380646
#!/usr/bin/perl
use strict;
use POE;
use POE::Component::IRC;
my $nick = 'mrtgbot';
sub _start {
my ($kernel) = $_[KERNEL];
$kernel->alias_set('anmrtgbot');
$kernel->post('mrtgbot', 'register', 'all');
$kernel->post('mrtgbot', 'connect', { Debug =>0,
Nick => $nick,
Server => $ARGV[0] || 'irc.slash-node.org',
Port => $ARGV[1] || 6667,
Username => 'mrtgbot',
Ircname => 'mrtgbot', }
);
}
sub irc_001 {
my ($kernel) = $_[KERNEL];
$kernel->post('mrtgbot', 'stats', 'm');
}
sub irc_212 {
#from http://vengeance.et.tudelft.nl/~smoke/irc-messages.txt
# ; RPL_STATSCOMMANDS <command> <count> <byte count> <remote count> <command> <count> <byte count> <remote count>
# (212 . "%c %n %b %r")
my ($kernel, $from, $values) = @_[KERNEL, ARG0, ARG1];
my($command, $count, $bytecount, $remotecount) = ($values =~ /^([A-Z]*) (\d+) (\d+) (\d+)$/i );
if ($ARGV[2] eq $command) {
print "$count\n$remotecount\n";
}
}
sub irc_219 {
my ($kernel) = $_[KERNEL];
$kernel->post( 'mrtgbot', 'quit', "I'll be back" );
$kernel->alias_remove('anmrtgbot');
exit 0;
}
sub irc_disconnected {
my ($server) = $_[ARG0];
print "Lost connection to server $server.\n";
}
sub irc_error {
my $err = $_[ARG0];
print "Server error occurred! $err\n";
}
sub irc_socketerr {
my $err = $_[ARG0];
print "Couldn't connect to server: $err\n";
}
sub _stop {
my ($kernel) = $_[KERNEL];
print "Control session stopped.\n";
$kernel->post( 'mrtgbot', 'quit', "I'll be back" );
$kernel->alias_remove('anmrtgbot');
}
POE::Component::IRC->spawn('mrtgbot') or die "Can't instantiate new IRC component!\n";
POE::Session->new('main' => [qw(_start _stop irc_001 irc_disconnected irc_socketerr irc_error irc_212 irc_219)] );
$poe_kernel->run();
exit 0;