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