diff --git a/nhentai/__init__.py b/nhentai/__init__.py index 3b21881..5e7d006 100644 --- a/nhentai/__init__.py +++ b/nhentai/__init__.py @@ -1,3 +1,3 @@ -__version__ = '0.2.16' +__version__ = '0.2.17' __author__ = 'RicterZ' __email__ = 'ricterzheng@gmail.com' diff --git a/nhentai/downloader.py b/nhentai/downloader.py index 5555d10..d98673a 100644 --- a/nhentai/downloader.py +++ b/nhentai/downloader.py @@ -41,20 +41,27 @@ class Downloader(Singleton): extension))) return 1, url + response = None with open(os.path.join(folder, base_filename.zfill(3) + extension), "wb") as f: - i=0 - while i<10: + i = 0 + while i < 10: try: response = request('get', url, stream=True, timeout=self.timeout) + if response.status_code != 200: + raise NhentaiImageNotExistException + + except NhentaiImageNotExistException as e: + raise e + except Exception as e: - i+=1 - if not i<10: + i += 1 + if not i < 10: logger.critical(str(e)) return 0, None continue + break - if response.status_code != 200: - raise NhentaiImageNotExistException + length = response.headers.get('content-length') if length is None: f.write(response.content) @@ -96,6 +103,9 @@ class Downloader(Singleton): if self.path: folder = os.path.join(self.path, folder) + if len(folder) > 100: + folder = folder[:100] + if not os.path.exists(folder): logger.warn('Path \'{0}\' does not exist, creating.'.format(folder)) try: