#/usr/bin/perl

# à lancer avec ces arguments : chemin rss vers le répertoire 2021, fichier sortie xml, fichier sortie txt


use utf8;
use strict;



my $chemin_rss = shift @ARGV;
my $fichier_xml = shift @ARGV;
my $fichier_txt = shift @ARGV;



open my $output_txt, ">:encoding(UTF-8)", $fichier_txt;
open my $output_xml, ">:encoding(UTF-8)", $fichier_xml;


my $header = "<?xml version =\"1.0\" encoding =\"utf-8\"?>\n<corpus>\n";
print $output_xml $header;

my %liste_titres;

&parcoursarborescencefichiers($chemin_rss);


print $output_xml "</corpus>\n";
close $output_txt;
close $output_xml;
exit;



# ------- Fonctions :

sub parcoursarborescencefichiers {
    my $path = shift(@_);
    opendir(DIR, $path);
    my @files = readdir(DIR);
    closedir(DIR);
    foreach my $file (@files) {
		next if $file =~ /^\.\.?$/;
		$file = $path."/".$file;
		if (-d $file) {
			&parcoursarborescencefichiers($file);
		}
		if (-f $file) {
			if ($file =~ /.+\.xml$/) {
				open my $input, "<:encoding(UTF-8)",$file;
				undef $/;
				my $ligne=<$input> ;
				close($input);
				while ($ligne=~/<item><title>(.+?)<\/title>.+?<description>(.+?)<\/description>/gs) {
					my ($titre, $description) = &nettoyage($1, $2);
					
					
					if( not exists $liste_titres{$titre} ) {
					   	$liste_titres{$titre} = '';
						print $output_txt "TITRE :\n$titre\nDESCRIPTION :\n$description\n\n";
						print $output_xml "<item><titre>$titre</titre><description>$description</description></item>\n";
					}
					
				}
			}
		}
    }
}


sub nettoyage {
	my $TIT = shift @_;
	my $DES = shift @_;
	$TIT =~ s/<!\[CDATA\[//;
	$TIT =~ s/\]\]>//;
	$DES =~ s/<!\[CDATA\[//;
	$DES =~ s/\]\]>//;
	return ($TIT, $DES);
}
