Commit Graph

1589 Commits

Author SHA1 Message Date
ACX
5d9e535a14 Fix email sending failure due to lazy-loaded bookFiles outside session (#2404)
Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-22 16:10:26 -07:00
ACX
2cd2e7bd16 fix(db): remove unused CBX/PDF cache cleanup cron entries (#2402)
Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-22 14:57:59 -07:00
ACX
eb57af85a5 Fix showstopper bugs in v1.18.0 (#2399)
- Fix issue with hardcover toggle not being selectable
- Resolve syncing problem with Booklore toggle
- Address CSS warnings for cleaner styling

Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-22 13:27:06 -07:00
WorldTeacher
d137055b83 fix(reading sessions): Split sessions, re-calculate times in book overview (#2393)
* do not group reading sessions on a per-day basis

* calculate actual duration for reading sessions

---------

Co-authored-by: WorldTeacher <coding_contact@pm.me>
2026-01-22 13:04:17 -07:00
acx10
97343ee067 Revert release branch flow 2026-01-22 11:06:34 -07:00
acx10
e62979eec4 Merge branch 'master' into develop
* master:
  Fix touch issues with ebook reader (#2395)
  Fix failing book cover search due to HTTP 403
2026-01-22 11:03:15 -07:00
ACX
abaa99fbee Merge pull request #2396 from booklore-app/release/1.18
Release v1.18.0
2026-01-22 10:50:45 -07:00
ACX
b95248e4e5 Fix touch issues with ebook reader (#2395)
Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-22 09:45:48 -07:00
acx10
6fb8d47da4 Fix RC flow 2026-01-22 01:06:14 -07:00
ACX
cb5f6808f0 Fix failing book cover search due to HTTP 403 (#2392)
Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-22 00:47:36 -07:00
acx10
c27cc7205d Fix failing book cover search due to HTTP 403 2026-01-22 00:45:36 -07:00
acx10
61ac306735 Add drafter automation 2026-01-22 00:26:46 -07:00
ACX
4ec1e56cb7 Introduce release branch (#2391)
Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-21 23:51:34 -07:00
Balázs Szücs
14fa7b058b feat(metadata): add 'Replace When Provided' option to metadata replacement modes (#2379)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2026-01-21 22:40:40 -07:00
dependabot[bot]
270813d93e chore(deps): bump tar from 7.5.2 to 7.5.6 in /booklore-ui (#2387)
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.2 to 7.5.6.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.2...v7.5.6)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 22:39:28 -07:00
dependabot[bot]
34cee9386a chore(deps): bump lodash-es from 4.17.21 to 4.17.23 in /booklore-ui (#2388)
Bumps [lodash-es](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash-es
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 22:39:07 -07:00
BAE
48b615d529 Refactor: Enhance healthcheck response with version info and DTO (#2378)
* Refactor: Enhance healthcheck response with version info and DTO

* test: Enhance healthcheck response with version info and DTO
2026-01-21 22:38:44 -07:00
Balázs Szücs
c42f62c338 perf(regex): introduce regex patterns for improved string handling in various services (#2386)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2026-01-21 22:37:39 -07:00
Balázs Szücs
193c9495a1 feat(google-parser): improve Google Books API integration with improved metadata handling and series extraction (#2375)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2026-01-21 22:37:04 -07:00
boludo00
67c12223ea fix: Refactor HardcoverSyncService to improve edition and page count (#2389)
* fix: Refactor HardcoverSyncService to improve edition and page count fetching logic. Always fetch edition and page info from Hardcover when a stored book ID is available. Update variable names for clarity and ensure fallback mechanisms are in place for missing data.

* fix: Update key in HardcoverSyncServiceTest to reflect correct edition ID naming convention

* feat: Enhance reading progress tracking in HardcoverSyncService by adding isFinished parameter to upsert methods. This allows for recording completion dates when a book is finished.

---------

Co-authored-by: akiraslingshot <akiraslingshot@gmail.com>
2026-01-21 22:35:19 -07:00
cra21k
7c3c0bba01 Update KoboResources file to match Calibre web to fix issues with Overdrive login (#2367)
Made changes to some flags, and noticed others had broken links or http request which is fixed to be https.

Changes

    New Endpoints: Added ereaderdevices (v2 device feeds) and subs_plans_page (Kobo Plus plans).

    Feature Flags: Enabled kobo_superpoints_enabled (previously False).

    Security & Protocol: Updated image_host, help_page, and book_detail_page_rakuten to enforce https:// (previously http or protocol-relative).
2026-01-21 22:33:42 -07:00
Balázs Szücs
b2eb303964 feat(metadata): simplify series name extraction by removing volume suffix (#2385)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2026-01-21 22:32:46 -07:00
ACX
020bca7feb Introduced additional library charts to surface meaningful insights (#2390)
Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-21 22:31:53 -07:00
acx10
3afc82e210 Update charts 2026-01-21 09:42:08 -07:00
ACX
54af081a32 Introduce three new analytical charts: Taste Ratings, Reading Backlog, and Series Progress (#2383)
Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-21 09:17:41 -07:00
acx10
47abe01e47 Change licensing to GNU Affero General Public License v3.0 (AGPL-3.0) 2026-01-20 17:26:56 -07:00
acx10
6738736ffa Update readme 2026-01-20 17:17:26 -07:00
ACX
8d8759921b Fix: Yes/No buttons on bookdrop import have reversed colors/icons (#2363)
Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-20 13:55:42 -07:00
ACX
ab06b0d50f Polish view and metadata settings page UI (#2362)
Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-20 12:23:45 -07:00
ACX
4c346cd2ea Optimize metadata picker for mobile layout (#2361)
...

Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-20 11:18:28 -07:00
ACX
9dc5110169 Normalize book progress percentage rounding (#2359)
Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-20 09:57:59 -07:00
acx10
8b61f38113 Remove CI cancellation 2026-01-20 09:38:24 -07:00
Balázs Szücs
5451bb470a feat(metadata): add replace mode option for metadata fetching (#2356)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2026-01-20 09:21:50 -07:00
ACX
36546061b5 Initialize progress web app (#2351)
Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-20 09:08:05 -07:00
Balázs Szücs
66dee6d7e0 feat(comicVine): improve comic metadata structure with additional credits and fields (#2358)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2026-01-20 09:05:14 -07:00
Balázs Szücs
691845adb8 feat(custom-covers): add functionality to generate custom covers for selected books (#2355)
* feat(custom-covers): add functionality to generate custom covers for selected books

Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>

* feat(book-menu): add option to generate custom covers in metadata menu

Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>

---------

Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2026-01-20 08:56:18 -07:00
acx10
b7c0d7050d Don't cancel CI runs for develop and master branch 2026-01-20 08:54:58 -07:00
Balázs Szücs
4e27b8afab feat(library): add validation for library path accessibility during rescan (#2347)
* feat(library): add validation for library path accessibility during rescan

Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>

* feat(BookMapper): add mappings for primary file attributes in BookMapper

Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>

---------

Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2026-01-20 08:48:54 -07:00
ACX
7efb0e138d Implement streaming EPUB reader with on-demand loading (#2350)
Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-19 18:07:57 -07:00
Balázs Szücs
da83a70281 fix(PathPatternResolver): remove leading slash from resolved pattern if first component is empty (#2339)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2026-01-19 08:50:45 -07:00
Balázs Szücs
87cefbffbc chore(metadata-warning): add warnings about metadata quality for file naming and moving features (#2340)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2026-01-19 08:49:58 -07:00
AJ Banck
c7fa64c045 fix(epub): add cover extraction fallback using meta cover attribute (#2310)
Add fallback mechanism to extract EPUB cover images when the primary
epub4j getCoverImage() method returns null. The new fallback reads
the 'cover' meta attribute from EPUB metadata and uses it to look up
the cover resource by ID.

This improves cover detection for EPUBs that use the traditional
<meta name="cover" content="image-id"/> and the cover image href
uses a URL-encoded special character which epub4j can't resolve.

Changes:
- Add cover extraction fallback via getMetaAttribute("cover")
- Add null safety check for coverId before resource lookup
- Add test with URL-encoded href to verify proper path handling
2026-01-19 08:47:06 -07:00
farfromrefuge
69c3c88375 Feat/komga api (#2071)
* Implement Komga API endpoints with OPDS authentication

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* Add database migration and documentation for Komga API

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* Address code review comments - improve performance and maintainability

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* chore: update with main develop

* chore: log cleanup

* chore: fixed switch with missing types

* chore: missing case

* Merge pull request #4 from farfromrefug/copilot/fix-500-error-on-books-api

Fix NPE in Komga books API when pageCount is null and add unpaged parameter

* Add collections endpoint and page download with PNG conversion support

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* Address code review feedback for better resource management and error messages

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* Fix convert parameter to match specification (convert=png)

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* chore: renamed migration

* chore: migration

* chore: migration fix

* chore: should work now

* chore: settings

* chore: working with mihon

* Initial plan

* Add clean query parameter for Komga API endpoints

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* Address code review comments - remove unused imports and add @Primary annotation

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* Add demo test to illustrate clean mode effectiveness

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* Support both ?clean and ?clean=true syntax

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* Filter out empty arrays in clean mode

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* chore: missing field

* chore: missing field

* chore: fix error with missing number

* fix: added groupUnknown API parameters to sort by "Unknown Series" (true by default)

* Initial plan

* Convert groupUnknown from query parameter to Booklore setting

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* Remove unused groupUnknown variables from service and mapper

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* chore: fix seriesTitle in ungrouped unknowns

* Initial plan

* Optimize Komga API performance for series listing

- Optimize getAllSeries to only convert series on current page to DTOs
- Optimize getBooksBySeries to fetch books only once (not twice)
- Add database query methods for future optimizations
- Update tests to work with new optimizations
- All existing tests pass

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* Clean up unused database query methods in BookRepository

Remove unused optimization queries that don't align with application-level series grouping logic

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* Optimize getAllSeries to query distinct series names from database

- Add database queries to fetch distinct series names directly (no need to load all books)
- Add queries to fetch books only for specific series (when building DTOs)
- Support both groupUnknown=true and groupUnknown=false modes
- Add test to verify optimization works and books aren't loaded unnecessarily
- Performance improvement: For 1000+ books grouped into 100+ series, now only queries series names (~100 rows) instead of loading all books (~1000+ rows), then loads books only for the current page (~20-50 books per series on page)

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

* chore: migration fix from merge

* chore: address comments

* fix: handle getBookPage for PDF/CBX

* chore: rename migration

* chore: komga specific series queries fix

* chore: komga tests fix

* chore: front end komga tests

---------

Co-authored-by: Aditya Chandel <8075870+adityachandelgit@users.noreply.github.com>
Co-authored-by: ACX <8075870+acx10@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-01-19 08:44:53 -07:00
arjunsrinivasan1997
4253322d2c feat(ui): add password confirmations (#2291)
* feat(ui): add password confirmation to setup screen

* feat(ui): add password confirmation to create user dialog

* fix(tests): force frontend tests to use jsdom, and run tests in isolated environment. Also add debug statements to further diagnose failing test if needed

---------

Co-authored-by: ACX <8075870+acx10@users.noreply.github.com>
2026-01-19 08:41:42 -07:00
Balázs Szücs
dfd757fe36 fix(metadata-viewer): update file type handling to filter comic book formats as CBX (#2338)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2026-01-19 08:24:04 -07:00
acx10
ca8ace3759 Add global and per-book settings for the streaming PDF reader 2026-01-18 23:30:40 -07:00
ACX
a39043c2a0 Revamp streaming PDF reader to render pages on demand (#2332)
Co-authored-by: acx10 <acx10@users.noreply.github.com>
2026-01-18 22:38:19 -07:00
Balázs Szücs
d4cd6f52f4 feat(sort): Add sort by author surname and first name (#2292)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2026-01-18 18:31:45 -07:00
Balázs Szücs
3b56294d1c feat(directory-picker): add selection actions for folders, add buttons for select all, deselect all, and select current folder (#2293)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2026-01-18 18:31:04 -07:00
Balázs Szücs
f1f16a98d8 fix(amazon-parser): handle Amazon error responses and improve error logging (#2294)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2026-01-18 18:20:31 -07:00