#!/usr/bin/env python3
"""DMark: periksa blok tombol tanpa teks (4 buah) dan elemen oranye yang gagal kontras."""
import json, re
from collections import Counter

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
raw = open(f"{WS}/drafts/dmark_beranda_backup.txt").read()


def blok_json(teks, mulai):
    if teks[mulai] != "{":
        return None, mulai
    dalam, lepas, level, i = False, False, 0, mulai
    while i < len(teks):
        ch = teks[i]
        if dalam:
            if lepas:
                lepas = False
            elif ch == "\\":
                lepas = True
            elif ch == '"':
                dalam = False
        else:
            if ch == '"':
                dalam = True
            elif ch == "{":
                level += 1
            elif ch == "}":
                level -= 1
                if level == 0:
                    return teks[mulai:i + 1], i + 1
        i += 1
    return None, i


print("=== blok tombol di beranda ===")
pos = 0
n = 0
while True:
    k = raw.find("<!-- wp:spectra/button", pos)
    if k == -1:
        break
    awal = raw.find("{", k)
    potongan, akhir = blok_json(raw, awal)
    pos = akhir
    if not potongan:
        continue
    n += 1
    try:
        attr = json.loads(potongan)
    except Exception:
        print(f"   {n}. (JSON tidak terbaca) {potongan[:120]}")
        continue
    teks = str(attr.get("text") or "")
    print(f"   {n}. teks={json.dumps(teks)[:40]:<44} url={str(attr.get('url'))[:40]:<42} "
          f"icon={'ada' if attr.get('icon') else '-'} spectraId={attr.get('spectraId')}")

print("\n=== elemen oranye (ast-global-color-0) ===")
for m in re.finditer(r'"textColor"\s*:\s*"var\(([^)]*ast-global-color-0[^)]*)\)"', raw):
    print("   textColor:", m.group(0)[:80])
print("   jumlah:", len(re.findall(r'ast-global-color-0', raw)))

print("\n=== nilai warna palet Astra yang dipakai di isi ===")
print("   ", Counter(re.findall(r"ast-global-color-(\d)", raw)).most_common())
