From: Ricter Z Date: Mon, 2 May 2022 09:01:30 +0000 (+0800) Subject: fix for issue #236 X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=61945a6e978ba687157093e359ae6067ab96d350;p=nhentai.git fix for issue #236 --- diff --git a/nhentai/cmdline.py b/nhentai/cmdline.py index 8cca43d..0b5a421 100644 --- a/nhentai/cmdline.py +++ b/nhentai/cmdline.py @@ -106,6 +106,8 @@ def cmd_parser(): help='remove downloaded doujinshi dir when generated CBZ or PDF file.') parser.add_option('--meta', dest='generate_metadata', action='store_true', help='generate a metadata file in doujinshi format') + parser.add_option('--regenerate-cbz', dest='regenerate_cbz', action='store_true', default=False, + help='regenerate the cbz file if exists') # nhentai options parser.add_option('--cookie', type='str', dest='cookie', action='store', diff --git a/nhentai/command.py b/nhentai/command.py index e514144..2995fee 100644 --- a/nhentai/command.py +++ b/nhentai/command.py @@ -91,7 +91,7 @@ def main(): for doujinshi in doujinshi_list: if not options.dryrun: doujinshi.downloader = downloader - doujinshi.download() + doujinshi.download(regenerate_cbz=options.regenerate_cbz) if options.generate_metadata: table = doujinshi.table diff --git a/nhentai/doujinshi.py b/nhentai/doujinshi.py index b7d03d4..271ec74 100644 --- a/nhentai/doujinshi.py +++ b/nhentai/doujinshi.py @@ -72,7 +72,7 @@ class Doujinshi(object): logger.info(u'Print doujinshi information of {0}\n{1}'.format(self.id, tabulate(self.table))) - def download(self): + def download(self, regenerate_cbz=False): logger.info('Starting to download doujinshi: %s' % self.name) if self.downloader: download_queue = [] @@ -82,7 +82,7 @@ class Doujinshi(object): for i in range(1, min(self.pages, len(self.ext)) + 1): download_queue.append('%s/%d/%d.%s' % (IMAGE_URL, int(self.img_id), i, self.ext[i - 1])) - self.downloader.download(download_queue, self.filename) + self.downloader.download(download_queue, self.filename, regenerate_cbz=regenerate_cbz) else: logger.critical('Downloader has not been loaded') diff --git a/nhentai/downloader.py b/nhentai/downloader.py index f0aa9fd..b0b6a6a 100644 --- a/nhentai/downloader.py +++ b/nhentai/downloader.py @@ -113,13 +113,18 @@ class Downloader(Singleton): else: logger.log(15, '{0} downloaded successfully'.format(data)) - def download(self, queue, folder=''): + def download(self, queue, folder='', regenerate_cbz=False): if not isinstance(folder, text): folder = str(folder) if self.path: folder = os.path.join(self.path, folder) + if os.path.exists(folder + '.cbz'): + if not regenerate_cbz: + logger.warning('CBZ file \'{}.cbz\' exists, ignored download request'.format(folder)) + return + if not os.path.exists(folder): logger.warning('Path \'{0}\' does not exist, creating.'.format(folder)) try: