Repository navigation
Local books can find a cover from audiobookcovers.com and Open Library, or use a photo - #109
Merged
Merged
Conversation
…ouches Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
…ks, and Use the original cover puts the folder's art back Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
…first Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
…he server sign in Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
…t, never cropped Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
…d Auto right away Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
…eview, and set Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
… original cover Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
…search box Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
…y on the page Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
…om, whose square art comes first Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
…ibrary audiobookcovers.com's json search is a picture similarity search that always answers with 20 covers, however unrelated, so unrelated books sat above the real Open Library covers. The app now reads the site's book search page instead, which matches the title and author against the book each cover belongs to and answers nothing when no cover matches. The untouched search box sends the book's own title and author tags. An edited box is sent as the title alone. The grid shows audiobookcovers.com matches first, then Open Library, and says No covers found when both come back empty. If the site changes that page and the app cannot read it, that source drops out with one warning and Open Library and photos keep working. Tests run against saved copies of the real pages, plus a live canary that CI skips. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
audiobookcovers.com ties each cover to an Open Library book with a confidence. For Project Hail Mary it also groups The Martian covers under an omnibus book, as likely or uncertain matches. Covers the site confirmed now come first, then likely ones, then the rest, so the real art leads the grid. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
…nd tidies stray files Cover requests no longer follow redirects on their own. Each hop is checked by hand, up to three, and must stay on https and on the cover services' hosts (Open Library, the Internet Archive hosts its covers move to, audiobookcovers.com and its image host). Anything else drops that tile quietly. A phone to phone transfer now brings the picked covers along with the rows that point at them. If a pick's file is missing anyway, the next scan treats it as no pick, so the folder's art shows instead of a blank. After each local scan, files in the picked covers folder that no book points at and that are over an hour old are deleted, leftover temp files included. When covers came back but every thumbnail failed to load, the screen now says it couldn't reach the cover services instead of "No covers found". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes for users
How it talks to the sources
/search?title=&author=), whose embedded data is parsed. The site's JSON API only matches by image, so its results cannot be filtered by title. If the page format changes, that source drops out quietly with one log line and Open Library and photos keep working. A live canary test (skipped in CI, run by hand, passing) catches a format change.Tests
LocalBookMove's Dossier total check read 0s once and passed 4 of 4 on rerun. That test predates this branch and reads nothing it changed.Evidence
/home/static/nine-lives-evidence/2026-10-31-220k/SUMMARY.mdandk/shots/: Project Hail Mary shows its real audiobookcovers.com cover first then Open Library tiles, Carmilla shows "No covers found" until edited, a photo pick, a pick surviving a rescan and the new cleanup, undo, and the playing book's notification art updating.Review
For Jeff
/home/static/nine-lives-evidence/2026-10-31-220k/drafts/. audiobookcovers.com's own code sends searched titles to its analytics, and the site has no privacy policy. Our line under the button already discloses the title and author going there.Draft copy pending Jeff
Find a cover. Searching sends this book's title and author to audiobookcovers.com and Open Library. Title and author. Search. Pick from my photos. Searching for covers... No covers found. Try a shorter title. Couldn't reach the cover services. Check your connection, or pick from your photos. audiobookcovers.com. Open Library. Cover art by r/audiobookcovers. Use this cover. Cancel. That cover didn't save. Try another one. Use the original cover.
🤖 Generated with Claude Code
https://claude.ai/code/session_014XfNSbEfq8dG2ResrdGXbf