diff --git a/wikstraktor.py b/wikstraktor.py index 08abbbcac3029f7f5c0af05da85f71e257ef950c..b9780d8e58b3fb8ac2eea8b5a244c75a626375fd 100755 --- a/wikstraktor.py +++ b/wikstraktor.py @@ -394,23 +394,42 @@ class Wikstraktor: pass#in subclass def __str__(self): + return self.export() + + def export(self, ascii=False, compact=False): res = [] for e in self.entries: res.append(e.serializable()) - return json.dumps(res, ensure_ascii=False, indent=2) + if compact: + return json.dumps(res, ensure_ascii=ascii) + else: + return json.dumps(res, ensure_ascii=ascii, indent=4) if __name__ == "__main__": import argparse - parser = argparse.ArgumentParser(description="Interroger un wiktionnaire") + from argparse import RawTextHelpFormatter #pour le formattage de l'aide + parser = argparse.ArgumentParser(formatter_class=RawTextHelpFormatter, description="""Interroger un wiktionnaire + \033[1m\033[32mex :\033[0m + ‣\033[0m\033[32m./wikstraktor.py -m blue\033[0m + ‣\033[0m\033[32m./wikstraktor.py -m blue -f blue.json -A -C\033[0m + ‣\033[0m\033[32m./wikstraktor.py -l en -w fr -m blue -f blue.json -A -C\033[0m""") parser.add_argument("-l", "--language", help="la langue du mot", type=str, default = "en") parser.add_argument("-w", "--wiki_language", help="la langue du wiki", type=str, default = "en") parser.add_argument("-m", "--mot", help="le mot à chercher", type=str, default=None) + parser.add_argument("-f", "--destination_file", help="le fichier dans lequel stocker le résultat", type=str, default=None) + parser.add_argument("-A", "--force_ascii", help="json avec que des caractères ascii", action="store_true") + parser.add_argument("-C", "--compact", help="json sans indentation", action="store_true") args = parser.parse_args() if args.mot != None: w = Wikstraktor.get_instance(args.wiki_language, args.language) resp = None if w.fetch(args.mot) > 0: - resp = w.__str__() - print(resp) + resp = w.export(args.force_ascii, args.compact) + if args.destination_file != None: + f = open(args.destination_file, "w") + f.write(resp) + f.close + else: + print(resp) else: raise NameError("Pas de mot demandé")