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

With log sqlite db

parent 6081dccb
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python3
import sqlite3
class Wikstraklog:
table_name = "Wikstraklog"
def __init__(self, wikstraktor_version, word_language, wiki_language, file="wikstraktor.sqlite"):
self.__connector__ = sqlite3.connect(file)
self.__cursor__ = self.__connector__.cursor()
if self.__execute__(f"SELECT name FROM sqlite_master WHERE type='table' AND name='{Wikstraklog.table_name}';").fetchone() is None :
self.__execute__(f"""CREATE TABLE "{Wikstraklog.table_name}" (
"Date" DATETIME DEFAULT CURRENT_TIMESTAMP,
"Wikstraktor_version" TEXT NOT NULL,
"Word_language" TEXT NOT NULL,
"Wiki_language" TEXT NOT NULL,
"Word_form" TEXT NOT NULL,
"Wiki_permanent_id" INTEGER NOT NULL,
"Caller_method" TEXT,
"Content" TEXT
);""")
self.wx_v = wikstraktor_version
self.w_l = word_language
self.wk_l = wiki_language
def set_context(self, word, permanentId):
self.cur_w = word
self.cur_pid = permanentId
def __execute__(self, query, params = None):
if params == None:
res = self.__cursor__.execute(query)
else:
res = self.__cursor__.execute(query, params)
self.__connector__.commit()
return res
def add_log(self, caller, content, word=None, permanentId=None):
if word == None:
word = self.cur_w
if permanentId == None:
permanentId = self.cur_pid
res = self.__execute__(f"INSERT INTO `{Wikstraklog.table_name}` (`Wikstraktor_version`, `Word_language`, `Wiki_language`, `Word_form`, `Wiki_permanent_id`, `Caller_method`, `Content`) VALUES (?, ?, ?, ?, ?, ?, ?)", (self.wx_v, self.w_l, self.wk_l, word, permanentId, caller, str(content)))
return res
if __name__ == "__main__":
from wikstraktor_version import version as the_version
log = Wikstraklog(the_version, "en", "fr")
log.set_context("blue", 123456789)
log.add_log("exampleMethod", "no relevant content")
......@@ -3,6 +3,8 @@ import pywikibot
import wikitextparser
import importlib
import json
from wikstraktor_version import version as the_version
from wikstraklog import Wikstraklog
#ICITE : fr marche pas, en prend des trucs vides à virer (cf. yellow… def & example)
......@@ -447,8 +449,8 @@ class Wikstraktor:
try:
m_name = f"{wiki_language}_{entry_language}".capitalize()
instance = getattr(importlib.import_module(f"parsers.{m_name.lower()}"), f"{m_name}_straktor")()
from wikstraktor_version import version as v
instance.version = v
instance.version = the_version
instance.log = Wikstraklog(the_version, entry_language, wiki_language)
except ModuleNotFoundError:
print(f"parsers.{m_name.lower()} module not found or {m_name}_straktor not found in module")
instance = None
......@@ -490,6 +492,7 @@ class Wikstraktor:
def parse(self, entry, v_id, sections):
self.parserContext = ParserContext(entry, self.entry_language, self.wiki_language, v_id, self.version)
self.log.set_context(entry, v_id)
for s in sections:
if s.title != None :
#handle wiki context
......
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