From 2c61fd3a3fbe4c073f2777ea22e412ee72475211 Mon Sep 17 00:00:00 2001 From: RicterZ Date: Sat, 18 May 2019 22:13:23 +0800 Subject: [PATCH] add doujinshi folder formatter --- README.rst | 13 +++++++++++++ nhentai/cmdline.py | 2 +- nhentai/command.py | 2 +- nhentai/doujinshi.py | 11 ++++++++--- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/README.rst b/README.rst index 6eb59b9..0bed282 100644 --- a/README.rst +++ b/README.rst @@ -79,6 +79,19 @@ Download your favorites with delay: nhentai --favorites --download --delay 1 +Format output doujinshi folder name: + +.. code-block:: bash + nhentai --id 261100 --format '[%i]%s' + + +Supported doujinshi folder formatter: + +- %i: Doujinshi id +- %t: Doujinshi name +- %s: Doujinshi subtitle (translated name) +- %a: Doujinshi authors' name + Other options: diff --git a/nhentai/cmdline.py b/nhentai/cmdline.py index 357c143..579c514 100644 --- a/nhentai/cmdline.py +++ b/nhentai/cmdline.py @@ -72,7 +72,7 @@ def cmd_parser(): help='uses a proxy, for example: http://127.0.0.1:1080') 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][%n]') + help='format the saved folder name', default='[%i][%a][%t]') # generate options parser.add_option('--html', dest='html_viewer', action='store_true', diff --git a/nhentai/command.py b/nhentai/command.py index 8d43552..e20c2b8 100644 --- a/nhentai/command.py +++ b/nhentai/command.py @@ -48,7 +48,7 @@ def main(): if options.delay: time.sleep(options.delay) doujinshi_info = doujinshi_parser(id_) - doujinshi_list.append(Doujinshi(**doujinshi_info)) + doujinshi_list.append(Doujinshi(name_format=options.name_format, **doujinshi_info)) if not options.is_show: downloader = Downloader(path=options.output_dir, diff --git a/nhentai/doujinshi.py b/nhentai/doujinshi.py index 88e0925..0ee0598 100644 --- a/nhentai/doujinshi.py +++ b/nhentai/doujinshi.py @@ -27,7 +27,7 @@ class DoujinshiInfo(dict): class Doujinshi(object): - def __init__(self, name=None, id=None, img_id=None, ext='', pages=0, **kwargs): + def __init__(self, name=None, id=None, img_id=None, ext='', pages=0, name_format='[%i][%a][%t]', **kwargs): self.name = name self.id = id self.img_id = img_id @@ -36,7 +36,12 @@ class Doujinshi(object): self.downloader = None self.url = '%s/%d' % (DETAIL_URL, self.id) self.info = DoujinshiInfo(**kwargs) - self.filename = format_filename('[%s][%s][%s]' % (self.id, self.info.artist, self.name)) + + name_format = name_format.replace('%i', str(self.id)) + name_format = name_format.replace('%a', self.info.artists) + name_format = name_format.replace('%t', self.name) + name_format = name_format.replace('%s', self.info.subtitle) + self.filename = name_format def __repr__(self): return ''.format(self.name) @@ -46,7 +51,7 @@ class Doujinshi(object): ["Doujinshi", self.name], ["Subtitle", self.info.subtitle], ["Characters", self.info.character], - ["Authors", self.info.artist], + ["Authors", self.info.artists], ["Language", self.info.language], ["Tags", self.info.tags], ["URL", self.url],