
#!/usr/bin/perl
use XML::RSS;
#use Unicode::String qw(utf8);
##################################################
my $file="$ARGV[0]"; #flux d'entree
my $rubrique = "$ARGV[1]";
open (OUT2, ">:encoding(utf-8)", "sortie_xml.xml");
print OUT2 "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
print OUT2 "<FILE>\n";
close (OUT2);
####################################################
$file=~ s/[\/]$//;
&parcoursfichier($file);
print OUT2 "</FILE>\n";
close OUT2;
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 $fichier (@contenuRep) {
        next if $fichier =~ /^\.\.?$/; #on ne traite pas les fichiers commencent par .,..
        next if $file =~ /^\.\.?$/; #passer au prochain si
        next if $file =~ /^\._/;
        next if $file =~ /^fil/;
        $fichier = $path."/".$fichier; # 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 $fichier) {
            #print "<NOUVEAU REPERTOIRE> ==> ",$fichier,"\n";
            &parcoursfichier($fichier);    #recurse!
            #print "<FIN REPERTOIRE> ==> ",$fichier,"\n";
        }
        if (-f $fichier) {
        	if ($fichier=~/$rubrique.*.xml$/){
        	#print $fichier, "\n";
            #open (IN, $fichier);
        	open (OUT1, ">>:encoding(utf-8)", "sortie_txt.txt");
            open (OUT2, ">>:encoding(utf-8)", "sortie_xml.xml");
            print OUT2 "<file>\n";
            print OUT2 "<titre>$fichier</titre>\n";
#-----------------------------------------------------------
            my $ficher="$fichier";
            my $rss=new XML::RSS;

#-----------------------------------------------------------
            $rss->parsefile($fichier);
            my $nombredechampdescription=0;
            foreach my $item (@{$rss->{'items'}}) {
                $nombredechampdescription++;
                my $title=$item->{'title'};
                my $description=$item->{'description'};
                $titre=&nettoyage($title);
                $description=&nettoyage($description);
                print OUT1 "Titre : $titre \n";
                print OUT1 "Description : $description \n";
                my ($titretag,$descriptiontag) = &etiquetage($titre,$description);
                print OUT2 "<item><title>$titretag</title><description>$descriptiontag</description></item>\n";

            }
        }
            print OUT2 "</file>\n";
            close (OUT1);
            close (OUT2);
            close (IN);
    	}
    }
}
#####################################################################################
sub nettoyage {
    my $description=shift;
    $description =~ s/&lt;/</g;
    $description =~ s/&gt;/>/g;
    $description =~ s/<a href[^>]+>//g;
    $description =~ s/<img[^>]+>//g;
    $description =~ s/<\/a>//g;
    $description=~ s/&#38;#39;/'/g;
    $description =~ s/&#38;#34;/"/g;
    $description =~ s/<[^>]+>//g;
    $description =~s/&#39;/\'/g;
    return $description
}

