import json, urllib.request, urllib.parse from pathlib import Path ROOT = Path(r"C:\Users\SJ\.minimax-agent\projects\JEI") env = {} for line in (ROOT / ".env.local").read_text(encoding="utf-8").splitlines(): line = line.strip() if line and not line.startswith("#") and "=" in line: k, v = line.split("=", 1) env[k.strip()] = v.strip().strip('"').strip("'") PB = env.get("NEXT_PUBLIC_PB_URL") or env["PB_URL"] TOK = env["PB_TOKEN"] def get(path, **q): url = f"{PB}{path}" if q: url += "?" + urllib.parse.urlencode(q) req = urllib.request.Request(url, headers={"Authorization": TOK}) with urllib.request.urlopen(req, timeout=60) as r: return json.loads(r.read().decode()) for cid, name in [("pbc_266170881", "ysterbaard_resolutions"), ("ysterbaard_director_resignations", "ysterbaard_director_resignations")]: c = get(f"/api/collections/{cid}") print(f"=== {name} ({cid})") fields = [f.get("name") for f in c.get("fields", [])] print(" fields:", fields) try: recs = get(f"/api/collections/{cid}/records", perPage=50) except Exception as e: print(" list failed:", e) continue print(f" records: {recs.get('totalItems')}") for r in recs.get("items", []): filefields = {k: v for k, v in r.items() if isinstance(v, str) and v.lower().endswith(".pdf")} label = r.get("resolution_number") or r.get("reference") or r.get("status") or r.get("company") print(f" {r['id']} {label}") if filefields: for k, v in filefields.items(): print(f" FILE {k} = {v}") print()