From 285057703f7afa15f073cbf8646f1023dc25e525 Mon Sep 17 00:00:00 2001
From: Enzo Simonnet <enzosim@laposte.net>
Date: Wed, 23 Nov 2022 08:49:39 +0000
Subject: [PATCH] Replace wikstraktor.py

---
 wikstraktor.py | 33 +++++++++++++++++++++++----------
 1 file changed, 23 insertions(+), 10 deletions(-)

diff --git a/wikstraktor.py b/wikstraktor.py
index 4602131..41d0cbf 100755
--- a/wikstraktor.py
+++ b/wikstraktor.py
@@ -98,7 +98,7 @@ class Example:
 		if self.source != None:
 			res["source"] = self.source
 		if self.url != None:
-			res["url"] = url
+			res["url"] = self.url
 		return res
 
 class Sense:
@@ -255,6 +255,7 @@ class ParserContext:
 				self.create_entry()
 
 	def create_entry(self):
+		#Dans le dictionnaire de keys, il n'y a jamais de senses ou de POS
 		res = Entry(self.lemma)
 		for l in self.context:
 			if "pro" in l.keys():
@@ -343,14 +344,19 @@ class Wikstraktor:
 					while self.parserContext.get_level() > s.level:
 						self.parserContext.pop()
 					self.parserContext.set_top_wiki(s)
-				if s.title == self.constants['pro']:
+				if self.wtp.parse(s.title).templates == []:
+					stitle = s.title
+				else:
+					stitle = self.wtp.parse(s.title).templates[0].arguments[0].value
+				if stitle == self.constants['pro']:
 					self.parserContext.set_top_entry_info('pro', self.process_pronunciation(self.wtp.parse(s.contents)))
-				elif self.constants['ety'] in s.title:
+				elif self.constants['ety'] in stitle:
 					self.parserContext.set_top_entry_info('ety', self.process_etymology(self.wtp.parse(s.contents)))
-				elif s.title in self.constants['POS'].keys():
-					pos = self.constants['POS'][s.title]
-					self.parserContext.set_top_entry_info('POS', pos, False)
-					self.parserContext.set_top_entry_info('senses', self.process_senses(entry, pos+str(len(self.parserContext.entries)), self.wtp.parse(s.contents)))
+				elif stitle in self.constants['POS'].keys():
+					if s.title in self.constants['POS'].keys():
+						pos = self.constants['POS'][stitle]
+						self.parserContext.set_top_entry_info('POS', pos, False)
+						self.parserContext.set_top_entry_info('senses', self.process_senses(entry, pos+str(len(self.parserContext.entries)), self.wtp.parse(s.contents)))
 		res = len(self.parserContext.entries)
 		if res > 0:
 			for e in self.parserContext.entries:
@@ -374,12 +380,19 @@ class Wikstraktor:
 
 
 if __name__ == "__main__":
-	e = Wikstraktor.get_instance('en', "en")
+	#e = Wikstraktor.get_instance('en', "en")
+	f = Wikstraktor.get_instance('fr', 'en')
 	# print(e.get_file_url("File:LL-Q1860 (eng)-Nattes à chat----parent.wav"))
 	# print(e.get_file_url("File:LL-Q1860 (eng)-Nattes à chat-parent.wav"))
-	e.fetch("test")
+	#e.fetch("water")
+	f.fetch("water")
 	# print(e.fetch("test"), "entries added")
-	print(e)
+	#print(e)
+	file_path = 'test.json'
+	fichier  = open(file_path, "w")
+	#fichier.write(str(f))
+	fichier.write(str(f))
+	fichier.close()
 	# site = pywikibot.Site(f'wiktionary:en')
 	# p = pywikibot.FilePage(site, "File:LL-Q1860 (eng)-Nattes à chat----parent.wav")
 	# print(p)
-- 
GitLab