import os import random from typing import List, Dict, Optional # PrivadoVPN SOCKS5 server endpoints across US & EU PRIVADO_SOCKS5_HOSTS = [ "jfk.socks.privado.io", # New York / JFK "us-nyc.socks.privado.io", # New York City "us-dal.socks.privado.io", # Dallas, TX "us-chi.socks.privado.io", # Chicago, IL "us-la.socks.privado.io", # Los Angeles, CA "ams.socks.privado.io", # Amsterdam "fra.socks.privado.io", # Frankfurt "lon.socks.privado.io" # London ] DEFAULT_PRIVADO_USER = "nhqyqsx21846" DEFAULT_PRIVADO_PASS = "umjy1xyucnch" DEFAULT_PORT = 1080 def get_privado_proxy_list() -> List[str]: """ Builds full socks5:// proxy URLs for all configured Privado servers. Respects overrides from PRIVADO_USER and PRIVADO_PASS environment variables. """ user = os.getenv("PRIVADO_USER", DEFAULT_PRIVADO_USER).strip() pwd = os.getenv("PRIVADO_PASS", DEFAULT_PRIVADO_PASS).strip() # Also support explicit SOCKS5_PROXY or PROXY_URL list if passed as comma-separated custom_proxy = os.getenv("SOCKS5_PROXY") or os.getenv("PROXY_URL") or "" if custom_proxy: proxies = [p.strip() for p in custom_proxy.split(",") if p.strip()] if proxies: return proxies proxy_list = [] for host in PRIVADO_SOCKS5_HOSTS: proxy_list.append(f"socks5://{user}:{pwd}@{host}:{DEFAULT_PORT}") return proxy_list def get_random_privado_proxy() -> Optional[str]: proxies = get_privado_proxy_list() if proxies: return random.choice(proxies) return None def get_rotating_proxy_dict() -> Dict[str, str]: proxy = get_random_privado_proxy() if proxy: return {"http": proxy, "https": proxy} return {}