Commit Graph

393 Commits

Author SHA1 Message Date
Aditya Chandel
7e4a40e30c Resolve CBX page sequence issue (#1270) 2025-10-05 11:12:18 -06:00
Aditya Chandel
23aa45b264 Implement EPUB page spread feature for desktop (#1267)
* Implement EPUB page spread feature for desktop

* Implement EPUB page spread feature for desktop
2025-10-05 10:28:16 -06:00
Aditya Chandel
ff230f34fc Enhance metadata options to allow skipping fields during fetch and support extended field options (#1263) 2025-10-05 00:15:11 -06:00
Aditya Chandel
41f68a6075 Add support for moods and tags in book metadata (#1262) 2025-10-04 19:02:25 -06:00
Aditya Chandel
879d147e84 Improve notifications to display live progress for ongoing batch metadata fetches (#1242) 2025-09-30 14:31:14 -06:00
Aditya Chandel
131b19f49f Introduce per-library settings for metadata fetching (#1239) 2025-09-30 00:07:59 -06:00
Aditya Chandel
2dcfe00ddc Drop legacy OPDS and keep only the new implementation (#1236) 2025-09-28 16:54:08 -06:00
Aditya Chandel
c23a626b7c Ensure temporary files are properly cleaned up after metadata updates (#1226) 2025-09-28 01:18:18 -06:00
Aditya Chandel
06523d4c24 Add setting/toggle to automatically download reviews (#1221) 2025-09-26 14:39:52 -06:00
Aditya Chandel
a9c1be9854 Automatic ISBN 13 Correction/Normalization (#1219) 2025-09-26 14:04:38 -06:00
Aditya Chandel
bec721c21c Display library name in metadata viewer page (#1211) 2025-09-25 21:05:43 -06:00
Aditya Chandel
f82b22145c Add ability to move books across libraries (#1210) 2025-09-25 20:47:12 -06:00
jduar
b510f4cf3f fix: stop sending shelves not associated with the user (#1201)
* stop sending shelves not associated with the user

* correctly map shelves to books. filter shelves not belonging to user
2025-09-25 10:07:13 -06:00
jduar
7ca27452ca send default instapaper properties in the kobo initialization (#1203) 2025-09-25 10:06:26 -06:00
Aditya Chandel
5278a2af32 Remove metadata backup process (#1205) 2025-09-25 10:05:42 -06:00
Aditya Chandel
907d33d206 Adding {subtitle} to the file naming patterns variables (#1195) 2025-09-22 19:52:54 -06:00
Aditya Chandel
b46a5c2362 Fix: Kepubify not working on arm linux docker install (#1192) 2025-09-22 18:48:21 -06:00
Aditya Chandel
f0c95056f3 Auto-update book status to READ once KoReader reading progress reaches 99.5% or higher (#1190) 2025-09-22 18:16:17 -06:00
Aditya Chandel
6565368a55 Fix: Two users cannot put the same book on their Kobo shelves (#1189) 2025-09-22 18:04:41 -06:00
Aditya Chandel
03fd812bbc Fix Bookdrop file processing due to duplicate inotify events (#1169)
* Filter "Continue Reading" to only show READING, RE_READING, or PAUSED books

* Fix Bookdrop file processing due to duplicate inotify events
2025-09-16 09:41:30 -06:00
Aditya Chandel
21553b7473 Hardcover: Pick correct ISBN from the response (#1165) 2025-09-15 17:44:19 -06:00
Aditya Chandel
1df21551f6 Rollback background blur and transparency due to high CPU/GPU usage (#1160) 2025-09-15 11:03:34 -06:00
Ruben GM
11935ae5a7 fix CBX cover extraction (#1155) 2025-09-15 10:40:51 -06:00
Aditya Chandel
226cffec6d Add EPUB reader progress tracking and auto-update read status (#1148)
- Track EPUB reading progress (CFI)
- Calculate and update read status based on progress percentage
- Handle EPUB, PDF, and CBX file types consistently
2025-09-13 21:20:54 -06:00
Aditya Chandel
308b710a56 Automatically detect and set book subtitle from title field (#1146) 2025-09-13 20:26:32 -06:00
Aditya Chandel
a82d7b45d7 fix: cover not reflecting in UI (#1139) 2025-09-12 15:58:12 -06:00
Aditya Chandel
6ea2eb58bc Add auto-move option on metadata update and simplify file monitoring (#1137)
- Introduce option to automatically move books when their metadata is updated
- Simplify the file monitoring workflow for improved reliability and clarity
2025-09-12 11:59:36 -06:00
aditya.chandel
7adc2b3f57 Fix test 2025-09-12 10:41:18 -06:00
Ruben GM
4742bd78c3 feat: OPDS v2 support for libraries, shelves (#1129)
* opds v2 support for libraries, shelves

* opds v2 support for recently added filter
2025-09-11 11:45:40 -06:00
Aditya Chandel
1008a9476b Support configurable background image and transparency (#1126) 2025-09-09 22:18:52 -06:00
Ruben GM
2e537bb2a1 feat: ComicInfo.xml support for CBX files (#1073)
* write, read ComicInfo.xml for CBZ files

* updated with recommendations from previous PR https://github.com/booklore-app/booklore/pull/1069

* read ComicInfo.xml on CBR, extract first image for CBZ/CBR files, save CBR metadata in ComicInfo.xml as CBZ

* Delete CBR file after CBZ conversion. Update DB

* Backs up file before updating. Restores back up if errored

* Test classes

* Update booklore-api/src/main/java/com/adityachandel/booklore/service/metadata/BookMetadataUpdater.java

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update booklore-api/src/main/java/com/adityachandel/booklore/service/metadata/writer/CbxMetadataWriter.java

Updating RAR binary availability check

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update booklore-api/src/main/java/com/adityachandel/booklore/service/metadata/extractor/CbxMetadataExtractor.java

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update booklore-api/src/main/java/com/adityachandel/booklore/service/metadata/extractor/CbxMetadataExtractor.java

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Code updates from PR suggestions

* Support to extract ComicInfo.xml for .cb7 files

* Writer extension for .cb7 files

* Adding com.github.junrar to build.gradle (forgot in previous commit)

* Settings toggle to control CBR/CB7 to CBZ conversion

* indentation complains

* removed duplicated junrar inport

* Restore comicinfo.xml metadata in edit view

* retrieve ComicInfo.xml metadata for new files in library scan

* private class definition was missed after merge

* Delete 

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-09 08:16:29 -06:00
Aditya Chandel
074d8d6e69 Fix database lockout caused by duplicate files in library (#1102) 2025-09-06 21:22:59 -06:00
Paul
c8e78d3bc8 feat: Add comprehensive race condition prevention for file operations (#1085)
- Implement MonitoringProtectionService with thread-safe pause/resume logic
- Add monitoring protection to file operations preventing data loss from race conditions
- Add comprehensive test coverage including concurrent and integration tests

Race condition scenario: File operations (move/delete) detected as "missing files"
by monitoring system before filesystem operations complete, causing incorrect
book removal and data loss.

Solution: Thread-safe monitoring pause during file operations with delayed resume
to ensure filesystem operations complete before monitoring resumes.
2025-09-05 23:11:20 -06:00
Márk Gulyás
7604fa7fa0 Adding USER_ID and GROUP_ID to specify permission without making breaking change (#882)
* fixing permissions to be able to run springboot with given UID and GID

* Adding USER_ID and GROUP_ID to specify permission without making breaking change

* move su exec to start.sh

---------

Co-authored-by: Aditya Chandel <8075870+adityachandelgit@users.noreply.github.com>
2025-09-05 23:00:48 -06:00
Aditya Chandel
f5e084d09c Implement comprehensive library stats and charts (#1089)
* Implement comprehensive library stats and charts

* fix(stats): handle null or unknown readStatus consistently

* Fix readStatus in AuthorPopularityChartService

* Fix missing x-axis label in chart

* Add radar charts

* Increase css budget

* Chart positioning and subscription improvements

* Add data labels

* Increase budgets
2025-09-05 13:06:53 -06:00
aditya.chandel
63dc2bcbc7 Fix issue where metadata updates to file caused books to be removed from booklore 2025-09-02 17:15:06 -06:00
aditya.chandel
0d95817ae8 OPDS v2 fixes 2025-08-31 08:45:59 -06:00
aditya.chandel
443dcad59a Implement OPDS v2 to return user-specific book feeds 2025-08-30 17:02:35 -06:00
aditya.chandel
bb2c1f4c27 Fix OIDC stomp initialization and notification 2025-08-29 13:50:09 -06:00
aditya.chandel
614af906b7 Set RxStomp reconnect delay to 10 seconds for stable websocket reconnection 2025-08-29 13:03:17 -06:00
aditya.chandel
b34f7fcbf1 Fix notifications not being delivered for OIDC users 2025-08-29 12:17:17 -06:00
aditya.chandel
e4fe1ab029 Merge conflict fixes 2025-08-29 10:58:02 -06:00
Yonghao Zou
342039ea4b feat: support Douban as a metadata provider (#1000)
* feat: support Douban as metadata provider.
Douban.com is a platform of sharing films, music and books in China.

* format code

* support douban reviews

---------

Co-authored-by: Aditya Chandel <8075870+adityachandelgit@users.noreply.github.com>
2025-08-29 10:32:55 -06:00
Iván Ruiz Gázquez
3e64d35957 fix: add content-type header for koreader-sync auth (#1016)
* test: add content-type assertion for user auth

* fix: specify JSON content type in authorizeUser method

Set content type to JSON for user authorization response.
2025-08-29 10:31:45 -06:00
aditya.chandel
addf7c0c17 Allow manual bookdrop folder refresh for non-local file systems 2025-08-29 10:30:57 -06:00
aditya.chandel
4abf5eccaa Add ISBN to Metadata Search 2025-08-28 23:35:24 -06:00
aditya.chandel
12b7aaa8e9 Allow users to disable kobo shelf 2025-08-28 21:12:45 -06:00
aditya.chandel
146b2572c3 Get 5 reviews from Amazon and Goodreads 2025-08-27 23:10:29 -06:00
aditya.chandel
a16fb3c1e1 Fix: Metadata autofetch not returning any proposals 2025-08-27 23:03:33 -06:00
Aditya Chandel
09bc2f6e9e Feature/999 add high resolution cover support upload storage and search (#1006)
* Add high-resolution cover support: upload, storage, and search

* Disable tests until fixed
2025-08-27 21:47:27 -06:00