#/usr/bin/perl
use XML::RSS;
my $rep="$ARGV[0]";
my $rss=new XML::RSS;
my $DUMPFULL1="";
$rep=~ s/[\/]$//;
my %tableaudestextes=();
#----------------------------------------
my $output1="sortiesalemXMLRSS.txt";
if (!open (FILEOUT,">$output1")) { die "Pb a l'ouverture du fichier $output1"};
#----------------------------------------
&parcoursarborescencefichiers($rep);    
#----------------------------------------
print FILEOUT "$DUMPFULL1";
close(FILEOUT);
exit;
#----------------------------------------------
sub parcoursarborescencefichiers { # on entre dans le sous programme
    my $path = shift(@_); # on met dans la variable $path le contenu de la variable mise en argument
    opendir(DIR, $path) or die "can't open $path: $!\n"; # opendir : ouvre un rep - si on arrive pas : le pgm s'arrete et on envoie un message d'erreur
    my @files = readdir(DIR); # on lit le contenu du répertoire et on renvoie une liste qu'on stocke dans @files
    closedir(DIR);
    foreach my $file (@files) { # pour chaque ressource dans @files,on crèe $files
    next if $file =~ /^\.\.?$/; # on passe au suivant si on trouve . ou .. car on risque une boucle infinie
    $file = $path."/".$file; # on réécrit tout le chemin du fichier - le point permet la concaténation
    if (-d $file) { # on entre dans cette boucle si il y a dans $file un répertoire (-d vérifie que l'argument est un répertoire)
		&parcoursarborescencefichiers($file);    #recurse!
    }
    if (-f $file) { # on entre dans cette boucle si il y a dans $file un fichier  (-f vérifie que l'argument est un fichier)
    if ($file=~/\.xml/){ # parcourt toute l'arborescence pour ne garder que les fichiers .xml
        next if(($file=~/fil.+/) || ($file=~/env_sciences.xml/)); #la rubrique env_sciences bloque et elle existe déjà sous la forme de code.
	open(FILEIN,$file); # on ouvre le fichier qu'on va lire
	print $file; #$file contient le chemin
    printf "$file\n"; #  on voit si ça travaille
	while ($ligne = <FILEIN>){ # tant qu'il y a qqch à lire, on rentre dans la boucle
        $rss->parsefile($file);
		print $file;
		my $nombredechampdescription=0;
		foreach my $item (@{$rss->{'items'}}) {
		$nombredechampdescription++;
		my $balise=$item->{'description'};
			next if ($balise=~/Goncourt/);
             if (($balise=~/crise/) || ($balise=~/subprime/) || ($balise=~/banque/) || ($balise=~/bancaire/) || ($balise=~/FMI/) || ($balise=~/financ/) || ($balise=~/récession/) || ($balise=~/économi/) || ($balise=~/monétaire/) || ($balise=~/liquidité/) || ($balise=~/croissance/) || ($balise=~/bours/) || ($balise=~/conjoncture/) || ($balise=~/capital[^e]/) || ($balise=~/capitali/)|| ($balise=~/prix/) ||  ($balise=~/marché/) || ($balise=~/crédit/) || ($balise=~/renfloue/)  || ($balise=~/inflation/)   || ($balise=~/taux/) || ($balise=~/consomm/) || ($balise=~/délocalis/) || ($balise=~/immobilier/)) { 
        	 if (($balise!~/Retrouvez *l.*ensemble *des/) && ($balise!~/Lisez *l.*int.*gralit.* *de *l.*article *pour *plus *d.*information./) && ($balise!~/Toute *l.*actualit.* *au *moment *de *la *connexion/)) {
				my $propre=$balise;# on prend le motif et on le met dans $propre
				$propre=~s/<img.*//; #si on met l'entité html du < en utilsant la bu xml::rss çà ne marche pas, car cette bu l'encode déjà en une vraie entité.
				if (exists($tableaudestextes{$propre})) { # on mémorise $propre 
				     $tableaudestextes{$propre}++; # on incrémente la valeur de $propre FACULTATIF (pour faire plaisir à M. FLEURY)
				} # mais on ne la réimprime pas afin de supprimer les doublons si ils existent déjà
				else { # on entre dans cette boucle si ça n'existe pas encore
				$file=~s/19-00-00\///g;# nettoie
				$file=~s/19-00-01\///g;# nettoie
				@infos=split (/\//, $file);
				$annee =@infos[0];
				$mois =@infos[1];
				$jour =@infos[2];
				$rubrique =@infos[3];
				#nettoyage pour avoir les noms des rubriques
				$rubrique=~s/0,2-3208,1-0,0.xml/A_la_une/g;#nettoie
				$rubrique=~s/0,2-3210,1-0,0.xml/International/g;# nettoie
				$rubrique=~s/0,2-3214,1-0,0.xml/Europe/g;# nettoie
				$rubrique=~s/0,2-3224,1-0,0.xml/Société/g;# nettoie
				$rubrique=~s/0,2-3232,1-0,0.xml/Opinion/g;# nettoie
				$rubrique=~s/0,2-3234,1-0,0.xml/Economie/g;# nettoie
				$rubrique=~s/0,2-3236,1-0,0.xml/Médias/g;# nettoie
				$rubrique=~s/0,2-3238,1-0,0.xml/Rendez_vous/g;# nettoie
				$rubrique=~s/0,2-3242,1-0,0.xml/Sports/g;# nettoie
				$rubrique=~s/0,2-3244,1-0,0.xml/Environnement_et_Sciences/g;# nettoie
				$rubrique=~s/0,2-3246,1-0,0.xml/Culture/g;# nettoie
				$rubrique=~s/0,2-3260,1-0,0.xml/Livres/g;# nettoie
				$rubrique=~s/0,2-3404,1-0,0.xml/Examens/g;# nettoie
				$rubrique=~s/0,2-3476,1-0,0.xml/Cinéma/g;# nettoie
				$rubrique=~s/0,2-3546,1-0,0.xml/Voyages/g;# nettoie
				$rubrique=~s/0,2-651865,1-0,0.xml/Technologies/g;# nettoie
				$rubrique=~s/0,57-0,64-823353,0.xml/Politique/g;# nettoie
				$rubrique=~s/0,57-0,64-987718,0.xml/Fil_municipales_et_cantonales_2008/g;# nettoie				
				$DUMPFULL1.="\t<an=$annee>\n\t\t<mois=$mois>\n\t\t\t<jour=$jour>\n\t\t\t\t<rubrique=$rubrique>\n\t\t\t\t\t$propre\n";  # on concatène le contenu de $ propre obtenu dans chaque boucle
			    $i++; # on incrémente le compteur
				$tableaudestextes{$propre}++; 
	} # fin de else
	} # fin de if
    } # fin de if
	} # fin de while	
    close(FILEIN); # on ferme le fichier en lecture
    }
    }
	}
	}
	}
#----------------------------------------------

