Sélectionner une révision Git
bot.pl 3,63 Kio
#!/usr/bin/perl
#
# Bot IRC
#
# @author TC (aka Romain Coltel)
# @date 2010-03-26 - First release
#
#
BEGIN {
use strict;
use warnings;
use Core::Command_line_args;
use Core::Config;
use Core::Getpass;
use Core::Logging;
unshift @INC, "./";
# On vérifie qu'on n'a pas trop de droits
open ID, "id |" or die "Unable to run `id`\n";
my $id = <ID>;
close ID;
if($id =~ /uid=(\d+)\(([A-Za-z]+)\)/)
{
if($1 == 0 || $2 eq "root")
{
print STDERR "I don't wanna be running with privileges";
exit 2;
}
}
# On regarde les arguments passés en ligne de commande ensuite
if($#ARGV != -1)
{
# S'il y a des arguments, on jette un oeil dessus
Command_line_args::process_args(\@ARGV);
}
# Récupérons notre mdp Nickserv de celui qui lance le bignouf
my $pass = Getpass::get_pass("NickServ");
$Config::passwd = $pass;
}
use Net::IRC;
use Core::Hook;
use Core::Refresh;
# On initialise le module en charge des logs
our $logger = new Logging(
$Config::debug > 1 ? "STDOUT": "Logs/mainlogs",
1,
1
);
$logger->utf8(1);
# On créé une instance du module pour mettre à jour les scripts
our $refresher = new Refresh();
# On installe les fonctions de Hook (un grand homme celui-là...) :
$logger->pending_info($Hook::handlers_routines);
$Hook::conn->add_handler('376', \&Hook::on_connect); # Fin du MOTD => on est connecte
$Hook::conn->add_handler('public', \&Hook::on_public); # Sur un chan => quelqu'un parle
$Hook::conn->add_handler('msg', \&Hook::on_private); # En prive => quelqu'un parle
$Hook::conn->add_handler('disconnect', \&Hook::on_disconnect); # À la deconnexion