#!/usr/bin/perl -w use Net::IRC; use strict; use HTTP::Response; use HTML::LinkExtor; use URI::URL; use DBI; use Data::Dumper; use File::Basename; use File::Path; use vars qw($search $text $ftp); use Net::FTP; use Config::IniFiles; use Number::Format; use LWP::UserAgent; use HTTP::Request; #use Thread; use FileHandle; use Time::HiRes qw(usleep ualarm gettimeofday tv_interval); use Date::Calc qw(:all); use Net::Cmd; use forks; my $ircserver = '127.0.0.1'; my $ircport = '7777'; our $ircchannel = '#test'; my $ircbotname = 'labrat'; my $joingreet = 'hello fellas'; my $nickgreet = 'welcome '; my $ircname = 'labrat'; my $username = 'labrat'; my $localip = '192.168.0.1'; my $pid = $$; our $bold = chr(2); print "Preparing to load required files!!\n"; ### MODULES ### require "help_module.pl"; print "Required Files loaded OK!!\n"; sub ircinfo { our $irc = new Net::IRC; our $conn = $irc->newconn( Server => $ircserver, Port => $ircport, Nick => $ircbotname, Ircname => $ircname, LocalAddr => $localip, Password => 'fucknuts.', Username => $username ); $conn->{channel} = $ircchannel; $conn->add_handler('join', \&on_join); $conn->add_handler('part', \&on_part); $conn->add_handler('public', \&on_public); $conn->add_handler('376', \&on_connect); $conn->add_global_handler('disconnect', \&reconnect); $conn->add_global_handler(433, \&on_nick_taken); $irc->start(); } sub reconnect { system("./bot.pl &"); system("kill -9 $pid"); } sub default { my ($conn, $event) = @_; print Dumper($event); } sub on_connect { my $conn = shift; $conn->join($conn->{channel}); $conn->privmsg($conn->{channel}, $joingreet); $conn->{connected} = 1; $conn->add_global_handler(433, \&on_nick_taken); } sub on_nick_taken { my ($self) = shift; $self->nick(substr($self->nick, -1) . substr($self->nick, 0, 8)); } sub on_join { my ($conn, $event) = @_; my $nick = $event->{nick}; my $host = $event->{host}; $conn->privmsg($conn->{channel}, "$nickgreet," . $bold . " $nick" . $bold ); } sub on_part { my ($conn, $event) = @_; my $nick = $event->{nick}; $conn->privmsg($conn->{channel}, "Goodbye, $nick!"); } sub on_public { my ($conn, $event) = @_; my $text = $event->{args}[0]; if (lc substr($text,0,5) eq ".help") { my $info = substr($text,6); my $helpthr = threads->new(\&help, "$event->{nick}"); $helpthr->detach; } } print "Starting Bot!!\n"; ircinfo();