Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 687a5345a753e08d4e91d3c5ce318f4413efdb49
  • master par défaut
  • cinch
  • ruby
  • gh-pages
  • v1.0.0
6 résultats

PlayBot.pl

Blame
  • PlayBot.pl 6,49 Kio
    #!/usr/bin/perl -w
    use strict;
    use warnings;
    
    use POE;
    use POE::Component::IRC;
    use POSIX 'strftime';
    use DBI;
    use Tie::File;
    use JSON;
    use Module::Reload;
    use FindBin;
    
    use lib "$FindBin::Bin/lib/";
    use Logging;
    use sites::parser;
    use commands::parser;
    
    # nom du fichier
    my $bot = $0;
    
    my $log = Logging->new('STDOUT', 1);
    
    # config
    my $serveur = 'IRC.iiens.net';
    my $nick = 'PlayBot';
    my $port = 6667;
    my $ircname = 'nightiies';
    my $username = 'nightiies';
    my @channels = qw(#nightiies #dansiie #pimpim #vitamine #fanfare #groop #bigphatsubwoofer);
    my $admin = 'moise';
    my $baseurl = 'http://nightiies.iiens.net/links/';
    my @nicksToVerify;
    my @codesToVerify;
    my %lastID;
    
    my $debug = 0;
    
    # mode debug
    if ($#ARGV + 1) {
    	@channels = qw(#hormone);
    	$nick = 'kikoo';
    	$debug = 1;
    }
    
    
    local $/;
    open CONF, '<', 'playbot.conf';
    my $json = <CONF>;
    my $conf = decode_json($json);
    
    
    ## CONNEXION 
    my ($irc) = POE::Component::IRC->spawn();
    my $dbh = DBI->connect('DBI:mysql:'.$conf->{'bdd'}.';host='.$conf->{'host'}, $conf->{'user'}, $conf->{'passwd'}, {
    	    PrintError => 0,
    	    AutoCommit => 1,
    		mysql_auto_reconnect => 1
    	})
    	or die("Couldn't connect to database: ".DBI->errstr);
    
    # Evenements que le bot va gérer
    POE::Session->create(
    	inline_states => {
            _start     => \&bot_start,
            irc_001    => \&on_connect,
            irc_public => \&on_speak,
            irc_msg    => \&on_query,
            irc_invite => \&on_invite,
            irc_notice => \&on_notice,