#!/usr/bin/perl -w use strict; use Net::AIM; use VladimirBot; my $nick = "VladimirBot"; my $pass = 'awwaiid'; my $aim = new Net::AIM; #$aim->debug(1); my $conn2 = $aim->newconn(Screenname => $nick, Password => $pass) or die "Can't connect to AIM server.\n"; my $conn = $aim->getconn(); $conn->set_handler('config', \&on_config); $conn->set_handler('im_in', \&on_im); $conn->set_handler('error', \&on_error); print STDERR "Starting loop.\n"; $aim->start; sub on_config { my ($self, $event) = @_; my ($str) = $event->args; $self->set_config($str); } sub on_error { my ($self, $event) = @_; my $error; my @stuff; ($error, @stuff) = $event->args; my $errstr = $event->trans($error); $errstr =~ s/\$(\d+)/$stuff[$1]/ge; print STDERR "ERROR: $errstr\n"; } sub on_im { my ($self, $event, $from, $to) = @_; print STDERR "on_im: $self, $event, $from, $to\n"; my $args = $event->args; my ($nick, $auto_msg, $msg) = @$args; my $out; my $extra; $VladimirBot::extra{'aim'} = $self; print $event->dump; if($msg eq 'reload') { eval 'use VladimirBot'; $out = "Reloaded."; } else { sleep 3; $out = VladimirBot::process($nick, $msg, $extra); } $self->send_im($nick, $out); }