Blog du metabaron

Aller au contenu | Aller au menu | Aller à la recherche

Bienvenue sur mon blog!

mercredi, août 19 2009

Bug in Wordpress 2.8.4

Seems like I found a bug in Wordpress: http://core.trac.wordpress.org/ticket/10651. This is not a bug as it was fully functional before and just vanish in the last version ...

mercredi, juillet 22 2009

Empecher les bots de s'inscrire sur votre Wordpress Mu

Recemment, j'ai du faire joujou avec Wordpress Mu. Cette version de Wordpress vous permet, avec une unique installation, de pouvoir heberger plusieurs blogs.
Etant actuellement entrain de me former sur Perl, j'ai ecris un script qui copie l'internaute et qui permet la creation automatique d'un blog (en se connectant a la page wp-signup.php). Le probleme qui decoule de l'utilisation de cette page wp-signup.php (alors accessible a tous les internautes) et que, rapidement, vous vous retrouvez avec des spammers creant des blogs a la volee.
J'ai donc cherche sur Internet une facon de _bloquer l'acces a cette page pour toute machine ne faisant pas parti de mon domaine sans succes__!

Je partage avec vous ma methode:
Editez le fichier contenant votre VirtualHost ///

  1. Page we want to block access to
       <Files "wp-signup.php">
  1. Deny to all
               order deny,allow
               deny from all
  1. Allow from the server hosting Apache
               allow from 127.0.0.1
  1. Allow all servers from my domain name
               allow from .metabaron.net
  1. Allow IP address 192.168.0.254 (my ISP router)
               allow from 192.168.0.254
       </Files>

///
Ca devrait faire l'affaire (en tout cas ca le fait pour moi).

mardi, juillet 21 2009

Perl, traitement de mail envoyes par GMail de Google

Recemment, pour un projet sur lequel je travaille, j'ai eu a traiter des emails contenant une piece jointe.
J'ai alors rencontre un probleme simple mais embetant: Certains mailer, comme Gmail de Google, envoient le mail en HTML et en TXT. Generalement, et c'est mon cas, lorsque l'on traite des emails, seule la partie TXT est utile car vous ne souhaitez pas avoir a gerer toutes les balises HTML.

Donc, pour en revenir a Perl, je n'ai jamais trouve un code permettant de gerer facilement l'email et en extraire le texte ainsi que la piece jointe. J'ai bien trouve ce code sur le net (envoye par son auteur) mais il ne gere pas le cas d'un email venant de Google.

Je partage donc avec vous mon code en esperant que cela aide d'autres personnes:

#!/usr/bin/perl                                                                                                                               

use MIME::Parser;
### Store the content of the email here
my $Message;
### Create parser, and set some parsing options:                                                                                              
my $parser = new MIME::Parser;
### Store files here
$parser->output_dir("data");

### Parse input:                                                                                                                              
$entity = $parser->parse(\*STDIN) or die "parse failed\n";

### Take a look at the top-level entity (and any parts it has):                                                                               
#$entity->dump_skeleton;                                                                                                                      

### Get preamble, parts, and epilogue:                                                                                                        
$preamble   = $entity->preamble;          ### ref to array of lines                                                                           
$num_parts  = $entity->parts;
$epilogue   = $entity->epilogue;          ### ref to array of lines                                                                           
### Get the head, a MIME::Head:                                                                                                               
$head = $entity->head;

### Get email subject
my $Subject = $head->get('Subject');
chomp($Subject);

### Path to image file and text file with the email content
my $image_file;
my $text_file;

