rendered paste body#!/usr/bin/perl
###################
# Pothead the 2nd v1.1
# Iain "Backdraft" Cambridge
# wackiebackie@gmail.com
###################
use IO::Socket;
use POE;
require "./hander.pl";
require "./admin.pl";
require "./functions.pl";
require "./commands.pl";
require "./seen.pl";
require "./help.pl";
require "./rss.pl";
print "Loading...\n";
$starttime = time();
%events = (
stdout => "fpstdout",
stderr => "fpstderr",
error => "fperror",
done => "fpdone",
died => "fpdied"
);
do "bot.conf" or die " $mfail (bot.conf -- $!)\n";
$socket = IO::Socket::INET->new(PeerAddr => $server,
PeerPort => $port,
Proto => "tcp",
Type => SOCK_STREAM);
print $socket "user $username\n";
print $socket "nick $nick\n";
foreach (@channels)
{
print $socket "join $_\n";
}
open(LOG,">log.dat") || die("Cannot Open File");
POE::Kernel->run();
while (<$socket>){
POE::Session->create(
package_states => [ "main" => [ values(%events) ] ],
inline_states => {
_start => \&basic($_),
}
);
}
close(LOG);
#############
# Basic Stuff
#############
sub basic {
chop($_);
pong($_);
if ($debug eq "yes")
{
print "$_\n";
}
$raw = $_;
if ($raw =~ /NOTICE/){
hnotice($raw);
}
if ($raw =~ /JOIN/){
hjoin($raw);
}
if ($raw =~ /PRIVMSG/){
hmsg($raw, $starttime);
}
}
sub pong {
$message = $_[0];
if ($message =~ /^ping/i) {
$message =~ s/^ping\s+://;
print $socket "PONG :$_";
}
}