Commit Graph

357 Commits

Author SHA1 Message Date
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
Alexander Puzynia
694ee11540 Book additional files support library (3/3) (#872)
* feat(api/model): add new entity BookAdditionalFileEntity

* feat(api/db): add book additional file repository

* feat(api/db): add migration

* test(api/db): add book additional file repository test

* test(api/db): add book additional file repository tests for hash uniqueness

* feat(api/domain): add support to additional file model

* feat(api): add additional files controller

* refactor(api): move addAdditionalFile to FileUploadService as uploadAdditionalFile method

* feat(service): search book by additional file

* feat(services): process deleted additional files with ability to promote alternative formats to book instead of deleting them

* refactor(util): use common code to resolve patter for entity and domain object

* feat(service): move additional files

* test(service): test move additional files along with book itself

* feat(ui/domain): add alternativeFormats and supplementaryFiles to book model

* feat(ui/domain): add download additional file method to book service

* refactor(api/domain): extract FileInfo interface with common fields

Allow to share the same interface thet is implemented by AdditionFile and Book

* feat(ui): show multiple download options

* feat(ui/domain): add delete additional file method to book service

* feat(ui): add delete additional file ui

* feat(ui): add additional-file-uploader.component

* feat(ui/domain): add uploadAdditionalFile to the service

* feat(ui): add Upload File menu item

* feat(ui): show supplementary files in download menu item

* feat(ui): show supplementary files in delete file menu item

* feat(ui): book card allow to select single file to download or delete

* feat(api/domain): add scan mode and default book format to the library

* feat(ui): select scan mode and default book format

* feat(api): create/update library settings

* refactor(services): get processor based on scan mode

* feat(services): read all files if processor supports supplimentary files

* fix(services): detectNewBookPaths should check additional files as well

* feat(services): implement folder as book file processor

* test(service): add tests for FolderAsBookFileProcessor

* feat(services): allow follow links for search library files

* test(library): add tests for folder as book file processor

* refactor(library): use Path instead of String for directory path

* feat(library): sort directories before processing

* feat(library): reuse library file book type

* fix(library): do not add additional format if it is used in another book

* test(library): test same hashes files

* refactor(library): simplify FolderAsBookFileProcessor

* test(library): add test with deep folder structure

* test(library): add additional files to existing book

---------

Co-authored-by: Aditya Chandel <8075870+adityachandelgit@users.noreply.github.com>
2025-08-27 08:20:29 -06:00
Alexander Puzynia
b81a8d1422 Book additional files support (1/3) (#868)
* feat(api/model): add new entity BookAdditionalFileEntity

* feat(api/db): add book additional file repository

* feat(api/db): add migration

* test(api/db): add book additional file repository test

* test(api/db): add book additional file repository tests for hash uniqueness

* feat(api/domain): add support to additional file model

* feat(api): add additional files controller

* refactor(api): move addAdditionalFile to FileUploadService as uploadAdditionalFile method

* feat(service): search book by additional file

* feat(services): process deleted additional files with ability to promote alternative formats to book instead of deleting them

* refactor(util): use common code to resolve patter for entity and domain object

* feat(service): move additional files

* test(service): test move additional files along with book itself
2025-08-27 08:11:04 -06:00
aditya.chandel
19e1b75325 Fix server.port error 2025-08-25 16:17:10 -06:00
Aditya Chandel
fe8925f65e feat(kobo): add optional EPUB → KEpub conversion for Kobo downloads (#969) 2025-08-23 20:51:04 -06:00
aditya.chandel
6e6861b329 Kobo Phase 1: Enable Book Transfer/Sync 2025-08-22 22:57:03 -06:00
aditya.chandel
a092d629c9 Refine bookdrop results and related websocket events 2025-08-16 10:18:33 -06:00
aditya.chandel
c75c4dce5b OIDC Authentication Revamp: Smarter Init, Error Handling, and Fallback 2025-08-15 21:02:33 -06:00
aditya.chandel
44541849ff Enhance OIDC flow for better error handling and misconfiguration recovery 2025-08-15 15:44:24 -06:00
aditya.chandel
628a6c7bcf Restrict web-socket connections to the initiating user 2025-08-15 13:45:00 -06:00
aditya.chandel
3ab52de171 Refactor Bookdrop file processing to prevent orphan target files on error 2025-08-14 18:22:41 -06:00
aditya.chandel
7cea853756 Expose safe public app settings via dedicated endpoint 2025-08-14 18:19:49 -06:00
aditya.chandel
77e02ac7f9 Cover lock not working in metadata picker and editor 2025-08-14 11:41:22 -06:00
aditya.chandel
6d7235731b Fix crash on Collection.remove() in Bookdrop import workflow 2025-08-14 10:20:10 -06:00
aditya.chandel
b3af1723df Polish main dashboard UI and improve aesthetics 2025-08-13 17:41:49 -06:00
aditya.chandel
800cc4054f Support adding private, user-specific notes to books 2025-08-13 15:54:45 -06:00
aditya.chandel
c660497e0b Implement public review fetching from metadata providers 2025-08-13 13:02:53 -06:00
astrodad
b4e95a3cc1 Feature/update date finished integration (#895)
* Fixed issue with not updating the book finished date when updating read status
* Added ability to set a date finished after setting the book status to Read.

---------

Co-authored-by: Aditya Chandel <8075870+adityachandelgit@users.noreply.github.com>
2025-08-12 14:42:51 -06:00
aditya.chandel
c3b2940f36 Enhanced book "Finished On" functionality 2025-08-11 22:23:07 -06:00
astrodad
53aae8bb42 Feature/update date finished date (#873)
* Fixed issue with not updating the book finished date when updating read status
* Added ability to set a date finished after setting the book status to Read.

---------

Co-authored-by: Aditya Chandel <8075870+adityachandelgit@users.noreply.github.com>
2025-08-11 21:33:47 -06:00
aditya.chandel
dd7453fae1 Implement file moving based on library naming rules, falling back to app defaults 2025-08-11 16:59:42 -06:00
aditya.chandel
978bd05b1e Add per-library customizable file naming patterns 2025-08-10 11:27:28 -06:00
aditya.chandel
b1508493cf Implement live progress tracking for bulk metadata refresh (remaining books, status, cancel support) 2025-08-10 00:28:20 -06:00
aditya.chandel
2c078716bf Fix memory leak in bulk metadata refresh process 2025-08-09 18:30:29 -06:00
aditya.chandel
f794babdb4 Improve support component 2025-08-09 09:40:55 -06:00
aditya.chandel
e9cbc36768 Update Frontend and Backend Dependencies - August 2025 2025-08-09 01:04:18 -06:00
aditya.chandel
fb5a70c7e7 Allow book upload GUI to upload into Bookdrop 2025-08-09 00:50:50 -06:00
astrodad
a2a0ec9e7c Fixed issue with not updating the book finished date when updating read status
Co-authored-by: Aditya Chandel <8075870+adityachandelgit@users.noreply.github.com>
2025-08-08 20:00:49 -06:00
aditya.chandel
850ecb0b0c Improve version checking 2025-08-08 19:54:58 -06:00
Aditya Chandel
9ae1c6e2dc Add koreader sync support for book progress tracking 2025-08-08 09:38:20 -06:00
Aditya Chandel
ac798d05b5 Enhance Comicvine metadata parsing and error handling (#835) 2025-08-06 14:23:51 -06:00
aditya.chandel
504c777eec Fix comicvine 2025-08-06 11:47:03 -06:00
Louis-André Labadie
7d006355c7 Feat: ForwardAuth user creation follows OIDC library attribution preferences (#805)
* ForwardAuth user provisioning: Assign default permissions when available

* Add forward auth mention in README + details in a separate doc

Add Forward Auth docs

* Fix: PermissionDeleteBooks → PermissionDeleteBook

---------

Co-authored-by: Aditya Chandel <8075870+adityachandelgit@users.noreply.github.com>
2025-08-06 11:30:46 -06:00
Rprasad2400
46f86deb24 Feature: Add Comicvine to metadata providers. (#804)
* added comcivine
* updated comicvine schema
* added comic vine support
* changed SQL changes
* fixed init provider bug
* updated changes for Flyway migration.

---------

Co-authored-by: Aditya Chandel <8075870+adityachandelgit@users.noreply.github.com>
2025-08-06 11:29:12 -06:00
aditya.chandel
225824b6f5 Enhance icon picker UI and usability 2025-08-05 17:53:41 -06:00
aditya.chandel
1edc5f21f4 fix: refresh magic shelves after moving book to muggle shelf to reflect read status 2025-08-05 14:24:04 -06:00
aditya.chandel
f69110c164 feat(bookdrop): add full pagination support with select-all and metadata caching
- Implemented backend pagination for Bookdrop file review
- Updated finalizeImport logic to support select-all with excluded IDs
- Handled partial metadata submission from frontend
- Refactored chunk processing and logging for clarity
- Enhanced frontend Bookdrop UI with paginated selection, metadata sync, and virtual scroll compatibility
- Improved UX for bulk finalize and discard actions
2025-08-05 12:34:44 -06:00