]> git.lizzy.rs Git - nhentai.git/commitdiff
fix bug on mac #126
authorRicter Z <ricterzheng@gmail.com>
Thu, 1 Oct 2020 17:32:18 +0000 (01:32 +0800)
committerRicter Z <ricterzheng@gmail.com>
Thu, 1 Oct 2020 17:32:18 +0000 (01:32 +0800)
nhentai/downloader.py
nhentai/parser.py

index 2d9a0f4e20cd8262cf9e73b5fbfa31493d4752df..f11bb60b1682c1c046032864a99d86155703f7ef 100644 (file)
@@ -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
index 97c1b159567860c9a7dd48b7111cbbaa300040e8..93dd1096d8b681686768fe7ffbba2935ec1592c7 100644 (file)
@@ -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