#/usr/bin/perl
<<DOC; 
Nom : VU Tai et Courrier Alain
Année: 2009

DOC
#-----------------------------------------------------------
my $rep="$ARGV[0]";
# on s'assure que le nom du répertoire ne se termine pas par un "/"
$rep=~ s/[\/]$//;
# on initialise une variable contenant le flux de sortie 
my $DUMPFULL1="";
#Fichier en sortie
my $output1="SORTIE-bao2_treetagger_alaune.xml";
if (!open (FILEOUT,">$output1")) { die "Pb a l'ouverture du fichier $output1"};
#----------------------------------------
&parcoursarborescencefichiers($rep);	#recurse!
#----------------------------------------
print FILEOUT "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<PARCOURS>\n<NOM>VU Tai et COURRIER Alain</NOM>\n<ETIQUETAGE>\n$DUMPFULL1";
print FILEOUT "</ETIQUETAGE>\n</PARCOURS>\n";
close(FILEOUT);
exit;
# Parcours de l'arborescence :
sub parcoursarborescencefichiers {
    my $path = shift(@_);
    opendir(DIR, $path) or die "can't open $path: $!\n";
    my @files = readdir(DIR);
    closedir(DIR);
    foreach my $file (@files) {
	next if $file =~ /^\.\.?$/;
	$file = $path."/".$file;
	if (-d $file) {
	    &parcoursarborescencefichiers($file);	#recurse!
	}
	if (-f $file) {
# TRAITEMENT à réaliser sur chaque fichier
		# il ne faut traiter que les fichiers XML et en plus il ne faut traiter que les fichiers à la une : 0,2-3208,1-0,0.xml
		if ($file=~/0,2-3208,1-0,0\.xml/) {
			open(FILEINPUT, "$file");
			$i=1;
			while ($ligne = <FILEINPUT>) {
			   # Traitement des lignes ne contenant pas "Retrouvez l'ensemble..., au moment de la connextion... 
			   if (($ligne!~/<description>Retrouvez l'ensemble des d/i) && ($ligne!~/<description>toute l'actualit.*au moment de la connexion/i) && ($ligne!~/<description>Lisez.*de l'article pour plus d'information./i)) {
				 # Traitement des zones textuelles contenues à l'intérieur des balises description.
				 if ($ligne =~/<description>([^<]+)<\/description>/){
						
						my$recup=$1;
						# Il faut résoudre les problèmes de codages
						if ($recup=~/^(.*)&lt;img width/) {$recup=$1};
						$recup=~s/&#38;#39;/'/g;
						$recup=~s/&#38;#34;/"/g;
						$recup=~s/&#232;/è/g;
						$recup=~s/&#233;/é/g;
						$recup=~s/&#234;/ê/g;
						$recup=~s/&amp;eacute;/é/g;
						$recup=~s/&amp;egrave;/è/g;
						$recup=~s/&amp;ecirc;/ê/g;
						$recup=~s/&amp;agrave;/à/g;
						$recup=~s/&amp;acirc;/â/g;
						$recup=~s/&amp;uuml;/ü/g;
									
					
				print "file : <$file> etiquetage n°$i\n";
				#Etiquetage
				open (FILE, ">tmpalaune.txt");
				print FILE $recup;
				close (FILE);
				open (name, ">tmpalaunefinal.xml");
				#entête de tmpalaunefinal.xml, le nom de chaque document traité sera ainsi indiqué sur la sortie.
				print name "<document>\n<name>$file</name>\n";
				system ("perl ./treetagger-win32/cmd/tokenise-fr.pl tmpalaune.txt|./treetagger-win32/bin/tree-tagger.exe -token -lemma -no-unknown ./treetagger-win32/lib/french.par > texeetiquete_alaune.txt");
				system ("perl ./treetagger-win32/cmd/treetagger2xml.pl texeetiquete_alaune.txt");
				system ("cat texeetiquete_alaune.txt.xml >> tmpalaunefinal.xml");
				#ouvrir tmpalaune.xml, le lire et concaténer chacun des lignes dans $DUMPFULL1
				open(FILEXML,"tmpalaunefinal.xml");
				while (my $tt=<FILEXML>) {
				    $DUMPFULL1.="$tt"; # on concatène le contenu de chaque ligne du fichier 
				    # temporaire étiqueté obtenu dans chaque boucle
				}
				$i++; # on incrémente le compteur
			
			    
			}
		    }
		}
        close (FILEINPUT);
		}
	}
    }
}
#----------------------------------------------
