add type checking, error handling, fix search issue. Closes #3 Closes #4 Fixes #3 Fixes #4

This commit is contained in:
2025-04-28 15:36:29 +02:00
parent 424411b077
commit 8c68655f9f
5 changed files with 72 additions and 52 deletions

View File

@@ -1,5 +1,3 @@
import sqlite3
from PyQt6.QtCore import QThread
from PyQt6.QtCore import pyqtSignal as Signal
from src.backend import Database
@@ -25,19 +23,20 @@ class BookGrabber(QThread):
updateSignal = Signal(int, int)
done = Signal()
def __init__(self, appnr: int):
def __init__(self):
super(BookGrabber, self).__init__(parent=None)
self.is_Running = True
logger.info("Starting worker thread")
self.data = None
self.data = []
self.app_id = None
self.prof_id = None
self.mode = None
self.book_id = None
self.use_any = False
self.use_exact = False
self.appnr = appnr
self.app_id = None
self.tstate = (self.app_id, self.prof_id, self.mode, self.data)
self.request = WebRequest()
def add_values(
self, app_id: int, prof_id: int, mode: str, data, any_book=False, exact=False
@@ -45,27 +44,26 @@ class BookGrabber(QThread):
self.app_id = app_id
self.prof_id = prof_id
self.mode = mode
self.data = data
self.data: list[str] = data
self.use_any = any_book
self.use_exact = exact
logger.info(f"Working on {len(self.data)} entries")
self.tstate = (self.app_id, self.prof_id, self.mode, self.data)
logger.debug("State: " + str(self.tstate))
# print(self.tstate)
self.request.set_apparat(self.app_id)
# logger.debug(self.tstate)
def run(self):
self.db = Database()
item = 0
iterdata = self.data
# print(iterdata)
if self.prof_id is None:
self.prof_id = self.db.getProfNameByApparat(self.app_id)
for entry in iterdata:
# print(entry)
signature = str(entry)
logger.info("Processing entry: " + signature)
# logger.debug(iterdata)
webdata = WebRequest().set_apparat(self.appnr).get_ppn(entry)
for entry in iterdata:
# logger.debug(entry)
logger.info("Processing entry: {}", entry)
webdata = self.request.get_ppn(entry)
if self.use_any:
webdata = webdata.use_any_book
webdata = webdata.get_data()
@@ -74,12 +72,12 @@ class BookGrabber(QThread):
continue
bd = BibTextTransformer(self.mode)
print(webdata)
logger.debug(webdata)
if self.mode == "ARRAY":
if self.use_exact:
bd = bd.use_signature(entry)
bd = bd.get_data(webdata).return_data()
print(bd)
logger.debug(bd)
if bd is None:
# bd = BookData
continue
@@ -95,19 +93,21 @@ class BookGrabber(QThread):
logger.info("Added book to database")
state = 0
for result in transformer.RDS_DATA:
# print(result.RDS_LOCATION)
# logger.debug(result.RDS_LOCATION)
if str(self.app_id) in result.RDS_LOCATION:
state = 1
break
logger.info(f"State of {signature}: {state}")
print("updating availability of " + str(self.book_id) + " to " + str(state))
logger.info(f"State of {entry}: {state}")
logger.debug(
"updating availability of " + str(self.book_id) + " to " + str(state)
)
try:
self.db.setAvailability(self.book_id, state)
print("Added book to database")
logger.debug("Added book to database")
except Exception as e:
logger.error(f"Failed to update availability: {e}")
print("Failed to update availability: " + str(e))
logger.debug("Failed to update availability: " + str(e))
# time.sleep(5)
item += 1
@@ -135,7 +135,7 @@ class BookGrabberTest(QThread):
self.book_id = None
self.use_any = False
self.use_exact = False
self.appnr = appnr
self.app_id = appnr
self.tstate = (self.app_id, self.prof_id, self.mode, self.data)
self.results = []
@@ -151,18 +151,18 @@ class BookGrabberTest(QThread):
logger.info(f"Working on {len(self.data)} entries")
self.tstate = (self.app_id, self.prof_id, self.mode, self.data)
logger.debug("State: " + str(self.tstate))
# print(self.tstate)
# logger.debug(self.tstate)
def run(self):
item = 0
iterdata = self.data
# print(iterdata)
# logger.debug(iterdata)
for entry in iterdata:
# print(entry)
# logger.debug(entry)
signature = str(entry)
logger.info("Processing entry: " + signature)
webdata = WebRequest().set_apparat(self.appnr).get_ppn(entry)
webdata = WebRequest().set_apparat(self.app_id).get_ppn(entry)
if self.use_any:
webdata = webdata.use_any_book
webdata = webdata.get_data()
@@ -188,13 +188,13 @@ class BookGrabberTest(QThread):
logger.info("Added book to database")
state = 0
for result in transformer.RDS_DATA:
# print(result.RDS_LOCATION)
# logger.debug(result.RDS_LOCATION)
if str(self.app_id) in result.RDS_LOCATION:
state = 1
break
logger.info(f"State of {signature}: {state}")
# print("updating availability of " + str(self.book_id) + " to " + str(state))
# logger.debug("updating availability of " + str(self.book_id) + " to " + str(state))
self.results.append(bd)
# time.sleep(5)