diff --git a/config.ini b/config.ini index ccf4dc1..4c9aced 100755 --- a/config.ini +++ b/config.ini @@ -84,7 +84,7 @@ water=2 ; 剧照 [extrafanart] switch=0 -parallel_download=1 +parallel_download=5 extrafanart_folder=extrafanart ; 剧情简介 diff --git a/config.py b/config.py index 142a0f7..138c9e1 100644 --- a/config.py +++ b/config.py @@ -153,8 +153,12 @@ class Config: def is_extrafanart(self) -> bool: return self.conf.getboolean("extrafanart", "switch") - def extrafanart_thread_pool_download(self) -> bool: - return self.conf.getboolean("extrafanart", "parallel_download") + def extrafanart_thread_pool_download(self) -> int: + try: + v = self.conf.getint("extrafanart", "parallel_download") + return v if v >= 0 else 5 + except: + return 5 def watermark_type(self) -> int: return int(self.conf.get("watermark", "water")) diff --git a/core.py b/core.py index 3e1cd91..0bf306b 100755 --- a/core.py +++ b/core.py @@ -240,7 +240,10 @@ def extrafanart_download_threadpool(url_list, save_dir, number): mp_args.append((url_list[i], jpg_fullpath)) if not len(mp_args): return - with ThreadPoolExecutor(os.cpu_count()) as pool: + parallel = min(len(mp_args), conf.extrafanart_thread_pool_download()) + if parallel > 100: + print('[!]Warrning: Parallel download thread too large may cause website ban IP!') + with ThreadPoolExecutor(parallel) as pool: result = list(pool.map(download_one_file, mp_args)) for i in range(len(result)): print('[+]Extrafanart Downloaded!', result[i]) if result[i] else print(f'[-]Extrafanart {i+1} for [{number}] download failed!')