#!/usr/bin/env python3
import urllib.request, json

BASE = "https://ota.46-4-121-190.sslip.io"
def post(url, data, headers=None):
    req = urllib.request.Request(url, data=json.dumps(data).encode(),
                                 headers={"Content-Type": "application/json", **(headers or {})}, method="POST")
    with urllib.request.urlopen(req, timeout=30) as r:
        return json.loads(r.read())

def get(url, token):
    req = urllib.request.Request(url, headers={"Authorization": f"Bearer {token}"})
    with urllib.request.urlopen(req, timeout=30) as r:
        return json.loads(r.read())

token = post(f"{BASE}/authentication",
             {"strategy": "local", "username": "admin", "password": "353fde0a0fe4e8a0b2799e54"})["accessToken"]

d = get(f"{BASE}/uploads", token)
uploads = d.get("data", d) if isinstance(d, dict) else d
print(f"=== {len(uploads)} uploads; recent 12 (checking for download/applied metrics) ===")
for u in sorted(uploads, key=lambda x: x.get("createdAt", ""), reverse=True)[:12]:
    meta = {k: u.get(k) for k in ("project","version","updateId","gitCommit","status","releasedAt","createdAt","downloadCount","appliedCount","requestedAt") if k in u}
    print(json.dumps(meta)[:200])
