Skip to content
Snippets Groups Projects
Commit 1f8ba6b5 authored by Mathieu Loiseau's avatar Mathieu Loiseau
Browse files

log.sqlite paramétrable

parent b236cdb0
No related branches found
No related tags found
No related merge requests found
......@@ -56,13 +56,14 @@ str(f) #convert content to json
#### Bash
```
usage: wikstraktor.py [-h] [-l LANGUAGE] [-w WIKI_LANGUAGE] [-m MOT]
[-f DESTINATION_FILE] [-A] [-C]
[-f DESTINATION_FILE] [-A] [-C] [-n] [-r] [-L LOG_FILE]
Interroger un wiktionnaire
ex :
‣./wikstraktor.py -m blue
‣./wikstraktor.py -m blue -f blue.json -A -C
‣./wikstraktor.py -l en -w fr -m blue -f blue.json -A -C
‣./wikstraktor.py -m blue -f blue.json -AC
‣./wikstraktor.py -l en -w fr -m yellow -L /var/log/wikstraktor.sqlite
‣./wikstraktor.py -l en -w fr -m blue -f blue.json -n -ACr
options:
-h, --help show this help message and exit
......@@ -75,6 +76,14 @@ options:
le fichier dans lequel stocker le résultat
-A, --force_ascii json avec que des caractères ascii
-C, --compact json sans indentation
-n, --no_id json sans id
-r, --follow_redirections
pour suivre les redirections (ex: did → do)
-L LOG_FILE, --log_file LOG_FILE
le fichier sqlite où stocker les log
(bien vérifier que l'utilisateur qui lance le script a
accès en écriture à ce fichier
et au dossier qui le contient)
```
### Wikstraktor Server
......
#necessary
pywikibot>=8.1.2
wikitextparser>=0.51.0
importlib>=1.0.4
#importlib>=1.0.4 provided by default
#for setup script
GitPython==3.1.31
......@@ -534,12 +534,12 @@ class ParserContext:
class Wikstraktor:
@classmethod
def get_instance(cls, wiki_language, entry_language):
def get_instance(cls, wiki_language, entry_language, logfile="wikstraktor.sqlite"):
try:
m_name = f"{wiki_language}_{entry_language}".capitalize()
instance = getattr(importlib.import_module(f"parsers.{m_name.lower()}"), f"{m_name}_straktor")()
instance.version = the_version
instance.log = Wikstraklog(the_version, entry_language, wiki_language)
instance.log = Wikstraklog(the_version, entry_language, wiki_language, logfile)
except ModuleNotFoundError:
print(f"parsers.{m_name.lower()} module not found or {m_name}_straktor not found in module")
instance = None
......@@ -769,7 +769,8 @@ if __name__ == "__main__":
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 -m blue -f blue.json -AC\033[0m
\033[0m\033[32m./wikstraktor.py -l en -w fr -m yellow -L /var/log/wikstraktor.sqlite\033[0m
\033[0m\033[32m./wikstraktor.py -l en -w fr -m blue -f blue.json -n -ACr\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")
......@@ -779,10 +780,15 @@ if __name__ == "__main__":
parser.add_argument("-C", "--compact", help="json sans indentation", action="store_true")
parser.add_argument("-n", "--no_id", help="json sans id", action="store_true")
parser.add_argument("-r", "--follow_redirections", help="pour suivre les redirections (ex: did → do)", action="store_true")
parser.add_argument("-L", "--log_file", help="le fichier sqlite où stocker les log\n(bien vérifier que l'utilisateur qui lance le script a\naccès en écriture à ce fichier\net au dossier qui le contient)", type=str, default=None)
args = parser.parse_args()
if args.mot != None:
w = Wikstraktor.get_instance(args.wiki_language, args.language)
if args.log_file != None:
w = Wikstraktor.get_instance(args.wiki_language, args.language, args.log_file)
else:
w = Wikstraktor.get_instance(args.wiki_language, args.language)
resp = None
if w.fetch(args.mot, args.follow_redirections) > 0:
resp = w.export(not args.no_id, args.force_ascii, args.compact)
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment