import requests
from urllib.parse import quote

def read_proxies(file_path="proxy.txt"):
    with open(file_path, "r") as f:
        lines = f.read().splitlines()
    return [line.strip() for line in lines if line.strip()]

def format_proxy_string(proxy_line):
    host, port, user, passwd = proxy_line.split(":")
    user_enc = quote(user)
    passwd_enc = quote(passwd)
    return f"http://{user_enc}:{passwd_enc}@{host}:{port}"

def is_proxy_working(proxy_url, timeout=10):
    try:
        response = requests.get("https://httpbin.org/ip", proxies={
            "http": proxy_url,
            "https": proxy_url,
        }, timeout=timeout, verify=False)
        ip = response.json().get("origin")
        print(f"✅ Рабочий прокси: {ip}")
        return True
    except Exception as e:
        print(f"❌ Прокси не работает ({proxy_url}): {e}")
        return False

def get_working_proxy(file_path="proxy.txt"):
    proxies = read_proxies(file_path)
    for raw_proxy in proxies:
        proxy_url = format_proxy_string(raw_proxy)
        if is_proxy_working(proxy_url):
            return proxy_url
    return None