Radarr/frontend
Cody Kickertz 4b7b273683
feat: Phase 2 Multi-Media Infrastructure - Books/Audiobooks Backend & Frontend (#125)
* feat(api): add Book and Audiobook lookup and editor controllers

Adds search and bulk edit functionality for Books and Audiobooks:
- BookLookupController: search by ISBN, ISBN13, ASIN, ForeignId, title
- AudiobookLookupController: search by ISBN, ASIN, narrator, title
- BookEditorController: bulk update/delete books
- AudiobookEditorController: bulk update/delete audiobooks
- Editor validators and resources for both entity types

* feat(core): add AddBookService and AddAudiobookService

Adds services for adding new books and audiobooks with validation:
- AddBookService: handles book creation with path generation
- AddAudiobookService: handles audiobook creation with narrator-aware paths
- AddBookValidator: validates book additions
- AddAudiobookValidator: validates audiobook additions

* feat(core): add BookFile and AudiobookFile entities and repositories

Adds file tracking infrastructure for books and audiobooks:
- BookFile entity with format tracking
- AudiobookFile entity with audio metadata (duration, bitrate, etc.)
- BookFileRepository for book file queries
- AudiobookFileRepository for audiobook file queries
- Database migration for new tables
- Table mappings for new entities

* feat(metadata): add Book and Audiobook metadata provider interfaces

Adds metadata provider infrastructure for books and audiobooks:
- IProvideBookInfo: interface for book metadata lookups
- IProvideAudiobookInfo: interface for audiobook metadata lookups
- BookMetadata: model for book metadata from external sources
- AudiobookMetadata: model for audiobook metadata with narrator info
- BookInfoProxy: stub implementation (to be replaced with Goodreads, etc.)
- AudiobookInfoProxy: stub implementation (to be replaced with Audible, etc.)

* feat(api): add Author and Series repositories, services, and API controllers

* feat(ui): add Book and Audiobook Redux store and index pages

---------

Co-authored-by: admin <admin@ardentleatherworks.com>
2025-12-21 21:28:14 -06:00
..
.vscode
build Migrate to ESLint 9 flat config 2025-12-19 14:44:01 -06:00
src feat: Phase 2 Multi-Media Infrastructure - Books/Audiobooks Backend & Frontend (#125) 2025-12-21 21:28:14 -06:00
typings
.prettierignore
.prettierrc.json
.stylelintrc
.tern-project
babel.config.js
eslint.config.mjs Migrate to ESLint 9 flat config 2025-12-19 14:44:01 -06:00
jsconfig.json
postcss.config.js
tsconfig.json