#!/usr/bin/env python3
"""Exporta TODOS los objetos capturados (sin filtro) a verify_mine.csv."""
import os, csv, json, urllib.request

HERE = os.path.dirname(os.path.abspath(__file__))
OUT  = os.path.join(HERE, "verify_mine.csv")
# max_seen=600 -> acumulado del ciclo completo (semantica iScout, igual que lo
# que iScout muestra). Comparacion justa 1:1. Se fija explicito porque el
# default de la UI ahora es "solo activos" (~90s).
u = "http://127.0.0.1:8770/api/data?limit=999999&sort=level&max_seen=600&_=x"
d = json.load(urllib.request.urlopen(u))
rows = d["rows"]
with open(OUT, "w", newline="") as f:
    w = csv.DictWriter(f, fieldnames=["name", "level", "type", "x", "y", "power", "id"])
    w.writeheader()
    for r in rows:
        w.writerow({k: r.get(k, "") for k in ["name", "level", "type", "x", "y", "power", "id"]})
print(f"{len(rows)} objetos -> {OUT}")
# resumen por familia boss/event
fam = {}
for r in rows:
    fam.setdefault(r["name"], 0)
    fam[r["name"]] += 1
top = sorted(fam.items(), key=lambda x: -x[1])[:20]
print("top nombres:", ", ".join(f"{n}={c}" for n, c in top))
