mirror of
https://github.com/andwati/andwati.com.git
synced 2026-10-31 23:02:16 +00:00
apps/cms/src/utils/bookshelf-covers.ts fetches book covers from Open Library by ISBN (real image, cached into apps/site/public/covers/) and backfills missing title/authors for papers from Semantic Scholar by DOI/arXiv id. Wired into the sync middleware in content-sync.ts: runs once per entry (cover_image already set means "done"), and only on live create/update through Strapi, not during the boot-time import (so a restart doesn't hammer external APIs). Also renames the bookshelf `status` field to `read_status` everywhere (schema, content/README.md, seed content, Astro zod schema, bookshelf page, sync mapping). Strapi's content-manager API treats a top-level `status` key as its own reserved draft/publish parameter even with draftAndPublish disabled, so an attribute literally named `status` silently rejected every write — caught this while testing the enrichment hook. Verified end-to-end: created a book by ISBN with no cover_image, confirmed a real cover image was downloaded and cached, cover_image was set on the entry and written to the file, and the cover/file were both removed on delete.
16 lines
452 B
Markdown
16 lines
452 B
Markdown
+++
|
|
title = "Structure and Interpretation of Computer Programs"
|
|
kind = "book"
|
|
authors = ["Harold Abelson", "Gerald Jay Sussman"]
|
|
isbn = "9780262510875"
|
|
cover_image = "/covers/structure-and-interpretation-of-computer-programs.jpg"
|
|
rating = 5
|
|
read_status = "read"
|
|
date_started = 2026-01-01
|
|
date_finished = 2026-01-20
|
|
[taxonomies]
|
|
tags = ["computer-science", "programming"]
|
|
+++
|
|
|
|
Placeholder review establishing the `bookshelf` schema for `kind = "book"`.
|