mirror of
https://github.com/RicterZ/nhentai.git
synced 2026-04-08 10:40:22 +02:00
fix: skip post-processing when CBZ/PDF already exists, still update history DB
When check_if_need_download() returns False (CBZ/PDF file already exists), skip all post-processing steps that require doujinshi_dir to be present (serializer, generate_doc, generate_html, rm_origin_dir, etc.), as the directory may have been removed by --rm-origin-dir on a previous run. However, still write to the download history DB unconditionally so that records lost due to DB corruption/reset are recovered on the next run. Fixes #429 Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
__version__ = '2.0.7'
|
||||
__version__ = '2.0.8'
|
||||
__author__ = 'RicterZ'
|
||||
__email__ = 'ricterzheng@gmail.com'
|
||||
|
||||
@@ -129,7 +129,8 @@ def main():
|
||||
doujinshi = doujinshi_model.doujinshi
|
||||
doujinshi.downloader = downloader
|
||||
|
||||
if doujinshi.check_if_need_download(options):
|
||||
need_download = doujinshi.check_if_need_download(options)
|
||||
if need_download:
|
||||
doujinshi.download()
|
||||
else:
|
||||
logger.info(
|
||||
@@ -138,14 +139,20 @@ def main():
|
||||
|
||||
doujinshi_dir = os.path.join(options.output_dir, doujinshi.filename)
|
||||
|
||||
if options.generate_metadata:
|
||||
serializer.write_all(meta, doujinshi_dir)
|
||||
logger.log(16, f'Metadata files have been written to "{doujinshi_dir}"')
|
||||
|
||||
# If skipped (CBZ/PDF already exists), treat as already downloaded:
|
||||
# - skip all post-processing that requires doujinshi_dir to exist
|
||||
# - but still write to history DB in case the record was lost
|
||||
if options.is_save_download_history:
|
||||
with DB() as db:
|
||||
db.add_one(doujinshi.id)
|
||||
|
||||
if not need_download:
|
||||
continue
|
||||
|
||||
if options.generate_metadata:
|
||||
serializer.write_all(meta, doujinshi_dir)
|
||||
logger.log(16, f'Metadata files have been written to "{doujinshi_dir}"')
|
||||
|
||||
if not options.is_nohtml:
|
||||
generate_html(options.output_dir, doujinshi, template=template)
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[tool.poetry]
|
||||
name = "doujinshi-dl"
|
||||
version = "2.0.7"
|
||||
version = "2.0.8"
|
||||
description = "doujinshi downloader"
|
||||
authors = ["Ricter Z <ricterzheng@gmail.com>"]
|
||||
license = "MIT"
|
||||
|
||||
Reference in New Issue
Block a user