change download threads number configable default parallel_download=5

This commit is contained in:
lededev
2021-10-23 21:05:49 +08:00
parent 9c5db258ec
commit e8eb3ff192
3 changed files with 11 additions and 4 deletions

View File

@@ -84,7 +84,7 @@ water=2
; 剧照
[extrafanart]
switch=0
parallel_download=1
parallel_download=5
extrafanart_folder=extrafanart
; 剧情简介

View File

@@ -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"))

View File

@@ -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!')