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