| 1365 | |
| 1366 | @staticmethod |
| 1367 | def DownloadFromConfig(cf, Proxy_type: int) -> Set[Proxy]: |
| 1368 | providrs = [ |
| 1369 | provider for provider in cf["proxy-providers"] |
| 1370 | if provider["type"] == Proxy_type or Proxy_type == 0 |
| 1371 | ] |
| 1372 | logger.info( |
| 1373 | f"{bcolors.WARNING}Downloading Proxies from {bcolors.OKBLUE}%d{bcolors.WARNING} Providers{bcolors.RESET}" % len( |
| 1374 | providrs)) |
| 1375 | proxes: Set[Proxy] = set() |
| 1376 | |
| 1377 | with ThreadPoolExecutor(len(providrs)) as executor: |
| 1378 | future_to_download = { |
| 1379 | executor.submit( |
| 1380 | ProxyManager.download, provider, |
| 1381 | ProxyType.stringToProxyType(str(provider["type"]))) |
| 1382 | for provider in providrs |
| 1383 | } |
| 1384 | for future in as_completed(future_to_download): |
| 1385 | for pro in future.result(): |
| 1386 | proxes.add(pro) |
| 1387 | return proxes |
| 1388 | |
| 1389 | @staticmethod |
| 1390 | def download(provider, proxy_type: ProxyType) -> Set[Proxy]: |