diff --git a/nhentai/cmdline.py b/nhentai/cmdline.py index fd74c3d..5435c06 100644 --- a/nhentai/cmdline.py +++ b/nhentai/cmdline.py @@ -109,6 +109,9 @@ def cmd_parser(): help='format the saved folder name', default='[%i][%a][%t]') parser.add_option('--dry-run', action='store_true', dest='dryrun', help='Dry run, skip file download') + parser.add_option('--no-filename-padding', action='store_true', dest='no_filename_padding', + default=False, help='no padding in the images filename, such as \'001.jpg\'') + # generate options parser.add_option('--html', dest='html_viewer', action='store_true', help='generate a html viewer at current directory') diff --git a/nhentai/command.py b/nhentai/command.py index 146c114..828c364 100644 --- a/nhentai/command.py +++ b/nhentai/command.py @@ -86,7 +86,8 @@ def main(): if not options.is_show: downloader = Downloader(path=options.output_dir, threads=options.threads, timeout=options.timeout, delay=options.delay, - retry=options.retry, exit_on_fail=options.exit_on_fail) + retry=options.retry, exit_on_fail=options.exit_on_fail, + no_filename_padding=options.no_filename_padding) for doujinshi_id in doujinshi_ids: doujinshi_info = doujinshi_parser(doujinshi_id) diff --git a/nhentai/downloader.py b/nhentai/downloader.py index b17619a..438a994 100644 --- a/nhentai/downloader.py +++ b/nhentai/downloader.py @@ -34,7 +34,8 @@ def download_callback(result): class Downloader(Singleton): - def __init__(self, path='', threads=5, timeout=30, delay=0, retry=3, exit_on_fail=False): + def __init__(self, path='', threads=5, timeout=30, delay=0, retry=3, exit_on_fail=False, + no_filename_padding=False): self.threads = threads self.path = str(path) self.timeout = timeout @@ -43,6 +44,7 @@ class Downloader(Singleton): self.exit_on_fail = exit_on_fail self.folder = None self.semaphore = None + self.no_filename_padding = no_filename_padding async def fiber(self, tasks): self.semaphore = asyncio.Semaphore(self.threads) @@ -70,7 +72,11 @@ class Downloader(Singleton): filename = filename if filename else os.path.basename(urlparse(url).path) base_filename, extension = os.path.splitext(filename) - filename = base_filename.zfill(length) + extension + + if not self.no_filename_padding: + filename = base_filename.zfill(length) + extension + else: + filename = base_filename + extension save_file_path = os.path.join(self.folder, filename)