import hashlib, time, random, string, requests, urllib3
urllib3.disable_warnings()

SECRET = "fuck-your-mother-three-thousand-times-apes-not-kill-apes"

def sign(params):
    pairs = []
    for k, v in params.items():
        if v is None or isinstance(v, (dict, list)):
            continue
        pairs.append((k, v))
    pairs.sort(key=lambda x: x[0])
    s = "&".join(f"{k}={v}" for k, v in pairs)
    return hashlib.md5((s + SECRET).encode()).hexdigest()

def mkparams():
    p = {"pId": "936613101699072"}
    p["nonce"] = "".join(random.choices(string.ascii_letters + string.digits, k=8))
    p["timestamp"] = str(int(time.time() * 1000))
    return p

def probe(name, url, params):
    headers = {"Accept-Locale": sign(params),
               "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)"}
    try:
        r = requests.get(url, params=params, headers=headers, timeout=12, verify=False)
        print(f"{name} -> {r.status_code} {r.text[:220]}")
    except Exception as e:
        print(f"{name} ERR {e}")

p = mkparams()
probe("exapi  /api/projectConfig", "https://exapi.svipduihuan.com/api/projectConfig", p)
probe("exapi  /mall/api/projectConfig", "https://exapi.svipduihuan.com/mall/api/projectConfig", p)
probe("szbjyx /mall/api/projectConfig", "https://api.szbjyx.com/mall/api/projectConfig", p)
