mirror of
https://github.com/ciromattia/kcc
synced 2026-07-11 15:33:17 +00:00
Merge pull request #1384 from drshliapa/fix/912-preserve-comicinfo
add Keep ComicInfo.xml in CBZ output option
This commit is contained in:
@@ -293,6 +293,7 @@ OUTPUT SETTINGS:
|
|||||||
-t TITLE, --title TITLE
|
-t TITLE, --title TITLE
|
||||||
Comic title [Default=filename or directory name]
|
Comic title [Default=filename or directory name]
|
||||||
--metadatatitle Write title using ComicInfo.xml or other embedded metadata. 0: Don't use Title from metadata 1: Combine Title with default schema 2: Use Title only [Default=0]
|
--metadatatitle Write title using ComicInfo.xml or other embedded metadata. 0: Don't use Title from metadata 1: Combine Title with default schema 2: Use Title only [Default=0]
|
||||||
|
--keepcomicinfo Keep any original ComicInfo.xml files [Default=0]
|
||||||
-a AUTHOR, --author AUTHOR
|
-a AUTHOR, --author AUTHOR
|
||||||
Author name [Default=KCC]
|
Author name [Default=KCC]
|
||||||
--language EPUB language [Default=en-US]
|
--language EPUB language [Default=en-US]
|
||||||
|
|||||||
+916
-904
File diff suppressed because it is too large
Load Diff
@@ -346,6 +346,8 @@ class WorkerThread(QThread):
|
|||||||
options.metadatatitle = 1
|
options.metadatatitle = 1
|
||||||
elif GUI.metadataTitleBox.checkState() == Qt.CheckState.Checked:
|
elif GUI.metadataTitleBox.checkState() == Qt.CheckState.Checked:
|
||||||
options.metadatatitle = 2
|
options.metadatatitle = 2
|
||||||
|
if GUI.keepComicInfoBox.isChecked():
|
||||||
|
options.keepcomicinfo = True
|
||||||
if GUI.deleteBox.isChecked():
|
if GUI.deleteBox.isChecked():
|
||||||
options.delete = True
|
options.delete = True
|
||||||
if GUI.tempDirBox.isChecked():
|
if GUI.tempDirBox.isChecked():
|
||||||
@@ -1109,6 +1111,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
|
|||||||
'smartCoverCropBox': GUI.smartCoverCropBox.checkState(),
|
'smartCoverCropBox': GUI.smartCoverCropBox.checkState(),
|
||||||
'coverFillBox': GUI.coverFillBox.checkState(),
|
'coverFillBox': GUI.coverFillBox.checkState(),
|
||||||
'metadataTitleBox': GUI.metadataTitleBox.checkState(),
|
'metadataTitleBox': GUI.metadataTitleBox.checkState(),
|
||||||
|
'keepComicInfoBox': GUI.keepComicInfoBox.checkState(),
|
||||||
'mozJpegBox': GUI.mozJpegBox.checkState(),
|
'mozJpegBox': GUI.mozJpegBox.checkState(),
|
||||||
'forcePngRgbBox': GUI.forcePngRgbBox.checkState(),
|
'forcePngRgbBox': GUI.forcePngRgbBox.checkState(),
|
||||||
'webpBox': GUI.webpBox.checkState(),
|
'webpBox': GUI.webpBox.checkState(),
|
||||||
|
|||||||
+678
-667
File diff suppressed because it is too large
Load Diff
@@ -1104,6 +1104,7 @@ def getOutputFilename(srcpath, wantedname, ext, tomenumber):
|
|||||||
def getMetadata(path, originalpath):
|
def getMetadata(path, originalpath):
|
||||||
xmlPath = os.path.join(path, 'ComicInfo.xml')
|
xmlPath = os.path.join(path, 'ComicInfo.xml')
|
||||||
options.comicinfo_chapters = []
|
options.comicinfo_chapters = []
|
||||||
|
options.comicinfo_xml = None
|
||||||
options.summary = ''
|
options.summary = ''
|
||||||
titleSuffix = ''
|
titleSuffix = ''
|
||||||
options.volume = ''
|
options.volume = ''
|
||||||
@@ -1160,6 +1161,10 @@ def getMetadata(path, originalpath):
|
|||||||
options.summary = xml.data['Summary']
|
options.summary = xml.data['Summary']
|
||||||
if xml.data['Series']:
|
if xml.data['Series']:
|
||||||
options.series = xml.data['Series']
|
options.series = xml.data['Series']
|
||||||
|
# ComicInfo.xml in output may break readers like the Kobo native CBZ reader
|
||||||
|
if options.keepcomicinfo and options.format == 'CBZ':
|
||||||
|
with open(xmlPath, 'rb') as f:
|
||||||
|
options.comicinfo_xml = f.read()
|
||||||
os.remove(xmlPath)
|
os.remove(xmlPath)
|
||||||
|
|
||||||
if originalpath.lower().endswith('.pdf'):
|
if originalpath.lower().endswith('.pdf'):
|
||||||
@@ -1485,6 +1490,8 @@ def makeParser():
|
|||||||
output_options.add_argument("--metadatatitle", type=int, dest="metadatatitle", default=0,
|
output_options.add_argument("--metadatatitle", type=int, dest="metadatatitle", default=0,
|
||||||
help="Write title using ComicInfo.xml or other embedded metadata. 1: Combine Title with default schema "
|
help="Write title using ComicInfo.xml or other embedded metadata. 1: Combine Title with default schema "
|
||||||
"2: Use Title only")
|
"2: Use Title only")
|
||||||
|
output_options.add_argument("--keepcomicinfo", type=int, dest="keepcomicinfo", default=0,
|
||||||
|
help="Keep any original ComicInfo.xml files")
|
||||||
output_options.add_argument("-a", "--author", action="store", dest="author", default="defaultauthor",
|
output_options.add_argument("-a", "--author", action="store", dest="author", default="defaultauthor",
|
||||||
help="Author name [Default=KCC]")
|
help="Author name [Default=KCC]")
|
||||||
output_options.add_argument("--language", action="store", dest="language", default="en-US",
|
output_options.add_argument("--language", action="store", dest="language", default="en-US",
|
||||||
@@ -1915,6 +1922,9 @@ def makeBook(source, qtgui=None, job_progress=''):
|
|||||||
filepath.append(getOutputFilename(source, options.output, '.cbz', ''))
|
filepath.append(getOutputFilename(source, options.output, '.cbz', ''))
|
||||||
if cover and cover.smartcover:
|
if cover and cover.smartcover:
|
||||||
cover.save_to_folder(os.path.join(tome, 'OEBPS', 'Images', '##cover.jpg'), tomeNumber, len(tomes))
|
cover.save_to_folder(os.path.join(tome, 'OEBPS', 'Images', '##cover.jpg'), tomeNumber, len(tomes))
|
||||||
|
if options.comicinfo_xml:
|
||||||
|
with open(os.path.join(tome, 'OEBPS', 'Images', 'ComicInfo.xml'), 'wb') as xmlOutput:
|
||||||
|
xmlOutput.write(options.comicinfo_xml)
|
||||||
makeZIP(filepath[-1], os.path.join(tome, "OEBPS", "Images"), job_progress)
|
makeZIP(filepath[-1], os.path.join(tome, "OEBPS", "Images"), job_progress)
|
||||||
elif options.format == 'PDF':
|
elif options.format == 'PDF':
|
||||||
print(f"{job_progress}Creating PDF file with PyMuPDF...")
|
print(f"{job_progress}Creating PDF file with PyMuPDF...")
|
||||||
|
|||||||
Reference in New Issue
Block a user