#/usr/bin/perl
<<DOC; 
Egle Ramdani
FEVRIER 2006
Usage : perl parcours-arborescence-fichiers répertoire-à-parcourir
Le programme prend en entrée le nom du répertoire contenant les fichiers à traiter
et produit en sortie un corpus pour l'étiquetage avec Cordial.
DOC
# récupération du nom du répertoire -----------------------------------------------------------
my $rep="$ARGV[0]";
# on s'assure que le nom du répertoire ne se termine pas par un "/"
$rep=~ s/[\/]$//;
# création du fichier de sortie ---------------------------------------------------------------
my $output="filtrage_pour_cordial.txt";
if (!open (FILEOUT,">$output")) { die "Pb a l'ouverture du fichier $output"};

# lancement de la procédure qui parcours l'arborescence ---------------------------------------
&parcoursarborescencefichiers($rep);

# fermeture du fichier de sortie --------------------------------------------------------------
close(FILEOUT);
exit;

# parcours de l'arborescence en recherche des fichiers ----------------------------------------
sub parcoursarborescencefichiers {
    my $path = shift(@_);
    opendir(DIR, $path) or die "Impossible d'ouvrir $path: $!\n";
    my @items = readdir(DIR);
    closedir(DIR);
    foreach my $item (@items) {
    next if $item =~ /^\.\.?$/;
    $item = $path."/".$item;
    if (-d $item) {
        &parcoursarborescencefichiers($item);   #récursion
    }
    if (-f $item) {
        &traitementtypo($item);
        print $i++,"\n";
    }
    }
}
#----------------------------------------------
sub traitementtypo{
my $fichier = shift; 
open(FILEINPUT,$fichier);
        while ($ligne = <FILEINPUT>){
        if ($ligne =~/<description>([^<]+)<\/description>/) {
            $des = $1;
            $des=~s/http\S+//g; #on enlève les liens html
            $des=~s/([^\.]$)/\1./g; #on s'assure que chaque ligne se termine par un point
            $des=~s/\.([A-Z])/. \1/g; #on s'assure qu'il y a un espace entre les phrases
            $des=~s/\s\././g; #on s'assure qu'il n'y ait pas d'espace avant le point
            $des=~s/&\#38\;\#39\;/\'/g;
            $des=~s/&\#38\;\#34\;/"/g;
            $des=~s/&\#233\;/é/g;
            $des=~s/&\#233\;p&\#234\;/ê/g;
            $des=~s/&\#234\;/ê/g;
            $des=~s/àª/ê/g;
            $des=~s/é/é/g;
            $des=~s/ô/ô/g;
            $des=~s/è/è/g;
            $des=~s/Ã/à/g;
            $des=~s/à§/ç/g;
            print FILEOUT "$des\n";
        }
    }
}