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>
This commit is contained in:
Ruben GM
2025-09-10 00:16:29 +10:00
committed by GitHub
parent 0fcf4d7813
commit 2e537bb2a1
18 changed files with 1951 additions and 312 deletions

View File

@@ -60,6 +60,9 @@ dependencies {
implementation 'com.github.jai-imageio:jai-imageio-jpeg2000:1.4.0'
implementation 'io.documentnode:epub4j-core:4.2.2'
// --- UNRAR Support ---
implementation 'com.github.junrar:junrar:7.5.5'
// --- JSON & Web Scraping ---
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.19.2'
implementation 'org.jsoup:jsoup:1.21.1'
@@ -71,7 +74,6 @@ dependencies {
// --- API Documentation ---
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.9'
implementation 'org.apache.commons:commons-compress:1.28.0'
implementation 'com.github.junrar:junrar:7.5.5'
implementation 'org.apache.commons:commons-text:1.14.0'
// --- Test Dependencies ---