#/usr/bin/perl
my %dico;
my $entree = "$ARGV[0]";
my $rubrique = "$ARGV[1]";
# on s'assure que le nom du repertoire ne se termine pas par un "/"
$rep=~ s/[\/]$//;
# on initialise une variable contenant le flux de sortie 
#my $DUMPFULL1="";
#----------------------------------------
# si le repertoire ne peut pas être ouvert, le programme arrête et renvoie le message d'erreur 
#my $sortie1="SORTIE.xml";
#if (!open (SORTIE,">$sortie1")) { die "Pb a l'ouverture du fichier $sortie1"};
#print SORTIE "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
#print SORTIE "<PARCOURS>\n";
#print SORTIE "<NOM>Votre nom</NOM>\n";
#close (SORTIE);
#----------------------------------------
&parcoursarborescencefichiers($entree);	# le lancement d'une procedure du sous-programme en perl. on lance la recursion.... et elle se terminera apres examen de toute l'arborescence
# la définition du sous-programme : sud nomduprogramme {le code}
#des nom des arguments passés dans la procédure est sauvegarde @_
# la procédure est comme la fonction du python 
#----------------------------------------
#open (FILEOUT, ">>:encoding(utf-8)", $output1);
#print FILEOUT "<FILTRAGE>".$DUMPFULL1."</FILTRAGE>\n";
#print FILEOUT "</PARCOURS>\n";
#close(FILEOUT);
exit;
#----------------------------------------------
sub parcoursarborescencefichiers {
    my $path = shift(@_);
    opendir(DIR, $path) or die "can't open $path: $!\n"; # opendir : lire un répertoire
    my @contenuRep = readdir(DIR); #renvoie la liste du contenu dans le répertoire
    closedir(DIR);
    foreach my $file (@contenuRep) {
		next if $file =~ /^\.\.?$/; #on ne traite pas les fichiers commencent par .,..
		$file = $path."/".$file; # reconstruir le chemin relatif ex. 2016/01 
		if (-d $file) {
			print "<NOUVEAU REPERTOIRE> ==> ",$file,"\n";
			&parcoursarborescencefichiers($file);	#recurse!
			print "<FIN REPERTOIRE> ==> ",$file,"\n";
		}
		if (-f $file) {
			#       TRAITEMENT � r�aliser sur chaque fichier
			#       Ins�rer ici votre code (le filtreur)
			if ($file =~/$rubrique.+\.xml/){
			print "<",$i++,"> ==> ",$file,"\n";
			#my %dico; deplacer au début du programme
			$codage = "utf8";
			open (FIC, "<:encoding($codage)", $file);  #moderne open my $in,"<",$ARGV[0]
			open (OUT, ">>:encoding(iso-8859-1)", "$rubrique.txt");
			open (OUT2, ">>:encoding($codage)", "$rubrique.xml");
			#ramener tout le flux textuel de FIC sur une seule ligne
			my $texte="";
		    while (my $ligne = <FIC>){
		    chomp $ligne;
    		$ligne =~ s/\r//g;
    		$texte = $texte . $ligne;
			}
			close FIC;
			$texte =~ s/>\s+</></g;
			while ($texte =~m/<item><title>([^<]+?)<\/title><link>(?:[^<]+?)<\/link><description>([^<]+?)<\/description>/g) {
        		my $titre=$1;
        		my $description=$2;
        		$titre=~s/&lt;.+?&gt;//g;
        		$titre.=".";
        		$titre=~s/\?\.$/\?/;
        		$description=~s/&lt;.+?&gt;//g;
        		if (!(exists $dico{$titre})) {
					$dico{$titre} = 1;
					print OUT "$titre\n";
					print OUT2 "<item><title>$titre</title><description>$description</description></item>\n";
					print OUT "$description\n\n";     
        		}
			}
			close OUT;
			close OUT2;
			}
		}
	}
}
