fix book work importing

This commit is contained in:
Ben Goldsworthy 2024-03-06 22:34:20 +01:00
parent b4d528533c
commit 1d6374010d
Signed by: Rumperuu
SSH key fingerprint: SHA256:e5XfzNOr9UvWpEzyLfw0GtTMZWIFh3NmxH+/qQIi3xE
2 changed files with 14 additions and 6 deletions

View file

@ -64,7 +64,7 @@ def return_if_exists(item_id, media_type, log) -> dict | None:
existing_items = [ existing_items = [
log_item log_item
for log_item in log_items for log_item in log_items
if "id" in log_item and log_item["id"] == int(item_id) if "id" in log_item and log_item["id"] == item_id
] ]
if len(existing_items) > 0: if len(existing_items) > 0:
logger.info(f"Found item in '{log}'") logger.info(f"Found item in '{log}'")
@ -83,7 +83,7 @@ def delete_existing(item_id, media_type, log) -> None:
log_items = [ log_items = [
log_item log_item
for log_item in log_items for log_item in log_items
if "id" not in log_item or ("id" in log_item and log_item["id"] != int(item_id)) if "id" not in log_item or ("id" in log_item and log_item["id"] != item_id)
] ]
if len(log_items) < (old_len - 1): if len(log_items) < (old_len - 1):
raise Exception("More than one deletion made, discarding…") raise Exception("More than one deletion made, discarding…")
@ -355,7 +355,7 @@ def import_from_openlibrary_by_ol_key(key) -> dict:
if mode in ["works", "authors"]: if mode in ["works", "authors"]:
if "authors" == mode: if "authors" == mode:
matched_cached_authors = [ matched_cached_authors = [
aut for aut in cached_authors if aut["id"] == ol_id aut for aut in cached_authors if aut["ol_id"] == ol_id
] ]
if len(matched_cached_authors) == 1: if len(matched_cached_authors) == 1:
logging.info( logging.info(
@ -388,7 +388,7 @@ def import_from_openlibrary_by_ol_key(key) -> dict:
if "authors" == mode: if "authors" == mode:
author = {"ol_id": ol_id, "name": item["name"]} author = {"ol_id": ol_id, "name": item["name"]}
print(author)
if "personal_name" in item: if "personal_name" in item:
if item["name"] != item["personal_name"]: if item["name"] != item["personal_name"]:
author["personal_name"] = item["personal_name"] author["personal_name"] = item["personal_name"]
@ -404,12 +404,18 @@ def import_from_openlibrary_by_ol_key(key) -> dict:
return author return author
if "works" == mode: if "works" == mode:
work = {"ol_id": ol_id, "title": item["title"]} work = {"ol_id": ol_id, "title": item["title"], "authors": []}
if "authors" in item:
for author in item["authors"]:
work["authors"].append(import_from_openlibrary_by_ol_key(author["author"]["key"]))
for result_key in ["first_publish_date", "subjects"]: for result_key in ["first_publish_date", "subjects"]:
if result_key in item: if result_key in item:
work[result_key] = item[result_key] work[result_key] = item[result_key]
work["date_added"] = datetime.today().strftime("%Y-%m-%d")
return work return work
else: else:
@ -572,7 +578,7 @@ def main() -> None:
while re.search("[0-9]+", item_id) is None: while re.search("[0-9]+", item_id) is None:
item_id = input("Enter TMDB ID: ") item_id = input("Enter TMDB ID: ")
add_item_to_log(re.search("(tt)?[0-9]+", item_id)[0], media_type, log) add_item_to_log(re.search("(OL|tt)?[0-9]+[WMA]?", item_id)[0], media_type, log)
except Exception: except Exception:
logger.exception("Exception occurred") logger.exception("Exception occurred")

View file

@ -141,6 +141,8 @@ def process_log(media_type, log) -> None:
try: try:
new_log_item = import_by_id(ol_work_id[0], media_type, log) new_log_item = import_by_id(ol_work_id[0], media_type, log)
except: except:
new_log_item = item
item["skip"] = True
logger.info("Skipping…") logger.info("Skipping…")
elif "ISBN13" in item and item["ISBN13"] != "" and item["ISBN13"] is not None: elif "ISBN13" in item and item["ISBN13"] != "" and item["ISBN13"] is not None: