use utf8;
#/usr/bin/perl
#on sauvegarde deux premiers arguments d'entree dans deux variables
my $entree = "$ARGV[0]"; 
my $rubrique = "$ARGV[1]";
#il faut s'assurer que le nom du repertoire ne fini pas par /
$entree=~ s/[\/]$//;
#on cree un variable pour le flux de sortie
#si le fichier sorti xml ne peut pas etre ouvert, le programmes d'arrete et renvoie un message d'erreur
my $sortie1="SORTIE.xml";
if (!open (SORTIE, ">$sortie1")) { die "probleme de l'ouverture le fichier $sortie1"};
print SORTIE "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
print SORTIE "<PARCOURS>\n";
print SORTIE "<MESSAGE>flux de sortie</MESSAGE>\n";
print SORTIE "</PARCOURS>\n";
close (SORTIE);
################################LANCEMENT DU SOUS-PROGRAMME################################
# 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 
&parcoursfichier($entree);
exit;
sub parcoursfichier{
	my $path = shift(@_);#on enleve le premier argument qu'on lit, parce que c'est un dossier mais pas fichier qu'on veut
	opendir(DIR, $path) or die "pb d'ouvrire $path: $!\n";# le message d'erreur va enregistrer automatiquemt dans $!
	my @contenuRep = readdir(DIR); #renvoie la liste du contenu dna sle 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 
		#si $file est un dossier, on refaire le souprogramme et va tester le contenu de $file
		if (-d $file) {
			print "<NOUVEAU REPERTOIRE> ==> ",$file,"\n";
			&parcoursfichier($file);	#recurse!
			print "<FIN REPERTOIRE> ==> ",$file,"\n";
		}
		#if $file est un fichier
		if (-f $file) {
			#       TRAITEMENT realiser sur chaque fichier
			#       Inserer ici votre code (le filtreur)
			if ($file =~/$rubrique.+\.txt/) {
			print "<",$i++,"> ==> ",$file,"\n";
			$codage = "utf-8";
			open (FIC, "<:encoding($codage)", $file); 
			open (OUT, ">>:encoding($codage)", "$rubrique.txt");
			
			#ramener tout le flux textuel de FIC sur une seule ligne
			my $texte="";
		    while ($ligne=<FIC>){
    			&nettoyage($ligne);
    			chomp $ligne;
    			$texte = $texte . $ligne;
    			$texte=~s/#container_.+(window)//gm;
    			$texte=~s/var\sasync.+(window)//gm;
    			$texte=~s/\.open.+(window)//gm;
    			$texte=~s/\.Highcharts.+(window)//gm;
			}
			close FIC;
			$texte =~ s/^\s*$/\n/mg;
			
        		#print "$profondeur\n";
				#$profondeur=~s/&lt;.+?&gt;//g;
        		if (!(exists $dico{$texte})) {
					$dico{$texte} = 1;
					print OUT "$texte\n";
					 }
        		}
			}
			close OUT;
			
			}
		}
sub nettoyage{
		my $ligne=shift(@_);
    	next if $ligne=~/<.+>/;
    	next if $ligne=~/Le Monde.*$/i;    	
    	next if $ligne=~/Aller sur la page de ce journaliste/i;
    	next if $ligne=~/.+\d\dh\d\d$/i;
    	next if $ligne=~/.*\|.*/i;
    	next if $ligne=~/^Chef adjoint au service International.*/i;
    	next if $ligne=~/^Suivre/i;
    	next if $ligne=~/^Suivre ce journaliste sur.*/i;
    	next if $ligne=~/.*http:\/\/.*/i;
    	next if $ligne=~/require.+twitter\/widgets.+/i;
    	next if $linge=~/Journaliste au Monde/i;
    	next if $ligne=~/Lire aussi.*/i;
    	next if $ligne=~/\/\/sas_manager.render.*/i;
    	next if $ligne=~/ADVERT_AD/i;
    	next if $ligne=~/.*require.+function.*/i;
    	next if $ligne=~/advertLongform.moveAdvert/i;
    	next if $ligne=~/articleBody/i;
    	next if $ligne=~/^\W＋$/i;
    	next if $ligne=~/^Compte rendu/i;
    	next if $ligne=~/datetime=/i;
    	next if $ligne=~/http:\/\//i;
		next if $ligne=~/Directeur du "Monde"/i;
		next if $ligne=~/dateModified/i;
		next if $ligne=~/Article sélectionné dans/i;
		next if $ligne=~/la matinale du/i;
		next if $ligne=~/Découvrir l’application/i;
		next if $ligne=~/data-ui=/i;
		next if $ligne=~/data-module=/i;
		next if $ligne=~/data-wrapper=/i;
		next if $ligne=~/data-interval=/i;
		next if $ligne=~/data-is-atom/i;
		next if $ligne=~/tabindex=/i;
		next if $ligne=~/data-slide-title=/i;
    	next if $ligne=~/data-slide-description=/i;
    	next if $ligne=~/data-slide-item-lie=""/i;
    	next if $ligne=~/^Précedent$/i;
    	next if $ligne=~/^Suivant$/i;
    	next if $ligne=~/^\d\/\d/i;
    	next if $ligne=~/Accéder au portfolio/i;
    	next if $ligne=~/^require/i;
    	next if $ligne=~/dateModified/i;	
}