fix for issue #236

This commit is contained in:
Ricter Z 2022-05-02 17:01:30 +08:00
parent 443fcdc7da
commit 61945a6e97
4 changed files with 11 additions and 4 deletions

View File

@ -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',

View File

@ -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

View File

@ -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')

View File

@ -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: