import sys, os
#-------------------------------------------------------------------------------------------

#récupération du corpus
IG={}
indexGlobal = open("Lemmatisation/corpus.txt", "r")
for line in indexGlobal:
	line = line.split("\t")
	if line[0]!="":
		IG[line[0]] = int(line[1])
indexGlobal.close()

#récupération de la requete
requete = []
requete.append(sys.argv[1])
indexRequete = Lemmatisation("", requete)
indexRequete = indexRequete.lemmatisation()
#si besoin ajout des mots de la requete dans la variable du corpus (méthode du pauvre)
for line in indexRequete:
	if line not in IG:
		IG[line] = 1
#initialisation du dictionnaire de résultats
resultats = {}
#parcours des pages wikipédia crawlés et lemmatisés
for file in os.listdir("Lemmatisation/index"):
	#initialisation du dictionnaire index qui contiendra l'index du fichier
	index = {}
	#copie du corpus contenant la requête
	localIG = IG
	#lecture du fichier index
	fichier = open("Lemmatisation/index/"+file, "r")
#parcours des pages crawlées
for file in os.listdir("Scrapy/links"):
	if file not in os.listdir("Lemmatisation/index"):
		startTime = time.time()
		print(startTime)
		#ouverture du fichier
		fileobj=open("Scrapy/links/"+file,"r")
		#parser
		parser = ET.HTMLParser(recover=True)
		doc = ET.parse(fileobj, parser)
		fileobj.close()
		root = doc.getroot()
		#selection type xpath des textes des paragraphes
		texte = doc.xpath('//p//text()')
		#lemmatisation des textes
		lem =Lemmatisation("Scrapy/links/"+file, texte)
		lem.lemmatisation()
		#génération/amélioration du corpus
		IG = lem.IndexGlobal(IG)
		#selection xpath des textes de tout le body (navigation incluse)
		texte = doc.xpath('//body//text()')
		#lemmatisation
		lem =Lemmatisation("Scrapy/links/"+file, texte)
		index = lem.lemmatisation()
		#enregistrement de l'index généré
		fichierIndex = open("Lemmatisation/index/"+file, "w+")
		for line in index:
			fichierIndex.write(line+"	"+str(index[line])+"\n")
		fichierIndex.close()
		#affichage du temps d'exécution
		print(file, round(time.time()-startTime, 5), "secondes")