diff --git a/src/wiktextract_wrapper.py b/src/wiktextract_wrapper.py index ee2ef7844c3c440f3977a662f1b6743c2a37d911..e9b9c223ea788d3553f9432fa04da0c072593bed 100644 --- a/src/wiktextract_wrapper.py +++ b/src/wiktextract_wrapper.py @@ -7,6 +7,10 @@ from wikitextprocessor import Wtp, Page db_path = "./sqlite.db" +DEFAULT_PAGE_VALUES = { + "namespace_id": 0, + "model": 'wikitext', +} class Wiktextract: def __init__(self, wiktlang:str, wordlang:str): self.wiktlang = wiktlang @@ -30,17 +34,22 @@ class Wiktextract: self.page_handler.wxr = wxr def parse_page(self, title:str, wikicode:str): - # add page to the database - self.page_handler.wxr.wtp.add_page(title=title, namespace_id=0, body=wikicode, model='wikitext') + # add page to the database (making it accessible to LUA templates) + self.page_handler.wxr.wtp.add_page(title=title, namespace_id=DEFAULT_PAGE_VALUES["namespace_id"], body=wikicode, model=DEFAULT_PAGE_VALUES["model"]) - # create a page object + # create a page object (for parsing) page = Page(title, 0, None, True, wikicode, 'wikitext') # parse the page success, ret, err = self.page_handler(page) + result, parsing_errors = ret + + # remove the page from the database + self.page_handler.wxr.wtp.db_conn.execute("DELETE FROM pages WHERE title = ? AND model = ?", (title, DEFAULT_PAGE_VALUES["model"])) + self.page_handler.wxr.wtp.db_conn.commit() if success: - return ret + return result else: raise Exception(err)