Fix cover handling on upload formats

This commit is contained in:
Ozzie Isaacs
2024-08-18 10:12:04 +02:00
parent 1eb77c9cd4
commit 0f9b5d08e9
5 changed files with 67 additions and 57 deletions

View File

@@ -77,24 +77,25 @@ except ImportError as e:
use_audio_meta = False
def process(tmp_file_path, original_file_name, original_file_extension, rar_executable):
def process(tmp_file_path, original_file_name, original_file_extension, rar_executable, no_cover=False):
meta = default_meta(tmp_file_path, original_file_name, original_file_extension)
extension_upper = original_file_extension.upper()
try:
if ".PDF" == extension_upper:
meta = pdf_meta(tmp_file_path, original_file_name, original_file_extension)
meta = pdf_meta(tmp_file_path, original_file_name, original_file_extension, no_cover)
elif extension_upper in [".KEPUB", ".EPUB"] and use_epub_meta is True:
meta = epub.get_epub_info(tmp_file_path, original_file_name, original_file_extension)
meta = epub.get_epub_info(tmp_file_path, original_file_name, original_file_extension, no_cover)
elif ".FB2" == extension_upper and use_fb2_meta is True:
meta = fb2.get_fb2_info(tmp_file_path, original_file_extension)
elif extension_upper in ['.CBZ', '.CBT', '.CBR', ".CB7"]:
meta = comic.get_comic_info(tmp_file_path,
original_file_name,
original_file_extension,
rar_executable)
rar_executable,
no_cover)
elif extension_upper in [".MP3", ".OGG", ".FLAC", ".WAV", ".AAC", ".AIFF", ".ASF", ".MP4",
".M4A", ".M4B", ".OGV", ".OPUS"] and use_audio_meta:
meta = audio.get_audio_file_info(tmp_file_path, original_file_extension, original_file_name)
meta = audio.get_audio_file_info(tmp_file_path, original_file_extension, original_file_name, no_cover)
except Exception as ex:
log.warning('cannot parse metadata, using default: %s', ex)
@@ -168,7 +169,7 @@ def parse_xmp(pdf_file):
}
def pdf_meta(tmp_file_path, original_file_name, original_file_extension):
def pdf_meta(tmp_file_path, original_file_name, original_file_extension, no_cover_processing):
doc_info = None
xmp_info = None
@@ -216,7 +217,7 @@ def pdf_meta(tmp_file_path, original_file_name, original_file_extension):
extension=original_file_extension,
title=title,
author=author,
cover=pdf_preview(tmp_file_path, original_file_name),
cover=pdf_preview(tmp_file_path, original_file_name) if not no_cover_processing else None,
description=subject,
tags=tags,
series="",
@@ -231,7 +232,7 @@ def pdf_preview(tmp_file_path, tmp_dir):
if use_generic_pdf_cover:
return None
try:
cover_file_name = os.path.splitext(tmp_file_path)[0] + ".cover.jpg"
cover_file_name = os.path.join(os.path.dirname(tmp_file_path), "cover.jpg")
with Image() as img:
img.options["pdf:use-cropbox"] = "true"
img.read(filename=tmp_file_path + '[0]', resolution=150)