From 04b44fa5360efcd609806076982c5cefaa178365 Mon Sep 17 00:00:00 2001 From: Empiriker <till.ueberfries@gmail.com> Date: Tue, 17 Oct 2023 17:08:33 +0300 Subject: [PATCH] Use parse_page instead of page_handler --- src/app.py | 4 +++- src/wiktextract_wrapper.py | 28 +++++++++++----------------- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/app.py b/src/app.py index f1eab60..f856433 100644 --- a/src/app.py +++ b/src/app.py @@ -35,7 +35,9 @@ def search(wiktlang, wordlang, word): return jsonify({"error": "Parsing page resulted in error: " + str(e)}), 500 finally: - wiktextractor.page_handler.wxr.wtp.db_conn.close() + wiktextractor.wxr.wtp.db_conn.close() + if wiktextractor.wxr.thesaurus_db_conn: + wiktextractor.wxr.thesaurus_db_conn.close() else: return ( diff --git a/src/wiktextract_wrapper.py b/src/wiktextract_wrapper.py index f748e68..0f072ec 100644 --- a/src/wiktextract_wrapper.py +++ b/src/wiktextract_wrapper.py @@ -1,8 +1,7 @@ -from wiktextract.wiktionary import page_handler -from wikitextprocessor import Page +from wiktextract.page import parse_page from wiktextract_context import get_wiktextract_context - + db_path = "./sqlite.db" DEFAULT_PAGE_VALUES = { @@ -16,33 +15,28 @@ class Wiktextract: self.wiktlang = wiktlang self.wordlang = wordlang - self.page_handler = page_handler - self.page_handler.wxr = get_wiktextract_context(wiktlang, wordlang) + # self.page_handler = page_handler + # self.page_handler.wxr : WiktextractContext = + self.wxr = get_wiktextract_context(wiktlang, wordlang) def parse_page(self, title: str, wikicode: str): # add page to the database (making it accessible to LUA templates) - self.page_handler.wxr.wtp.add_page( + self.wxr.wtp.add_page( title=title, namespace_id=DEFAULT_PAGE_VALUES["namespace_id"], body=wikicode, model=DEFAULT_PAGE_VALUES["model"], ) - # create a page object (for parsing) - page = Page(title, 0, None, True, wikicode, "wikitext") + self.wxr.wtp.start_page(title) - # parse the page - success, ret, err = self.page_handler(page) - result, parsing_errors = ret + result = parse_page(self.wxr, title, wikicode) # remove the page from the database - self.page_handler.wxr.wtp.db_conn.execute( + self.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() + self.wxr.wtp.db_conn.commit() - if success: - return result - else: - raise Exception(err) + return result -- GitLab