Commit Graph

1167 Commits

Author SHA1 Message Date
CounterClops
5e427474c7 Feat: Enhancements to Kobo Metadata sync (#1664)
* feat: improve kobo metadata change syncing

* fix: resolve issue with kobo thumbnail passthrough
2025-11-30 09:42:58 -07:00
aditya.chandel
7bc66cfb65 WIP 2025-11-26 16:55:47 -07:00
Aditya Chandel
5abed1ad53 Update issue templates 2025-11-25 05:50:30 -07:00
Aditya Chandel
b77539fcc7 Update issue templates 2025-11-25 05:48:38 -07:00
aditya.chandel
aa07f5ee74 Add rollback logic to restore deleted files when move fails 2025-11-25 05:30:12 -07:00
Muppetteer
e0e1938f2f Refresh autocomplete data lists when book is saved (#1629) 2025-11-25 04:44:59 -07:00
Muppetteer
e2bdb6cea7 Enable assign to shelf on shelves and magic shelves (#1628) 2025-11-25 04:43:33 -07:00
Muppetteer
bcee8db6c4 Fixes display of Tags field on bulk lock/unlock metadata screen (#1627) 2025-11-25 04:38:55 -07:00
Aditya Chandel
415207d91d Allow duplicate files both within the same library and across different libraries (#1632) 2025-11-25 04:38:18 -07:00
aditya.chandel
c6126b5aea Update readme 2025-11-24 21:42:16 -07:00
Aditya Chandel
b3ae93fc6b Fix: correctly assign main title and subtitle from <dc:title> elements (#1626) 2025-11-24 21:28:07 -07:00
Aditya Chandel
03ad0ca309 Fix Auto Fetch ignoring disabled metadata providers and attempting retrieval from all sources (#1624) 2025-11-24 20:55:52 -07:00
Aditya Chandel
d17a3c0afc Add display of selected item count in book action footer for easier batch editing (#1623) 2025-11-24 20:29:12 -07:00
Aditya Chandel
c12add5e5a Add ISBN column to table view (#1622) 2025-11-24 19:59:58 -07:00
Aditya Chandel
6fc7718be9 Reposition delete action to bottom of menus (#1621) 2025-11-24 19:51:56 -07:00
Aditya Chandel
d3ab346dab Introduce new book sorting mode: Author first, then Series, then Series Index (#1620) 2025-11-24 19:45:38 -07:00
Aditya Chandel
2554343301 Add support for displaying subchapters in EPUB reader sidebar (#1619) 2025-11-24 19:01:45 -07:00
Aditya Chandel
4d9362a1b4 Add a shelf creation button to the left menu bar and improve the layout of the shelf creation page (#1617) 2025-11-24 08:42:07 -07:00
CounterClops
1dbf214199 fix: kobo sync only update finished date when one doesn't already exist (#1614)
* fix: only update finished date on kobo sync when an existing date doesn't exist

* chore: add unit tests to confirm this is the case
2025-11-24 07:26:21 -07:00
Balázs Szücs
a0a08080ed fix(metadata-updater): fix partial metadata save on Bookdrop (#1611)
* fix(metadata-refresh): change replace mode to REPLACE_ALL when editing metadata

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

* fix(metadata-refresh): update metadata update method to support customizable replace mode

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

* fix(metadata-refresh): refactor updateBookMetadata to use MetadataUpdateContext for improved clarity and flexibility

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

---------

Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2025-11-24 07:25:24 -07:00
Balázs Szücs
c1e662bde9 refactor(utils): convert utilities to @UtilityClass and add tests (#1609)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
Co-authored-by: Aditya Chandel <8075870+adityachandelgit@users.noreply.github.com>
2025-11-24 07:23:06 -07:00
Balázs Szücs
3f3b72248a refactor: use try-with-resources for better resource management in file processing (#1607)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
Co-authored-by: Aditya Chandel <8075870+adityachandelgit@users.noreply.github.com>
2025-11-24 07:20:45 -07:00
Balázs Szücs
57199004ca feat(sort): implement natural order sorting titles and names (#1606)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2025-11-24 07:19:28 -07:00
Balázs Szücs
746e94983b feat(file-service): implement image downloading using RestTemplate with better headers and error handling (#1605)
* feat(file-service): implement image downloading using RestTemplate with better headers and error handling

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

* feat(config): enhance RestTemplate with custom connection and read timeouts

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

---------

Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2025-11-24 07:18:26 -07:00
Balázs Szücs
dddc6d4acf fix(metadata): fallback to filename for title extraction in PDF and EPUB metadata (#1603)
Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2025-11-24 07:17:23 -07:00
Aditya Chandel
0190ba8677 Fix: cannot change lower and upper case letters in metadata (#1602) 2025-11-21 10:30:29 -07:00
Aditya Chandel
9a70fb5d81 Allow parentheses (angle brackets) in file name pattern (#1601) 2025-11-21 09:56:12 -07:00
Aditya Chandel
ab2992ed82 Fix: magic shelf filter not working for "unset" read status (#1599) 2025-11-21 09:31:02 -07:00
Aditya Chandel
379e9f745e Fix: exclude completed books from Discover Something New (#1598) 2025-11-21 09:23:05 -07:00
aditya.chandel
a0dcfe68c2 Resolve Flyway migration version conflict 2025-11-21 00:43:22 -07:00
aditya.chandel
8f811bb82d Fixes are PR merges 2025-11-21 00:42:02 -07:00
aditya.chandel
be925de5da Fix LoginGuard 2025-11-21 00:23:04 -07:00
Chris Debenham
f53a5cf8ff Fix metadata writing to file (#1592)
Fixes bug #1572
2025-11-21 00:19:22 -07:00
Chris Debenham
5b6c0b54a0 Fix file moving - fixes issue #1521 (#1582)
* Fix file moving - fixes issue #1521

* Fix metadata writing to file

Fixes bug #1572
2025-11-21 00:18:56 -07:00
CounterClops
7ebdc7b106 Feature: Sync reading progress from Kobo in-built reader (#1541)
* feat: add kobo reading progress sync

* fix: remove old variable references

* fix: avoid changing koreader behaviour

* fix: resolve typo in koreader progress

* fix: remove link between booklore progress and kobo sync progress

* feat: add unit tests for kobo reading status sync

* fix: remove unnecessary conversion value for kobo progress

* fix: resolve issue with kobo_progress beiong optional in template

* fix: update entitlement to provide existing reading progress back to kobo on sync

* fix: use stored bookmark before creating new bookmark

* fix: update default thresholds to full numbers. kobo doesn't report progress with any decimal places

* chore: update unit tests

* fix: remove decimal places in kobo settings progress threshold
2025-11-21 00:17:57 -07:00
CounterClops
9eb0dabd5e Feature: Next/previous book buttons on CBX reader (#1549)
* feat: add next book button to cbx reader

* chore: reduce redundant css elements

* chore: additional css cleanup
2025-11-21 00:16:55 -07:00
Muppetteer
f141fa49ba Feature: Autocomplete for publisher and series on book metadata edit screen (#1587)
* Autocomplete for publisher and series on book metadata edit screen

* Add autocomplete to bulk edit metadata form

* seriesName was missing the [disabled]="clearFields.seriesName" attribute

---------

Co-authored-by: Aditya Chandel <8075870+adityachandelgit@users.noreply.github.com>
2025-11-20 23:56:53 -07:00
Muppetteer
f6790d53dc Add DatePicker to edit metadata page (#1586) 2025-11-20 21:24:29 -07:00
Muppetteer
4561c2b1cf Show invisible googleId on metadata picker pages (#1581) 2025-11-20 21:23:48 -07:00
Lars De Volder
1bcd0d1c3b Change p-tabpanels height (#1580) 2025-11-20 21:23:12 -07:00
Chris Debenham
79ab4ec5a1 Add ability to mark magic shelves as public (#1489)
Adds a checkbox to the create/edit magic shelf dialog to set the shelf
as public.
If public then it shows up for all users.
Only admins can edit public shelves (edit options disabled for
non-admin)
2025-11-20 21:17:10 -07:00
beedaddy
229c360116 Continue Reading: Don't show already finished books (#1520)
This fixes #1480
2025-11-20 21:16:06 -07:00
Benjamin Jackson
c74ed5b846 Init. (#1524) 2025-11-20 21:14:38 -07:00
Yann
27033560c0 feat: add language restriction option for google parser and improve search metadata by title/author query (#1502)
* feat: add language restriction option for google parser and improve search metadata by title/author query

* Fix syntax error.
2025-11-20 21:14:12 -07:00
astrodad
3a8a46b3cc Added timestamp from koreader_last_sync_time to returned json on GET for KOReader Sync API (#1518) 2025-11-20 21:12:33 -07:00
Ionuț Staicu
014874cd11 set the correct file name when triggering a download (#1513) 2025-11-20 21:11:45 -07:00
beedaddy
278b11e9e1 Enhancement: Import custom pagecount field from calibre (#1486)
* Enhancement: Import custom pagecount field from calibre

Calibre exports custom columns as JSON strings. This PR parses this JSON data and adds the pagecount value to booklore.
By convention, the calibre column must be named "pagecount".

* Don't use another external library for JSON
2025-11-20 21:10:29 -07:00
Balázs Szücs
5c42e2e765 refactor(api, test): improve readability and code quality across services, and tests (#1494)
* refactor(tests): improve readability and consistency across services

- Replace field declarations with local variables in test setup methods to simplify code.
- Introduce constants for patterns and update regex logic in `BookMediaController`.
- Improve assertions and use more precise methods like `getFirst()` in tests.
- Utilize `EnumMap` and `EnumSet` for better performance and memory efficiency in metadata logic.
- Concatenate XML strings using multi-line strings or simplify where applicable.
- Deprecate and refactor user provisioning to ensure consistency and reuse of logic.
- Add additional parameters such as `watch` in `Library` entities and set defaults in builders.
- Replace manual comparator logic with core library features like `Comparator.reverseOrder`.
- Update metadata merging methods to use `getFirst()` for target values.
- Adjust mocked objects to include additional fields in validation methods.

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

* refactor(service): remove deprecated user provisioning method

- Remove `provisionRemoteUser` method marked as deprecated in `UserProvisioningService`.
- Encourage use of `provisionRemoteUserFromHeaders` as the preferred entry point.

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

---------

Signed-off-by: Balázs Szücs <bszucs1209@gmail.com>
2025-11-20 21:09:39 -07:00
Subhashini Ganesh
cb8f5e7a29 Fix: Normalize paths for relative sub-path calculation (#1501)
Fixes a bug preventing import of books with duplicate filenames in
different sub-folders.

The path relativization in FileUtils.getRelativeSubPath would fail in
some cases, yielding an empty sub-path. This caused a database
unique index violation as only the filename was saved as the filePath.

This commit fixes the issue by normalizing both paths before
relativization. Adds FileUtilsTest.java to validate the fix.

Fixes #1499
2025-11-20 21:08:39 -07:00
Ionuț Staicu
db9bc40960 feat: Set the browser title based on what section of the app you are on (#947)
* when reading a book, set the page title

* set page title on various sections of the app

* update page title service
2025-10-31 10:31:30 -06:00