qBittorrent search engine plugins
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
from concurrent.futures.thread import ThreadPoolExecutor
|
|
|
|
from urllib.request import build_opener, ProxyHandler
|
|
|
|
|
|
|
|
HOST = "http://kinozal.tv/"
|
|
|
|
SCHEME = HOST[:4]
|
|
|
|
PROXY_FILE = "proxylist.txt" # one address per line
|
|
|
|
|
|
|
|
|
|
|
|
def print_good_proxy(proxy):
|
|
|
|
try:
|
|
|
|
opener = build_opener(ProxyHandler({f"{SCHEME}": proxy}))
|
|
|
|
opener.addheaders = [("User-agent", "Mozilla/5.0")]
|
|
|
|
req = opener.open(HOST, timeout=30)
|
|
|
|
if not req.geturl().startswith(HOST):
|
|
|
|
raise Exception()
|
|
|
|
except Exception as e:
|
|
|
|
return e
|
|
|
|
|
|
|
|
print(proxy)
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
with open(PROXY_FILE) as f:
|
|
|
|
proxy_list = [x.rstrip() for x in f]
|
|
|
|
|
|
|
|
print("Working proxies:")
|
|
|
|
with ThreadPoolExecutor(len(proxy_list)) as executor:
|
|
|
|
executor.map(print_good_proxy, proxy_list, timeout=30)
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|