diff --git a/README.rst b/README.rst index 93042c6..fb9ab9c 100644 --- a/README.rst +++ b/README.rst @@ -200,6 +200,8 @@ Other options: -P, --pdf generate PDF file --rm-origin-dir remove downloaded doujinshi dir when generated CBZ or PDF file + --move-to-folder remove files in doujinshi dir then move new file to folder + when generated CBZ or PDF file --meta generate a metadata file in doujinshi format --regenerate-cbz regenerate the cbz file if exists diff --git a/nhentai/cmdline.py b/nhentai/cmdline.py index ad61f3e..c71336f 100644 --- a/nhentai/cmdline.py +++ b/nhentai/cmdline.py @@ -112,6 +112,8 @@ def cmd_parser(): help='generate PDF file') parser.add_option('--rm-origin-dir', dest='rm_origin_dir', action='store_true', default=False, help='remove downloaded doujinshi dir when generated CBZ or PDF file') + parser.add_option('--move-to-folder', dest='move_to_folder', action='store_true', default=False, + help='remove files in doujinshi dir then move new file to folder 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, diff --git a/nhentai/command.py b/nhentai/command.py index 04b2e16..300136d 100644 --- a/nhentai/command.py +++ b/nhentai/command.py @@ -96,9 +96,9 @@ def main(): if not options.is_nohtml and not options.is_cbz and not options.is_pdf: generate_html(options.output_dir, doujinshi, template=constant.CONFIG['template']) elif options.is_cbz: - generate_cbz(options.output_dir, doujinshi, options.rm_origin_dir) + generate_cbz(options.output_dir, doujinshi, options.rm_origin_dir, True, options.move_to_folder) elif options.is_pdf: - generate_pdf(options.output_dir, doujinshi, options.rm_origin_dir) + generate_pdf(options.output_dir, doujinshi, options.rm_origin_dir, options.move_to_folder) if options.main_viewer: generate_main_html(options.output_dir) diff --git a/nhentai/utils.py b/nhentai/utils.py index 8a9bb51..c631113 100644 --- a/nhentai/utils.py +++ b/nhentai/utils.py @@ -163,7 +163,7 @@ def generate_main_html(output_dir='./'): logger.warning(f'Writing Main Viewer failed ({e})') -def generate_cbz(output_dir='.', doujinshi_obj=None, rm_origin_dir=False, write_comic_info=True): +def generate_cbz(output_dir='.', doujinshi_obj=None, rm_origin_dir=False, write_comic_info=True, move_to_folder=False): if doujinshi_obj is not None: doujinshi_dir = os.path.join(output_dir, doujinshi_obj.filename) if write_comic_info: @@ -185,10 +185,21 @@ def generate_cbz(output_dir='.', doujinshi_obj=None, rm_origin_dir=False, write_ if rm_origin_dir: shutil.rmtree(doujinshi_dir, ignore_errors=True) + if move_to_folder: + for filename in os.listdir(doujinshi_dir): + file_path = os.path.join(doujinshi_dir, filename) + if os.path.isfile(file_path): + try: + os.remove(file_path) + except Exception as e: + print(f"Error deleting file: {e}") + + shutil.move(cbz_filename, doujinshi_dir) + logger.log(16, f'Comic Book CBZ file has been written to "{doujinshi_dir}"') -def generate_pdf(output_dir='.', doujinshi_obj=None, rm_origin_dir=False): +def generate_pdf(output_dir='.', doujinshi_obj=None, rm_origin_dir=False, move_to_folder=False): try: import img2pdf @@ -216,6 +227,17 @@ def generate_pdf(output_dir='.', doujinshi_obj=None, rm_origin_dir=False): if rm_origin_dir: shutil.rmtree(doujinshi_dir, ignore_errors=True) + if move_to_folder: + for filename in os.listdir(doujinshi_dir): + file_path = os.path.join(doujinshi_dir, filename) + if os.path.isfile(file_path): + try: + os.remove(file_path) + except Exception as e: + print(f"Error deleting file: {e}") + + shutil.move(pdf_filename, doujinshi_dir) + logger.log(16, f'PDF file has been written to "{doujinshi_dir}"') except ImportError: