parser.add_option('--file', '-f', type='string', dest='file', action='store', help='read gallery IDs from file.')
parser.add_option('--format', type='string', dest='name_format', action='store',
help='format the saved folder name', default='[%i][%a][%t]')
+ parser.add_option('--dry-run', '-r', action='store_true', dest='dryrun', help='Dry run, skip file download.')
# generate options
parser.add_option('--html', dest='html_viewer', action='store_true',
logger.critical('Maximum number of used threads is 15')
exit(1)
+ if args.dryrun and (args.is_cbz or args.is_pdf):
+ logger.critical('Cannot generate PDF or CBZ during dry-run')
+ exit(1)
+
return args
timeout=options.timeout, delay=options.delay)
for doujinshi in doujinshi_list:
+ if not options.dryrun:
+ doujinshi.downloader = downloader
+ doujinshi.download()
- doujinshi.downloader = downloader
- doujinshi.download()
if options.is_save_download_history:
with DB() as db:
db.add_one(doujinshi.id)
else:
doujinshi_dir = '.'
+ if not os.path.exists(doujinshi_dir):
+ logger.warning('Path \'{0}\' does not exist, creating.'.format(doujinshi_dir))
+ try:
+ os.makedirs(doujinshi_dir)
+ except EnvironmentError as e:
+ logger.critical('{0}'.format(str(e)))
+
file_list = os.listdir(doujinshi_dir)
file_list.sort()
def generate_pdf(output_dir='.', doujinshi_obj=None, rm_origin_dir=False):
try:
import img2pdf
-
+
"""Write images to a PDF file using img2pdf."""
if doujinshi_obj is not None:
doujinshi_dir = os.path.join(output_dir, doujinshi_obj.filename)
shutil.rmtree(doujinshi_dir, ignore_errors=True)
logger.log(15, 'PDF file has been written to \'{0}\''.format(doujinshi_dir))
-
+
except ImportError:
logger.error("Please install img2pdf package by using pip.")
It used to be a whitelist approach allowed only alphabet and a part of symbols.
but most doujinshi's names include Japanese 2-byte characters and these was rejected.
so it is using blacklist approach now.
- if filename include forbidden characters (\'/:,;*?"<>|) ,it replace space character(' ').
+ if filename include forbidden characters (\'/:,;*?"<>|) ,it replace space character(' ').
"""
# maybe you can use `--format` to select a suitable filename
ban_chars = '\\\'/:,;*?"<>|\t'