### Browse through all email parts
for(my $i=0;$i<$num_parts;$i++){
    my $dealing_part=$entity->parts($i);
    my $entity_size=$dealing_part->parts;

### Email body, HTML and TXT
    if($entity_size!=0){
        for(my $j=0;$j<$entity_size;$j++){
            my $sub_entity=$dealing_part->parts($j);
            my $content_type = $sub_entity->mime_type;
### I don't want HTML, skip it
            if($content_type=~/htm/){
                next;
            }
            if($content_type=~/^text/){
                my $handler=$sub_entity->bodyhandle;
                $text_file=$handler->path;
### Remove signature from the email (look for "--")
                $sub_entity->remove_sig;
            }
        }
### When no multiple parts
    else{
        my $content_type=$dealing_part->mime_type;
### Image
        if($content_type=~/^image/){
            my $handler=$dealing_part->bodyhandle;
            $image_file=$handler->path;
        }elsif($content_type=~/^text/){
### Text
            my $handler=$dealing_part->bodyhandle;
            $text_file=$handler->path;
            $dealing_part->remove_sig;
        }else{
            next;
        }
    }
}
print "\nText: $text_file\nImage: $image_file\n";
open(FILE,$text_file);
while(<FILE>){
    next if /^$/;
    $Message.=$_."\n";
    next;
}
chomp($Message);
print "\nMessage:\n$Message\n";
$entity->purge;

vendredi, juin 19 2009

Erreur dans le module Perl HTML::Extract lorsque vous gerer des pages UTF-8

Recememnt, j'ai eu besoins de travailler avec le module HTML::Extract de Perl.
Le probleme avec le module est que, apparemment, celui-ci gere mal les pages web en UTF-8. En effet, si vous tenter d'utiliser ce module sur une des pages du site de la RATP (par exemple):

my $extractor = new HTML::Extract;
my $page_nohtml = $extractor->gethtml($page_to_grab, "tagname=body", "returntype=text");
print $page_nohtml."\n";

Va vous retourner:

Malformed UTF-8 character (unexpected end of string) in subroutine entry at /usr/local/share/perl/5.8.8/HTML/Extract.pm line 127.
Malformed UTF-8 character (unexpected end of string) in length at /usr/share/perl5/HTML/TreeBuilder.pm line 988.
Malformed UTF-8 character (unexpected end of string) in substitution (s///) at /usr/share/perl5/HTML/TreeBuilder.pm line 1106.
Malformed UTF-8 character (unexpected end of string) in subroutine entry at /usr/local/share/perl/5.8.8/HTML/Extract.pm line 127.
Malformed UTF-8 character (unexpected end of string) in length at /usr/share/perl5/HTML/TreeBuilder.pm line 988.
Malformed UTF-8 character (unexpected end of string) in substitution (s///) at /usr/share/perl5/HTML/TreeBuilder.pm line 1106.
Malformed UTF-8 character (unexpected end of string) in subroutine entry at /usr/local/share/perl/5.8.8/HTML/Extract.pm line 127.
Malformed UTF-8 character (unexpected end of string) in length at /usr/share/perl5/HTML/TreeBuilder.pm line 988.
Malformed UTF-8 character (unexpected end of string) in substitution (s///) at /usr/share/perl5/HTML/TreeBuilder.pm line 1106.
Malformed UTF-8 character (unexpected end of string) in subroutine entry at /usr/local/share/perl/5.8.8/HTML/Extract.pm line 127.
Malformed UTF-8 character (unexpected end of string) in length at /usr/share/perl5/HTML/TreeBuilder.pm line 988.
Malformed UTF-8 character (unexpected end of string) in substitution (s///) at /usr/share/perl5/HTML/TreeBuilder.pm line 1106.

Et le contenu que vous allez recuperer ne pourra pas afficher les accents (donc c'est inutilisable en l'etat).

Et bien, j'ai fait un rapport de bug aux gens de chez Perl car j'ai la modification a faire pour resoudre le probleme (en tout cas, cela resoud le probleme dans mon cas):

Extract.pm line 127
WAS: Encode::_utf8_on($content2); 
NOW: utf8::decode($content2);

Probleme resolu :)

vendredi, mai 15 2009

Acces facile a la VOD

De plus en plus de chaines francaises se mettent a la VOD pour toute ou partie de leurs programmes. Le probleme est d'acceder facilement aux videos sans avoir a rechercher sur tout le site.
Et bien, le site tvarevoir, encore en version beta, indexe toutes les videos des 8 grandes chaines francaises.