feat: add from_LehmannsSearchResult method to BookData for processing Lehmanns search results
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
from dataclasses import dataclass, field
|
|
||||||
|
|
||||||
from enum import Enum
|
|
||||||
import json
|
import json
|
||||||
from typing import Union, Any, Optional
|
from dataclasses import dataclass, field
|
||||||
|
from enum import Enum
|
||||||
|
from typing import Any, Optional, Union
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Prof:
|
class Prof:
|
||||||
@@ -93,6 +93,24 @@ class BookData:
|
|||||||
ndata = json.loads(data)
|
ndata = json.loads(data)
|
||||||
return BookData(**ndata)
|
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
|
@dataclass
|
||||||
class MailData:
|
class MailData:
|
||||||
|
|||||||
Reference in New Issue
Block a user