Description
EPUB and AZW3 books show format placeholder icons instead of actual cover images in the library.
Current State
Infrastructure Already In Place (~40%)
Book.coverImagePath: String? — model field exists, always nil
BookMetadata.coverImagePath: String? — metadata field exists, never populated
CustomCoverStore — JPEG compression, disk storage, cleanup — fully working
BookCardView / BookRowView — already check for cover image, fall back to placeholder
- Import pipeline passes
coverImagePath through, just receives nil
What's Missing
- EPUB cover extraction — Parse
content.opf for cover image reference, extract from ZIP
- AZW3 cover extraction — Read EXTH records for embedded cover, or use Foliate-js
- Save extracted cover to disk during import (via CustomCoverStore or similar)
- Populate
Book.coverImagePath in BookImporter.importFile()
Notes
Description
EPUB and AZW3 books show format placeholder icons instead of actual cover images in the library.
Current State
EPUBMetadataExtractoris a stub returning nilAZW3MetadataExtractoris a stub returning nilInfrastructure Already In Place (~40%)
Book.coverImagePath: String?— model field exists, always nilBookMetadata.coverImagePath: String?— metadata field exists, never populatedCustomCoverStore— JPEG compression, disk storage, cleanup — fully workingBookCardView/BookRowView— already check for cover image, fall back to placeholdercoverImagePaththrough, just receives nilWhat's Missing
content.opffor cover image reference, extract from ZIPBook.coverImagePathinBookImporter.importFile()Notes