#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Verifikasi carousel 10 slide TS Law "Mitos atau Fakta" — baca balik + bukti urutan 01..10."""
import json, sys, urllib.request
from PIL import Image, ImageChops, ImageStat, ImageDraw

sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import HEADERS, BASE

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
SRC = [f"/tmp/tslaw_mitos10/tslaw_mitos10_{i:02d}.png" for i in range(1, 11)]
DST = [f"{WS}/openclaw-img/tslaw_mitos10_{i:02d}.jpg" for i in range(1, 11)]

ids = json.load(open("/tmp/tslaw_mitos10_ids.json"))
for item in ids:
    req = urllib.request.Request(f"{BASE}/public/schedule/{item['id']}", headers=HEADERS)
    with urllib.request.urlopen(req, timeout=60) as r:
        doc = json.load(r)
    doc = doc.get("doc", doc)
    urls = [m.get("url", "").split("/")[-1] for m in (doc.get("medias") or [])]
    urut = urls == [f"tslaw_mitos10_{i:02d}.jpg" for i in range(1, 11)]
    print(f"{item['label']:8s} | {doc.get('status'):8s} | {doc.get('scheduleAt')} | type={doc.get('type')} | "
          f"replies={len(doc.get('replies') or [])} | cap={len(doc.get('description') or '')} | "
          f"media={len(urls)} | urut={'BENAR' if urut else 'SALAH: ' + str(urls)}")

thumb = lambda p: Image.open(p).convert("L").resize((64, 80), Image.LANCZOS)
src_t = [thumb(p) for p in SRC]
dst_t = [thumb(p) for p in DST]
rows = []
print("\nmatriks beda pixel (baris = file terpasang _01.._10, kolom = PNG sumber 1..10):")
for i, a in enumerate(dst_t):
    baris = [round(ImageStat.Stat(ImageChops.difference(a, b)).mean[0], 2) for b in src_t]
    rows.append(baris)
    print(f"  _{i+1:02d} -> argmin kolom {baris.index(min(baris)) + 1} "
          f"{'OK' if baris.index(min(baris)) == i else 'TERTUKAR'}")
diag = [rows[i][i] for i in range(10)]
off = [rows[i][j] for i in range(10) for j in range(10) if i != j]
print(f"  diagonal {min(diag):.2f}-{max(diag):.2f} | off-diagonal {min(off):.2f}-{max(off):.2f}")
print("  kesimpulan:", "URUTAN BENAR, 0 tertukar" if all(rows[i].index(min(rows[i])) == i for i in range(10))
      else "PERIKSA ULANG")
