add book wishlist work adding
This commit is contained in:
parent
b5bbe3ae08
commit
34885d4cda
2 changed files with 45 additions and 9 deletions
|
@ -1,4 +1,30 @@
|
|||
[
|
||||
{
|
||||
"id": "OL27719403W",
|
||||
"title": "The hidden life of trees",
|
||||
"subjects": [
|
||||
"Trees",
|
||||
"Ecology",
|
||||
"Forest ecology",
|
||||
"Wald\u00f6kosystem"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "OL25815646W",
|
||||
"title": "An Immense World",
|
||||
"subjects": [
|
||||
"nyt:combined-print-and-e-book-nonfiction=2022-07-10",
|
||||
"New York Times bestseller",
|
||||
"Senses and sensation",
|
||||
"Animal behavior",
|
||||
"Physiology",
|
||||
"Neurosciences",
|
||||
"Sensation",
|
||||
"Sens et sensations",
|
||||
"Physiologie",
|
||||
"nyt:paperback-nonfiction=2023-09-17"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "OL21164374W",
|
||||
"title": "Tender is the Flesh",
|
||||
|
|
|
@ -126,11 +126,11 @@ def add_item_to_log(item_id, media_type, log) -> None:
|
|||
|
||||
item = None
|
||||
log_to_delete = None
|
||||
if "tv-episodes" != media_type:
|
||||
if "tv-episodes" != media_type and ("books" != media_type and "wishlist" != log):
|
||||
item, log_to_delete = check_for_existing(item_id, media_type, log)
|
||||
|
||||
if item is None:
|
||||
item = import_by_id(item_id, media_type)
|
||||
item = import_by_id(item_id, media_type, log)
|
||||
if item is None:
|
||||
raise Exception("No item found")
|
||||
|
||||
|
@ -189,7 +189,7 @@ def add_item_to_log(item_id, media_type, log) -> None:
|
|||
delete_existing(item_id, media_type, log_to_delete)
|
||||
|
||||
|
||||
def import_by_id(import_id, media_type) -> dict:
|
||||
def import_by_id(import_id, media_type, log) -> dict:
|
||||
"""Import from the appropriate API by unique ID"""
|
||||
|
||||
if media_type in ["films", "tv-series"]:
|
||||
|
@ -199,6 +199,10 @@ def import_by_id(import_id, media_type) -> dict:
|
|||
return import_from_tmdb_by_imdb_id(import_id, media_type)
|
||||
|
||||
if media_type in ["books"]:
|
||||
if "wishlist" == log:
|
||||
return import_from_openlibrary_by_ol_key(import_id)
|
||||
|
||||
else:
|
||||
return import_from_openlibrary_by_id(
|
||||
"".join(re.findall(r"\d+", import_id)), media_type
|
||||
)
|
||||
|
@ -326,6 +330,9 @@ def import_from_openlibrary_by_id(isbn, media_type) -> dict:
|
|||
def import_from_openlibrary_by_ol_key(key) -> dict:
|
||||
"""Retrieves an item (author or work, NOT edition) from OpenLibrary using an OL key"""
|
||||
|
||||
if (len(key.split("/")) == 1):
|
||||
key = f"/works/{key}"
|
||||
|
||||
logger.info(f"Retrieving {key}…")
|
||||
_, mode, ol_id = key.split("/")
|
||||
|
||||
|
@ -533,12 +540,15 @@ def main() -> None:
|
|||
log = input("Enter log to update [log|current|wishlist]: ")
|
||||
|
||||
while re.search("[0-9]+", item_id) is None:
|
||||
if "wishlist" == log:
|
||||
item_id = input("Enter OpenLibrary Work ID: ")
|
||||
else:
|
||||
item_id = "".join(re.findall(r"\d+", input("Enter ISBN: ")))
|
||||
|
||||
elif "tv-episodes" == media_type:
|
||||
log = "log"
|
||||
while re.search("[0-9]+", item_id) is None:
|
||||
item_id = input("Enter TVDB ID: ")
|
||||
item_id = input("Enter IMDB ID: ")
|
||||
|
||||
elif "tv-series" == media_type:
|
||||
log = ""
|
||||
|
|
Loading…
Reference in a new issue