Changeset 44934 in spip-zone for _acotes_


Ignore:
Timestamp:
Feb 25, 2011, 2:48:33 PM (8 years ago)
Author:
ben.spip@…
Message:

le fichier texte d edgard est maintenant genere a la demande ... disparition du wiki

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _acotes_/irc/Edgard.pl

    r43690 r44934  
    44use warnings;
    55
     6my $URL="http://edgard.spip.org/spip.php?page=edgard&var_mode=recalcul";
     7my $nick = 'Edgard';
     8
     9my %hash;
     10
    611# On utilise la librairie Net::IRC pour se connecter à IRC
    712use Net::IRC;
    8 
     13use HTTP::Request ;
     14use LWP::UserAgent;
    915
    1016# Configuration des options de connexion (serveur, login) :
    1117my $server = 'irc.freenode.net';
    12 my $nick = 'Edgard';
    1318
    1419
     
    2328
    2429
    25 my $FICHIER_WIKI="/var/www/virtual/edgard.spip.org/htdocs/data/pages/start.txt";
     30my $FICHIER_WIKI="/var/www/virtual/edgard.spip.org/htdocs/tmp/edgard.txt";
     31 
    2632
    2733# On crée l'objet qui nous permet de nous connecter à IRC :
     
    5460       
    5561        $conn->join($channel);
    56         $conn->privmsg($channel, 'Salut ... ah  une minute sans IRC, que du bonheur');
    57         print "<$nick>\t1 minute sans IRC, que du bonheur !\n";
     62        #$conn->privmsg($channel, 'Salut ... ah  une minute sans IRC, que du bonheur');
     63        #print "<$nick>\t1 minute sans IRC, que du bonheur !\n";
     64        reload_edgard($conn,$channel);
    5865       
    5966        $conn->{'connected'} = 1;
    6067} # Fin on_connect
     68
     69
     70sub reload_edgard
     71{
     72        my ($conn, $channel) = @_;
     73        my %hash2;
     74
     75        #on recharge la page edgard.html qui va ecrire le fichier texte
     76        my $agent = LWP::UserAgent->new(env_proxy => 1,keep_alive => 1, timeout => 30);
     77        my $header = HTTP::Request->new(GET => $URL);
     78        my $request = HTTP::Request->new('GET', $URL, $header);
     79        my $response = $agent->request($request);
     80
     81        # Check the outcome of the response
     82        if ($response->is_success){
     83                $conn->privmsg($channel, "Et voila je suis en phase avec moi");
     84        }elsif ($response->is_error){
     85                $conn->privmsg($channel, "Ah probleme au rechargement ");
     86        }
     87
     88
     89
     90        open (FILE,"<$FICHIER_WIKI");
     91        while (<FILE>)
     92        {   
     93                # chaque ligne est successivement affectée à $_
     94                my $ligne="$_";
     95                chomp $ligne;
     96                (my $cle1, my $cle2)=split(/;/,$ligne);
     97                if ($cle1)
     98                {
     99                        $hash2{"$cle1"}=$cle2;
     100                        #print __LINE__."bingo $cle1    $cle2 \n";
     101                }
     102        }
     103        close (FILE);
     104        %hash=%hash2;
     105}
     106
     107
    61108
    62109
     
    65112        my ($conn, $event) = @_;
    66113        my $text = $event->{'args'}[0];
     114        if ( $text =~ /\@edgardmoi/)
     115        {
     116                reload_edgard($conn,$channel);
     117        }
    67118        $conn->print("<" . $event->{'nick'} . ">\t| $text");
    68119
    69                 # pour l'instant on lit le fichier à chaque message ... c'est LOURD mais bon
    70                 # todo : relire le fichier seulement toutes les 5 minutes par exemple
    71                 my %hash;
    72                 open (FILE,"<$FICHIER_WIKI");
    73                
    74                 while (<FILE>)
    75                 {    # chaque ligne est successivement affectée à $_
    76                         my $ligne="$_";
    77                         chomp $ligne;
    78                         (my $cle1, my $cle2)=split(/;/,$ligne);
    79                         if ($cle1)
    80                         {
    81                                 $hash{"$cle1"}=$cle2;
    82                                 #print __LINE__."bingo $cle1    $cle2 \n";
    83                         }
    84                 }
    85                 close (FILE);
    86                
    87120                foreach my $key (keys(%hash))
    88121                {
Note: See TracChangeset for help on using the changeset viewer.