# Pour exécuter le script : perl parcours-arborescence-fichiers-ORIGINE.pl 2015 3208,

# Sort un fichier texte et un fichier xml contenant les titres et les descriptions

# Attention il prend en compte des fichiers non désirés (qui contiennent 3208), il faut donc mettre "3208," au lieu de "3208"


#/usr/bin/perl

my $rep="$ARGV[0]";								
my $rubrique = "$ARGV[1]";

my %dico;

$rep=~ s/[\/]$//;

my $output1="$rubrique.xml";
if (!open (FILEOUT,">$output1")) { die "Pb a l'ouverture du fichier $output1"};

print FILEOUT "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
print FILEOUT "<PARCOURS>\n";
print FILEOUT "<NOM>Justine</NOM>\n";
close (FILEOUT);

#----------------------------------------
&parcoursarborescencefichiers($rep);	 									
#----------------------------------------

open (FILEOUT,">>:encoding(utf-8)", $output1);
print FILEOUT "</PARCOURS>\n";
close(FILEOUT);
exit;


#------------------SOUS-PG / PROCEDURE----------------------------
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) {	

			print "<NOUVEAU REPERTOIRE> ==> ",$file,"\n";
			&parcoursarborescencefichiers($file);	
			print "<FIN REPERTOIRE> ==> ",$file,"\n";
		}

		if (-f $file) {		

			if ($file =~ /$rubrique.+\.xml$/) {
				print "<",$i++,"> ==> ",$file,"\n";

					$codage = "UTF-8";

					open (FIC, "<:encoding(utf-8)", $file);			
					open (OUT, ">>:encoding($codage)", "$rubrique.txt");
					open (OUT2, ">>:encoding($codage)", "$rubrique.xml");

					my $texte="";		

					while (my $ligne = <FIC>) {	
  
						#chomp $ligne;
						#$ligne =~ s/\r//g;
						$ligne =~ s/\n//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 OUT "$description\n\n";

							print OUT2 "<item><titre>$titre</titre><description>$description</description></item>\n";
						}
					}

					close OUT;
					close OUT2;
			}
		}
    }
}
#-----------------------------------------------------------------
