From ce7d22b26b68f3bd80fd6f9381769f535e22dfca Mon Sep 17 00:00:00 2001 From: WorldTeacher Date: Mon, 1 Sep 2025 14:31:46 +0200 Subject: [PATCH] feat: add from_LehmannsSearchResult method to BookData for processing Lehmanns search results --- src/logic/dataclass.py | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/logic/dataclass.py b/src/logic/dataclass.py index c3c4f9d..0f90d54 100644 --- a/src/logic/dataclass.py +++ b/src/logic/dataclass.py @@ -1,8 +1,8 @@ -from dataclasses import dataclass, field - -from enum import Enum import json -from typing import Union, Any, Optional +from dataclasses import dataclass, field +from enum import Enum +from typing import Any, Optional, Union + @dataclass class Prof: @@ -93,6 +93,24 @@ class BookData: ndata = json.loads(data) return BookData(**ndata) + def from_LehmannsSearchResult(self, result: Any) -> "BookData": + self.title = result.title + self.author = "; ".join(result.authors) if result.authors else None + self.edition = str(result.edition) if result.edition else None + self.link = result.url + self.isbn = ( + result.isbn13 + if isinstance(result.isbn13, list) + else [result.isbn13] + if result.isbn13 + else [] + ) + self.pages = str(result.pages) if result.pages else None + self.publisher = result.publisher + self.year = str(result.year) if result.year else None + # self.pages = str(result.pages) if result.pages else None + return self + @dataclass class MailData: