#!/usr/bin/python3

import os 
import sys 
import re 

#MODE D'EMPLOI SCRIPT : python3 parcours-arbo.py arborescence/2021 numRubrique nomFichierXml nomFichierTxt
def nettoyage(texte):
          texte_net=re.sub("<!\[CDATA\[(.*)\]\]>", "\\1", texte)
          return texte_net


rep=sys.argv[1]
rubrique=sys.argv[2]
fichier_xml=sys.argv[3]
fichier_txt = sys.argv[4]


dossier_sortie = './PYTHON'

if rubrique == '3236':
    os.makedirs(f'{dossier_sortie}/ACTU MEDIAS')
    dossier_sortie += '/ACTU MEDIAS'
elif rubrique == '3476':
    os.makedirs(f'{dossier_sortie}/CINEMA')
    dossier_sortie += '/CINEMA'
elif rubrique == '3208':
    os.makedirs(f'{dossier_sortie}/UNES')
    dossier_sortie += '/UNES'
elif rubrique == '3260':
    os.makedirs(f'{dossier_sortie}/LIVRES')
    dossier_sortie += '/LIVRES'
elif rubrique == '3246':
    os.makedirs(f'{dossier_sortie}/CULTURE')
    dossier_sortie += '/CULTURE'
elif rubrique == '823353':
    os.makedirs(f'{dossier_sortie}/POLITIQUE')
    dossier_sortie += '/POLITIQUE'
elif rubrique == '3242':
    os.makedirs(f'{dossier_sortie}/SPORT')
    dossier_sortie += '/SPORT'
elif rubrique == '3244':
    os.makedirs(f'{dossier_sortie}/PLANETE')
    dossier_sortie += '/PLANETE'
elif rubrique == '3234':
    os.makedirs(f'{dossier_sortie}/ECONOMIE')
    dossier_sortie += '/ECONOMIE'
elif rubrique == '3232':
    os.makedirs(f'{dossier_sortie}/IDEES')
    dossier_sortie += '/IDEES'
elif rubrique == '3224':
    os.makedirs(f'{dossier_sortie}/SOCIETE')
    dossier_sortie += '/SOCIETE'
elif rubrique == '3214':
    os.makedirs(f'{dossier_sortie}/EUROPE')
    dossier_sortie += '/EUROPE'
elif rubrique == '3210':
    os.makedirs(f'{dossier_sortie}/INTERNATIONAL')
    dossier_sortie += '/INTERNATIONAL'
elif rubrique == '651865':
    os.makedirs(f'{dossier_sortie}/TECHNOLOGIES')
    dossier_sortie += '/TECHNOLOGIES'

output_xml=open(f'{dossier_sortie}/{fichier_xml}',"w",encoding="utf-8")
output_txt=open(f'{dossier_sortie}/{fichier_txt}',"w",encoding="utf-8")
output_xml.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n")
root=os.path.abspath(os.path.join(os.getcwd(), os.pardir))
root = os.path.abspath(os.path.join(root,os.pardir))

def parcoursArborescence(repertoire,rootz=root):
    chemin=f'{rootz}/{repertoire}'
    lectureRepertoire=os.listdir(chemin)
    for element in lectureRepertoire:
        element_=chemin+"/"+element
        if os.path.isdir(element_)==True:
            print(f"On entre dans le dossier {element}")
            parcoursArborescence(element,chemin)
            print(f"On sort du dossier {element}")
        elif os.path.isfile(element_)==True:
            extract_un_fil(element_)
            
def extract_un_fil(bidule):
    regex=re.compile("<item><title>(.+?)<\/title>.+?<description>(.+?)<\/description>")
    trouvRubrique=re.findall(f"{rubrique}.+?\.xml$",bidule)
    if trouvRubrique:
        fichier=open(bidule,"r",encoding="utf-8")
        lignes=fichier.readlines()
        texte="".join(lignes)
        texte=texte.replace(u"\xa0", u" ")
        for m in re.finditer(regex,texte):
            titre_net=nettoyage(m.group(1))
            description_nette=nettoyage(m.group(2))
            output_xml.write(f"<title>{titre_net}</title>\n")
            output_txt.write(f'TITRE : {titre_net}\n')
            output_xml.write(f"<description>{description_nette}</description>\n\n")
            output_txt.write(f'DESCRIPTION : {description_nette}\n')
            fichier.close()
               
print(rep)       
parcoursArborescence(rep)


    