]> git.lizzy.rs Git - nhentai.git/commitdiff
Merge pull request #214 from lleene/master
authorRicter Zheng <RicterZheng@gmail.com>
Thu, 3 Jun 2021 00:00:18 +0000 (08:00 +0800)
committerGitHub <noreply@github.com>
Thu, 3 Jun 2021 00:00:18 +0000 (08:00 +0800)
Add dryrun option to command line interface

nhentai/cmdline.py
nhentai/command.py
nhentai/utils.py

index 67140cd950a7f2f70e2e281d559020b8da038761..c7246d20d1e23f2425b726e5eaa8b363db09691c 100644 (file)
@@ -89,6 +89,7 @@ def cmd_parser():
     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',
@@ -214,4 +215,8 @@ def cmd_parser():
         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
index bc987fb8852390a6d705e7205be26c2842d6a9f3..92b6793e8a950d2b9b780bf46d168266baac024c 100644 (file)
@@ -89,9 +89,10 @@ def main():
                                 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)
index 45190482d5267c9896b33bf1ffe29fea7e7dcca0..3364d0d4b675b40b6a13141d47bf9cb170dd18c0 100644 (file)
@@ -74,6 +74,13 @@ def generate_html(output_dir='.', doujinshi_obj=None, template='default'):
     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()
 
@@ -198,7 +205,7 @@ def generate_cbz(output_dir='.', doujinshi_obj=None, rm_origin_dir=False, write_
 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)
@@ -224,7 +231,7 @@ def generate_pdf(output_dir='.', doujinshi_obj=None, rm_origin_dir=False):
             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.")