#!/usr/bin/perl
binmode(STDOUT, ":utf8"); # Encodage pour la sortie
#-----------------------------------------------------------
my $rep="$ARGV[0]"; # RSS 2021: premier argument
my $rubrique="$ARGV[1]"; # La rubrique : dans ce cas est le cinema dont le numéro est 3476
$rep=~ s/[\/]$//; # Verifcation du nom de repertoire "/"

open my $txt_output, ">:encoding(UTF-8)", "corpusTitreDesc.txt";
open my $xml_output, ">:encoding(UTF-8)", "preTitreDesc.xml";
#----------------------------------------
my $header = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<corpus>\n"; 
print $xml_output $header; # Ecrire de balise header dans le XML
&parcoursarborescencefichiers($rep);
print $xml_output "</corpus>"; # Fermeture du balise corpus
close $txt_output; # Fermeture des sorites
close $xml_output;
exit;

#---------Sour-programme pour parcourir l'arborescence RSS
sub parcoursarborescencefichiers {
    my $path = shift(@_); # RSS 2021
    opendir(DIR, $path) or die "can't open $path: $!\n"; # Ouverture et lire le RSS
    my @files = readdir(DIR);
    closedir(DIR); # Fermeture de RSS
    foreach my $file (@files) {
	next if $file =~ /^\.\.?$/;
	$file = $path."/".$file; 
	if (-d $file) {
	    &parcoursarborescencefichiers($file);
	}

	if (-f $file) { # Si c'est un fichier, continue...
        if ($file =~ /$rubrique.+\.xml$/) {
            open my $input, "<:encoding(UTF-8)", $file;
            undef $/; # Suppremer la saut ligne par default
            my $line=<$input>; # Lire les fichiers ligne par lingn et le fermer
            close($input); 

            while ($line=~/<item><title>(.+?)<\/title>.+?<description>(.+?)<\/description>/gs) { 
                my $title = $1;  # Assigner les variable pour titre et description
                my $description=$2; 
                my ($clean_title, $clean_description)=&clean($title, $description); # Nettoyer les titres et descriptions
                print $txt_output "TITRE : $clean_title \n DESCRIPTION : $clean_description \n#---------------------#\n";
                print $xml_output "<item>\n<titre>$clean_title</titre>\n<description>$clean_description</description>\n</item>\n";
            }
        }
	}
    }
}
sub clean { # Pour nettoyer les titres et descriptions
    my @clean_table=();
    foreach my $var (@_) {
        $var=~s/<!\[CDATA\[//;
        $var=~s/\]\]>//;
        push @clean_table, $var;
    }
    return @clean_table
}