mirror of
https://github.com/RicterZ/nhentai.git
synced 2025-04-19 18:31:24 +02:00
fix for issue #236
This commit is contained in:
parent
443fcdc7da
commit
61945a6e97
@ -106,6 +106,8 @@ def cmd_parser():
|
|||||||
help='remove downloaded doujinshi dir when generated CBZ or PDF file.')
|
help='remove downloaded doujinshi dir when generated CBZ or PDF file.')
|
||||||
parser.add_option('--meta', dest='generate_metadata', action='store_true',
|
parser.add_option('--meta', dest='generate_metadata', action='store_true',
|
||||||
help='generate a metadata file in doujinshi format')
|
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
|
# nhentai options
|
||||||
parser.add_option('--cookie', type='str', dest='cookie', action='store',
|
parser.add_option('--cookie', type='str', dest='cookie', action='store',
|
||||||
|
@ -91,7 +91,7 @@ def main():
|
|||||||
for doujinshi in doujinshi_list:
|
for doujinshi in doujinshi_list:
|
||||||
if not options.dryrun:
|
if not options.dryrun:
|
||||||
doujinshi.downloader = downloader
|
doujinshi.downloader = downloader
|
||||||
doujinshi.download()
|
doujinshi.download(regenerate_cbz=options.regenerate_cbz)
|
||||||
|
|
||||||
if options.generate_metadata:
|
if options.generate_metadata:
|
||||||
table = doujinshi.table
|
table = doujinshi.table
|
||||||
|
@ -72,7 +72,7 @@ class Doujinshi(object):
|
|||||||
|
|
||||||
logger.info(u'Print doujinshi information of {0}\n{1}'.format(self.id, tabulate(self.table)))
|
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)
|
logger.info('Starting to download doujinshi: %s' % self.name)
|
||||||
if self.downloader:
|
if self.downloader:
|
||||||
download_queue = []
|
download_queue = []
|
||||||
@ -82,7 +82,7 @@ class Doujinshi(object):
|
|||||||
for i in range(1, min(self.pages, len(self.ext)) + 1):
|
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]))
|
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:
|
else:
|
||||||
logger.critical('Downloader has not been loaded')
|
logger.critical('Downloader has not been loaded')
|
||||||
|
|
||||||
|
@ -113,13 +113,18 @@ class Downloader(Singleton):
|
|||||||
else:
|
else:
|
||||||
logger.log(15, '{0} downloaded successfully'.format(data))
|
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):
|
if not isinstance(folder, text):
|
||||||
folder = str(folder)
|
folder = str(folder)
|
||||||
|
|
||||||
if self.path:
|
if self.path:
|
||||||
folder = os.path.join(self.path, folder)
|
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):
|
if not os.path.exists(folder):
|
||||||
logger.warning('Path \'{0}\' does not exist, creating.'.format(folder))
|
logger.warning('Path \'{0}\' does not exist, creating.'.format(folder))
|
||||||
try:
|
try:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user