From b3f25875d0aa6f537f43259e6c64e4b017d0d566 Mon Sep 17 00:00:00 2001 From: Ricter Z Date: Fri, 2 Oct 2020 01:32:18 +0800 Subject: [PATCH] fix bug on mac #126 --- nhentai/downloader.py | 13 +++++-------- nhentai/parser.py | 1 - 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/nhentai/downloader.py b/nhentai/downloader.py index 2d9a0f4..f11bb60 100644 --- a/nhentai/downloader.py +++ b/nhentai/downloader.py @@ -5,11 +5,10 @@ import multiprocessing import signal from future.builtins import str as text +import sys import os import requests -import threadpool import time -import multiprocessing as mp try: from urllib.parse import urlparse @@ -18,10 +17,10 @@ except ImportError: from nhentai.logger import logger from nhentai.parser import request -from nhentai.utils import Singleton, signal_handler +from nhentai.utils import Singleton requests.packages.urllib3.disable_warnings() -semaphore = mp.Semaphore() +semaphore = multiprocessing.Semaphore(1) class NHentaiImageNotExistException(Exception): @@ -133,16 +132,14 @@ class Downloader(Singleton): queue = [(self, url, folder) for url in queue] pool = multiprocessing.Pool(self.size, init_worker) - - for item in queue: - pool.apply_async(download_wrapper, args=item, callback=self._download_callback) + [pool.apply_async(download_wrapper, args=item) for item in queue] pool.close() pool.join() def download_wrapper(obj, url, folder=''): - if semaphore.get_value(): + if sys.platform == 'darwin' or semaphore.get_value(): return Downloader.download_(obj, url=url, folder=folder) else: return -3, None diff --git a/nhentai/parser.py b/nhentai/parser.py index 97c1b15..93dd109 100644 --- a/nhentai/parser.py +++ b/nhentai/parser.py @@ -178,7 +178,6 @@ def doujinshi_parser(id_): doujinshi['img_id'] = img_id.group(1) doujinshi['ext'] = ext - pages = 0 for _ in doujinshi_info.find_all('div', class_='tag-container field-name'): if re.search('Pages:', _.text): pages = _.find('span', class_='name').string