#!/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 = "\n\n";
print $xml_output $header; # Ecrire de balise header dans le XML
&parcoursarborescencefichiers($rep);
print $xml_output ""; # 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=~/- (.+?)<\/title>.+?(.+?)<\/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 "
- \n$clean_title\n$clean_description\n
\n";
}
}
}
}
}
sub clean { # Pour nettoyer les titres et descriptions
my @clean_table=();
foreach my $var (@_) {
$var=~s///;
push @clean_table, $var;
}
return @clean_table
}