update logging, update docuprint add new ui for generating documents

This commit is contained in:
2025-05-09 11:57:18 +02:00
parent f7ea6f5d34
commit 468e8674ab
16 changed files with 843 additions and 187 deletions

View File

@@ -4,10 +4,11 @@ from bs4 import BeautifulSoup
# import sleep_and_retry decorator to retry requests
from ratelimit import limits, sleep_and_retry
from typing import Union, Any
from typing import Union, Any, Literal, Optional
from src.logic.dataclass import BookData
from src.transformers import ARRAYData, BibTeXData, COinSData, RDSData, RISData
from src.transformers.transformers import RDS_AVAIL_DATA, RDS_GENERIC_DATA
import sys
from loguru import logger as log
@@ -105,6 +106,7 @@ class WebRequest:
def get_data(self) -> Union[list[str], None]:
links = self.get_book_links(self.ppn)
logger.debug(f"Links: {links}")
return_data: list[str] = []
for link in links:
result: str = self.search(link) # type:ignore
# in result search for class col-xs-12 rds-dl RDS_LOCATION
@@ -116,9 +118,9 @@ class WebRequest:
item_location = location.find(
"div", class_="col-xs-12 col-md-7 col-lg-8 rds-dl-panel"
).text.strip()
logger.debug(f"Item location: {item_location}")
if self.use_any:
pre_tag = soup.find_all("pre")
return_data: list[str] = []
if pre_tag:
for tag in pre_tag:
data = tag.text.strip()
@@ -142,9 +144,9 @@ class WebRequest:
logger.error(
f"Signature {self.signature} not found in {item_location}"
)
return_data = []
# return_data = []
return return_data
return return_data
def get_data_elsa(self):
links = self.get_book_links(self.ppn)
@@ -225,7 +227,15 @@ class BibTextTransformer:
self.data = line
return self
def return_data(self, option: Any = None) -> Union[BookData, None]:
def return_data(
self, option: Any = None
) -> Union[
Optional[BookData],
Optional[RDS_GENERIC_DATA],
Optional[RDS_AVAIL_DATA],
None,
dict[str, Union[RDS_AVAIL_DATA, RDS_GENERIC_DATA]],
]:
"""Return Data to caller.
Args: