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

bot.pl

Blame
    • TC's avatar
      863d49ef
      Correction du bug save/load de reminds · 863d49ef
      TC a rédigé
      Correction du bug de maxlinelen et de coupage de messages
      Changement de façon de retrouver les permissions d'accès aux commandes
      via le fichier (on ne regarde que la première ligne maintenant)
      863d49ef
      Historique
      Correction du bug save/load de reminds
      TC a rédigé
      Correction du bug de maxlinelen et de coupage de messages
      Changement de façon de retrouver les permissions d'accès aux commandes
      via le fichier (on ne regarde que la première ligne maintenant)
    bot.pl 4,79 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;
    	
    	# Ça c'est pour utiliser nos librairies avant celles installées sur le système
    	# Ça sert notamment pour Net::IRC, vu que je l'ai patchée (http://coltel.iiens.net/patch_Net_IRC)
    	my $incpath = pop @INC;
    	unshift @INC, $incpath;
    	
    	
    	# 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;
    use Net::Domain qw(hostfqdn);
    
    
    # On initialise le module en charge des logs
    our $logger = new Logging(
    						  $Config::debug > 1 ? "STDOUT": $Config::logfile,
    						  1,
    						  1
    						 );
    $logger->utf8(1);
    
    # On créé une instance du module pour mettre à jour les scripts
    our $refresher = new Refresh();