#!/usr/bin/perl
use XML::RSS;
use utf8;

my $rss = new XML::RSS;

my $chemin= $ARGV[0];
$chemin =~ s/[\/]$//;

my $contenttxt = "";
my $contentxml = "";
my $nbArticles = 0;
my $nbfic = 0;
my %dicoTitres = ();
my %dicoDesc = ();

my %dictionnairedesrubriques=();
my %dictionnairedesItems = (); #pour éviter les doublons

binmode STDOUT, ":UTF-8"; 

my $sortietxt = "sortie_txt.txt";
my $sortiexml = "sortie_xml.xml";

if (!open (SORTIETXT, ">:encoding(UTF-8)", "$sortietxt")) { die "Pb ouverture TXT !"; }
if (!open (SORTIEXML, ">:encoding(UTF-8)", "$sortiexml")) { die "Pb ouverture XML !";}


&parc_recurse($chemin);


print SORTIEXML "<?xml version=\"1.0\" encoding = \"UTF-8\""."\n";
print SORTIEXML "<PARCOURS>\n";
print SORTIEXML "<NOM>keke</NOM>\n";
print SORTIEXML "<FILTRAGE>\n".$contentxml."</FILTRAGE>"."\n";
print SORTIEXML "</PARCOURS>";
close (SORTIEXML);

print SORTIETXT $contenttxt;
close(SORTIETXT);

exit;



sub parc_recurse{
    my $dossier = shift(@_);
    #print $dossier,"\n";
    opendir(DOSSIER,$dossier) or die " ^^ keke can't open $dossier: $!\n";
    my @files = readdir(DOSSIER); 
    closedir(DOSSIER);
    my $titre = "";
    my $description = "";
    foreach my $file (@files) {
	next if ($file=~/^\.\.?$/);
	$file=$dossier."/".$file;
	if (-d $file){
	    &parc_recurse($file);
	}
	if (-f $file){
	    if ($file=~/\.xml$/){
		#print $nbfic++, "\n";
		$rss->parsefile($file);
		#print $rss->{items}[0];
		foreach my $item (@{$rss->{items}}){
		  $nbArticles++;
		  $contentxml .= "<article numero=\"$nbArticles\">\n";	 
	      $contenttxt .= "Article numéro : ". $nbArticles. "\n";
		  my $titre = $item->{title};
		  $titre = &nettoieText($titre);
		  $contentxml .= "<titre>$titre</titre>\n";
		  $contenttxt .= "Titre : ". $titre. "\n";
		  my $description = $item->{description};
		  $description = &nettoieText($description);
		  $contentxml .= "<description>$description</description>"."\n"."\n";
		  $contenttxt .= "Description : ". $description ."\n"."\n";
		  

		}
	}		

}}}


sub nettoieText {
    my $texte=shift;
    $texte =~ s/&lt;/</g;
    $texte =~ s/&gt;/>/g;
    $texte =~ s/<a href[^>]+>//g;
    $texte =~ s/<img[^>]+>//g;
    $texte =~ s/<\/a>//g;
    $texte =~ s/&#38;#39;/'/g;
    $texte =~ s/&#38;#34;/"/g;
    $texte =~ s/<[^>]+>//g;
    $texte =~ s/&#233;/é/g;
    $texte =~ s/&#234;/ê/g;
    return $texte;
}



sub etiquetageavectreetagger {
    my ($titre,$texte)=@_;
    #----- le titre
    my $codage="utf-8";
    my $tmptag="./texteaetiqueter.txt";
    open (TMPFILE,">:encoding(utf-8)", $tmptag);
    #print $titre."coucou titre2 !!";
    print TMPFILE $titre,"\n";
    close(TMPFILE);
    #tagging du titre
    system("cat $tmptag |perl /Users/kevind89/Documents/Cours2013-2014/Projet/Cours26032014/TreeTagger/cmd/tokenize.pl | /Users/kevind89/Documents/Cours2013-2014/Projet/Cours26032014/TreeTagger/bin/tree-tagger /Users/kevind89/Documents/Cours2013-2014/Projet/Cours26032014/TreeTagger/lib/french-utf8.par -lemma -token  > treetagger.txt");
    system("perl /Users/kevind89/Documents/Cours2013-2014/Projet/Cours26032014/TreeTagger/cmd/treetagger2xml-utf8.pl treetagger.txt $codage ");
    # lecture du resultat tagué en xml :
    open(OUT,"<:encoding(utf-8)","treetagger.txt.xml"); #fichier créé automatique par treetagger2xml
    my $firstline=<OUT>; #passe la première ligne inutile
    my $titreetiquete="";
    while (my $l=<OUT>) {
		$titreetiquete.=$l;
    }
    close(OUT);
    
    #----- le résumé
    open (TMPFILE,">:encoding(utf-8)", $tmptag);
    print TMPFILE $texte,"\n";
    close(TMPFILE);
    system("cat $tmptag | perl /Users/kevind89/Documents/Cours2013-2014/Projet/Cours26032014/TreeTagger/cmd/tokenize.pl | /Users/kevind89/Documents/Cours2013-2014/Projet/Cours26032014/TreeTagger/bin/tree-tagger /Users/kevind89/Documents/Cours2013-2014/Projet/Cours26032014/TreeTagger/lib/french-utf8.par -lemma -token  > treetagger.txt");
    system("perl /Users/kevind89/Documents/Cours2013-2014/Projet/Cours26032014/TreeTagger/cmd/treetagger2xml-utf8.pl treetagger.txt $codage");
    # lecture du resultat tagué en xml :
    open(OUT,"<:encoding(utf-8)","treetagger.txt.xml");  #problème sur l'endroit du tagging format xml !
    my $firstline=<OUT>;
    my $texteetiquete="";
    while (my $l=<OUT>) {
		$texteetiquete.=$l;
    }
    close(OUT);
    # on renvoie les resultats :
    return ($titreetiquete,$texteetiquete);
}
