Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 6d481ee54d71600d5efc8c0532d97fc9e98c4292
  • arise par défaut
  • list
3 résultats

bot.pl

Blame
  • 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