#!/usr/bin/env python3
"""DMark: daftar rinci audit Lighthouse yang masih gagal, lengkap dengan elemennya."""
import json, re, sys

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
d = json.load(open(f"{WS}/drafts/lh_dmark.json"))
a = d.get("audits", {})

print("SKOR:", {k: round((v.get("score") or 0) * 100) for k, v in d.get("categories", {}).items() if isinstance(v, dict)})

print("\n=== audit yang gagal (skor < 1), per kategori ===")
for nama_kategori, kat in d.get("categories", {}).items():
    if not isinstance(kat, dict):
        continue
    print(f"\n--- {nama_kategori.upper()} ({round((kat.get('score') or 0)*100)})")
    for ref in kat.get("auditRefs", []):
        x = a.get(ref["id"], {})
        skor = x.get("score")
        if skor is None or skor >= 1:
            continue
        det = x.get("details", {}) or {}
        items = det.get("items") or []
        print(f"   [{round(skor*100):>3}] {x.get('title', ref['id'])[:66]}  ({len(items)} temuan)")
        for it in items[:6]:
            potongan = []
            node = it.get("node") or {}
            if node:
                potongan.append(f"sel={str(node.get('selector'))[:70]}")
                if node.get("snippet"):
                    potongan.append(f"kode={str(node['snippet'])[:80]}")
            for k in ("url", "label", "explanation"):
                if it.get(k):
                    potongan.append(f"{k}={str(it[k])[:70]}")
            if potongan:
                print(f"        · {' | '.join(potongan)}")
    print()
