Add Audible fetcher module with database storage
Implements the Audible fetcher (#25) that replaces static JSON output with proper database storage. Includes: - Audible fetcher with genre and series search strategies - SQLite database schema (books, book_sources, book_subgenres, fetch_runs, search_cursors) - Shared HTTP client with timeouts, retries, and rate limiting - Incremental fetch mode with search cursor tracking - Search terms externalized to config file - Rating data extracted and stored (addresses #21) - No content filtering at fetch time (per #3 discussion) - CLI: `npm run db:fetch -- --source=audible --year=2026` Closes #25 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Parente906622
7 files changed+550-6
StackedSplit