🌟 What's New in v1.18.0
This release introduces some of the largest and most impactful features Booklore has seen so far:
- New Ebook Reader: Introducing a responsive, clean, and intuitive reader based on Foliate.js. Supports EPUB, AZW3, MOBI, and FB2 formats, with highlights, notes, and bookmarks for seamless reading.
- Bi-Directional Reading Progress Sync: Reading progress now syncs automatically between Booklore and KoReader, with Kobo support coming in upcoming releases.
- Streaming Ebook Reading (Beta): Large ebooks, such as multi-hundred-page cookbooks or textbooks, can now be read page by page, minimizing memory and storage usage.
- Optimized PDF & CBZ Streaming: PDF and CBX files no longer need to be fully extracted for reading; pages are streamed directly, improving performance for large files.
- Enhanced Charts: All charts have been redesigned for clarity and visual appeal. Three new chart types have been added: Taste Ratings, Reading Backlog, and Series Progress.
- Komga-Compatible API: Connect your Komga apps, such as Mihon or Komelia, directly to Booklore for unified library management.
- Progressive Web App Support: Booklore can now be installed as a PWA, allowing access without browser UI limitations for a cleaner reading experience.
🚀 New Features
- Introduced additional library charts to surface meaningful insights (#2390) by @acx10
- Introduce three new analytical charts: Taste Ratings, Reading Backlog, and Series Progress (#2383) by @acx10
- Initialize progress web app (#2351) by @acx10
- feat(custom-covers): add functionality to generate custom covers for selected books (#2355) by @balazs-szucs
- Implement streaming EPUB reader with on-demand loading (#2350) by @acx10
- Feat/komga api (#2071) by @farfromrefug
- Revamp streaming PDF reader to render pages on demand (#2332) by @acx10
- Revamp the CBX reader layout for improved structure and usability (#2330) by @acx10
- Add support for annotations and book notes in the new ebook reader (#2313) by @acx10
- Bidirectional progress sync between koreader and booklore reader (#2312) by @acx10
- feat(metadata): add configurable enabled fields for metadata editor a… (#2299) by @acx10
- Implement Public Shelves (#1969) by @cjd
- Introduce a new eBook reader with support for EPUB, MOBI, AZW3, and FB2 formats (#2258) by @acx10
- feat(metadata): add auto-save metadata feature in editor settings (#2274) by @balazs-szucs
- RanobeDB Light Novel metadata provider (#2221) by @Nedra1998
✨ Enhancements
- feat(metadata): add 'Replace When Provided' option to metadata replacement modes (#2379) by @balazs-szucs
- feat(google-parser): improve Google Books API integration with improved metadata handling and series extraction (#2375) by @balazs-szucs
- feat(metadata): add replace mode option for metadata fetching (#2356) by @balazs-szucs
- feat(comicVine): improve comic metadata structure with additional credits and fields (#2358) by @balazs-szucs
- feat(library): add validation for library path accessibility during rescan (#2347) by @balazs-szucs
- feat(ui): add password confirmations (#2291) by @arjunsrinivasan1997
- feat(sort): Add sort by author surname and first name (#2292) by @balazs-szucs
- feat(directory-picker): add selection actions for folders, add buttons for select all, deselect all, and select current folder (#2293) by @balazs-szucs
- feat(hardcover): Improve Hardcover metadata accuracy and rate limiting (#2303) by @balazs-szucs
- feat(shelf): add shelf filtering options and integrate into book processing (#2268) by @balazs-szucs
- Stream CBX contents directly from the archive instead of unzipping and caching files (#2229) by @acx10
🎨 UI Tweaks
- Polish view and metadata settings page UI (#2362) by @acx10
- Optimize metadata picker for mobile layout (#2361) by @acx10
🐛 Bug Fixes
- Fix touch issues with ebook reader (#2395) by @acx10
- Fix failing book cover search due to HTTP 403 (#2392) by @acx10
- fix: Refactor HardcoverSyncService to improve edition and page count (#2389) by @boludo00
- fix(kobo): Update KoboResources file to match Calibre web to fix issues with Overdrive (#2367) by @cra21k
- fix(comic-metadata): fix series grouping bug with external ComicInfo.xml metadata (#2385) by @balazs-szucs
- fix(PathPatternResolver): remove leading slash from resolved pattern if first component is empty (#2339) by @balazs-szucs
- fix(ui): map comic book extensions to CBX filter in book details (#2338) by @balazs-szucs
- fix: Reading stats UI (#2322) by @WorldTeacher
- fix: split reading sessions based on the date (#2316) by @WorldTeacher
- fix(chart-ui): resolve glitches in chart rendering (#2290) by @acx10
- fix(comicvine): fix metadata search failing for titles containing '#' (#2273) by @balazs-szucs
- fix(reading statistics ui): small fixes (#2276) by @WorldTeacher
- fix(metadata-picker): handle null and empty values in fetched metadata processing (#2269) by @balazs-szucs
- fix(OpdsFeedService): detect ZIP mime type for FB2 files when zipped (#2242) by @balazs-szucs
- fix(epub): strip formatting from ISBN values to ensure correct extraction (#2248) by @balazs-szucs
- feat(deps): add JPEG2000 support in PDFBox with Jai ImageIO dependencies (#2250) by @balazs-szucs
- fix(metadata): missing lubimyczytac fields and fetch retry (#2179) by @Spynacz
🛠️ Refactoring & Maintenance
- Refactor: Enhance healthcheck response with version info and DTO (#2378) by @hyun4965
- perf(regex): introduce regex patterns for improved string handling invarious services (#2386) by @balazs-szucs
- Fix: Yes/No buttons on bookdrop import have reversed colors/icons (#2363) by @acx10
- Normalize book progress percentage rounding (#2359) by @acx10
- chore(metadata-warning): add warnings about metadata quality for file naming and moving features (#2340) by @balazs-szucs
- fix(api,epub): add cover extraction fallback using meta cover attribute for URL-encoded cover image hrefs (#2310) by @ajbanck
- fix(amazon-parser): handle Amazon error responses and improve error logging (#2294) by @balazs-szucs
- fix(metadata): ensure authors/genres are replaced, not merged, during metadata update by defaulting mergeCategories to false (#2304) by @balazs-szucs
- chore(docs): update copyright year in README (#2323) by @balazs-szucs
- Refactor metadata picker and parsers for Amazon, Goodreads, and Google (#2327) by @acx10
- Refactor dialogs for a consistent look and feel (#2321) by @acx10
- Refactor common dialog header and footer components (#2318) by @acx10
- Refactor the Book Browser to simplify and streamline the implementation (#2317) by @acx10
- Centralize book tag color definitions (#2314) by @acx10
- Remove support for the legacy ePub reader (#2287) by @acx10
- fix(parsers): increase request interval to prevent rate limiting issues (#2282) by @balazs-szucs
- (Refactor) Extract file-specific information from book (#1734) by @piffio
- Update query to use startTime instead of createdAt (#2272) by @WorldTeacher
- feat(archive): add ArchiveType via Magic Numbers detection and integrate into book processing (#2220) by @balazs-szucs
- fix(epub): normalize text nodes in EPUB metadata content.opf (#2222) by @balazs-szucs
📦 Dependencies
- chore(deps): bump tar from 7.5.2 to 7.5.6 in /booklore-ui (#2387) by @dependabot[bot]
- chore(deps): bump lodash-es from 4.17.21 to 4.17.23 in /booklore-ui (#2388) by @dependabot[bot]
- chore: update Angular dependencies to latest minor/patch versions (#2285) by @acx10
🐳 Docker Images
- Docker Hub:
booklore/booklore:v1.18.0 - GitHub Container Registry:
ghcr.io/booklore-app/booklore:v1.18.0
Full Changelog: v1.17.0...v1.18.0
📸 Screenshots
