#!/usr/bin/env python3
"""Rangkum audit PageSpeed yang relevan dari psi_hasil_artikel.json."""
import json

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
d = json.load(open(f"{WS}/psi_hasil_artikel.json"))
lr = d["lighthouseResult"]
print("url:", lr.get("finalDisplayedUrl"), "| diambil:", lr.get("fetchTime"))
print("skor performa mobile:", round((lr["categories"]["performance"]["score"]) * 100))
ingin = ["server-response-time", "render-blocking-resources", "uses-optimized-images",
         "uses-responsive-images", "modern-image-formats", "efficient-animated-content",
         "uses-text-compression", "uses-long-cache-ttl", "total-byte-weight", "bootup-time",
         "mainthread-work-breakdown", "font-display", "third-party-summary",
         "unminified-javascript", "unused-javascript", "unused-css-rules",
         "largest-contentful-paint-element", "layout-shift-elements", "network-requests",
         "dom-size", "duplicated-javascript", "legacy-javascript", "lcp-lazy-loaded",
         "prioritize-lcp-image", "viewport"]
for k in ingin:
    a = (lr.get("audits") or {}).get(k)
    if not a:
        continue
    sc = a.get("score")
    sc = "n/a" if sc is None else round(sc, 2)
    print(f"\n[{k}] skor={sc} | {a.get('displayValue', '')}")
    print("   ", (a.get("title") or "")[:110])
    det = a.get("details") or {}
    if det.get("type") == "table" and det.get("items"):
        for it in det["items"][:4]:
            print("     ·", str(it)[:260])
    elif det.get("type") == "opportunity" and det.get("items"):
        for it in det["items"][:4]:
            print("     ·", str(it)[:260])
    elif det.get("overallSavingsMs"):
        print("     hemat:", det.get("overallSavingsMs"), "ms")
