Add Goodreads series and group them on the about page
This commit is contained in:
1 parent
737700a9a8
commit
2318cdeaac
11 files changed
+651
-12
No files matched your search
@@ -73,6 +73,30 @@ def update_book(text: str, change) -> dict:
|
||||
return books[index]
|
||||
|
||||
|
||||
def series_tag(series: dict, entry: dict) -> dict:
|
||||
tag = {"name": series["name"], "url": series["url"]}
|
||||
if entry.get("position"):
|
||||
tag["position"] = entry["position"]
|
||||
return tag
|
||||
|
||||
|
||||
def add_series_book(series: dict, entry: dict, shelf: str) -> dict:
|
||||
check_shelf(shelf)
|
||||
tag = series_tag(series, entry)
|
||||
books = load_books()
|
||||
index = find_index(books, entry["goodreadsId"])
|
||||
if index is not None:
|
||||
books[index] = {**books[index], "shelf": shelf, "series": tag}
|
||||
save_books(books)
|
||||
return books[index]
|
||||
book = add_book(entry["url"], shelf)
|
||||
return update_book(book["goodreadsId"], lambda stored: {**stored, "series": tag})
|
||||
|
||||
|
||||
def library_shelves() -> dict[str, str]:
|
||||
return {book["goodreadsId"]: book.get("shelf", "read") for book in load_books()}
|
||||
|
||||
|
||||
def add_book(url: str, shelf: str = "read", rating: int | None = None) -> dict:
|
||||
check_shelf(shelf)
|
||||
if rating is not None:
|
||||
|
||||
Reference in new issue
Block a user