Added
- Audible-direct author lookup (#302) — audiobook-heavy users no longer lose most of a prolific author's Audible catalogue to OpenLibrary/Hardcover ASIN gaps. When the effective media type is
audiobookorboth,FetchAuthorBookssupplements OpenLibrary's works list with results from Audible's public catalogue endpoint (api.audible.com/1.0/catalog/products). Supplemental books flow through the same dedup + metadata-profileallowed_languagesfilter as OpenLibrary, so foreign-language ASINs are filtered out before persisting.
Fixed
- Author ingestion drops books + catalogue noise (#313) —
GetAuthorWorksnow uses OpenLibrary's search index as the primary source (one call returns title + language + subjects + cover + year) and keeps the/authors/{id}/worksendpoint as a backfill that hydrates series membership and picks up works the search index has missed (e.g. recent releases). A new subject/title noise filter at the OL client layer drops study guides, summaries, film/TV adaptations, screenplays, and audio-CD pseudo-works before they reach the ingestion pipeline, stopping duplicates like the five "Dutch House" entries previously pulled for Ann Patchett. - Audiobook library scan misses tagged files (#303) — the library scan now reads embedded ID3/iTunes tags (title, author, ASIN) from MP3/M4B/M4A/FLAC/OGG files during reconciliation. Match priority is ASIN → tag title+author → fuzzy filename fallback, so well-tagged Audible/organised libraries match without manual correction. Files whose tags can't be read surface as scan warnings and a new
tag_read_failedcounter inlibrary.lastScan.
Chores
- golangci-lint cleanup — resolve errorlint (
%v→%wfor double-wrapped errors), staticcheck (apply De Morgan on ASIN charset check), and gofmt formatting noise introduced alongside the three fixes above.