From 0df51c83e57b3a72bd9c5494ea421fb4e7d1c5ca Mon Sep 17 00:00:00 2001 From: root Date: Sun, 30 Dec 2018 14:06:15 +0800 Subject: [PATCH] change output filename --- nhentai/doujinshi.py | 11 ++++++----- nhentai/downloader.py | 1 + nhentai/parser.py | 2 +- nhentai/utils.py | 10 ++++------ requirements.txt | 1 - 5 files changed, 12 insertions(+), 13 deletions(-) diff --git a/nhentai/doujinshi.py b/nhentai/doujinshi.py index 30eca39..37bc85a 100644 --- a/nhentai/doujinshi.py +++ b/nhentai/doujinshi.py @@ -17,6 +17,7 @@ EXT_MAP = { class DoujinshiInfo(dict): def __init__(self, **kwargs): + print(kwargs) super(DoujinshiInfo, self).__init__(**kwargs) def __getattr__(self, item): @@ -36,6 +37,7 @@ 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)) def __repr__(self): return ''.format(self.name) @@ -44,10 +46,10 @@ class Doujinshi(object): table = [ ["Doujinshi", self.name], ["Subtitle", self.info.subtitle], - ["Characters", self.info.characters], - ["Authors", self.info.artists], + ["Characters", self.info.character], + ["Authors", self.info.artist], ["Language", self.info.language], - ["Tags", self.info.tags], + ["Tags", ', '.join(self.info.tag.keys())], ["URL", self.url], ["Pages", self.pages], ] @@ -59,8 +61,7 @@ class Doujinshi(object): download_queue = [] for i in range(len(self.ext)): download_queue.append('%s/%d/%d.%s' % (IMAGE_URL, int(self.img_id), i+1, EXT_MAP[self.ext[i]])) - - self.downloader.download(download_queue, format_filename('%s-%s' % (self.id, self.name[:200]))) + self.downloader.download(download_queue, self.filename) else: logger.critical('Downloader has not been loaded') diff --git a/nhentai/downloader.py b/nhentai/downloader.py index 9920d4a..8095c5f 100644 --- a/nhentai/downloader.py +++ b/nhentai/downloader.py @@ -29,6 +29,7 @@ class Downloader(Singleton): self.path = str(path) self.thread_count = thread self.threads = [] + self.thread_pool = None self.timeout = timeout def _download(self, url, folder='', filename='', retried=0): diff --git a/nhentai/parser.py b/nhentai/parser.py index eaf6de9..6f5323a 100644 --- a/nhentai/parser.py +++ b/nhentai/parser.py @@ -130,7 +130,7 @@ def doujinshi_parser(id_): elif tag_type not in doujinshi: doujinshi[tag_type] = tag['name'] else: - doujinshi[tag_type] += tag['name'] + doujinshi[tag_type] += ', ' + tag['name'] return doujinshi diff --git a/nhentai/utils.py b/nhentai/utils.py index 8c204cd..7ffe332 100644 --- a/nhentai/utils.py +++ b/nhentai/utils.py @@ -43,8 +43,7 @@ def generate_html(output_dir='.', doujinshi_obj=None): image_html = '' if doujinshi_obj is not None: - doujinshi_dir = os.path.join(output_dir, format_filename('%s-%s' % (doujinshi_obj.id, - doujinshi_obj.name))) + doujinshi_dir = os.path.join(output_dir, doujinshi_obj.filename) else: doujinshi_dir = '.' @@ -85,8 +84,7 @@ def generate_html(output_dir='.', doujinshi_obj=None): def generate_cbz(output_dir='.', doujinshi_obj=None, rm_origin_dir=False): if doujinshi_obj is not None: - doujinshi_dir = os.path.join(output_dir, format_filename('%s-%s' % (doujinshi_obj.id, - doujinshi_obj.name))) + doujinshi_dir = os.path.join(output_dir, doujinshi_obj.filename) cbz_filename = os.path.join(os.path.join(doujinshi_dir, '..'), '%s.cbz' % doujinshi_obj.id) else: cbz_filename = './doujinshi.cbz' @@ -118,9 +116,9 @@ and append a file extension like '.txt', so I avoid the potential of using an invalid filename. """ - valid_chars = "-_.() %s%s" % (string.ascii_letters, string.digits) + valid_chars = "-_.()[] %s%s" % (string.ascii_letters, string.digits) filename = ''.join(c for c in s if c in valid_chars) filename = filename.replace(' ', '_') # I don't like spaces in filenames. if len(filename) > 100: - filename = filename[:100] + filename = filename[:100] + '...]' return filename diff --git a/requirements.txt b/requirements.txt index ebc5967..fcd7d8f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,4 +3,3 @@ BeautifulSoup4>=4.0.0 threadpool>=1.2.7 tabulate>=0.7.5 future>=0.15.2 -threadpool==1.3.2