#!/usr/bin/env python3
"""
Perbaiki caption Threads TS Law: URL & ajakan diskusi WAJIB muat dalam ≤500 char.
Ringkas bedah hukum per jadwal (versi singkat), lalu link + diskusi + hashtag.
"""
import sys, json, urllib.request, re
sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import HEADERS, BASE

IDS = [
    "6a96a444f197bea385845ec6",  # 2 Sep
    "6a96a444f197bea385845ed4",  # 3 Sep
    "6a96a445f197bea385845eda",  # 4 Sep
    "6a96a445f197bea385845ee2",  # 5 Sep
    "6a96a4450f4e8a4dace80a78",  # 6 Sep
    "6a9768630f4e8a4dac045d88",  # 7 Sep
    "6a976864f197bea38594eb2f",  # 8 Sep
    "6a976864f197bea38594eb3d",  # 9 Sep
    "6a976864f197bea38594eb41",  # 10 Sep
    "6a976865f197bea38594eb49",  # 11 Sep
]

# bedah singkat (1 kalimat) + niche + angle — URL diambil dari caption existing
BEDAH = {
    "6a96a444f197bea385845ec6": ("Hukum Pidana", "Penganiayaan (Pasal 351 KUHP)", "pelaku bisa dijerat pidana penjara — sekecil apa pun penganiayaannya, dan hukum berlaku sama untuk semua orang tanpa pandang kewarganegaraan."),
    "6a96a444f197bea385845ed4": ("Hukum Pidana", "pembuktian & penyelidikan", "polisi harus membuktikan unsur kesalahan dan niat sebelum pasal pembunuhan bisa dijeratkan — praduga tak bersalah tetap berlaku."),
    "6a96a445f197bea385845eda": ("Hukum Pidana / Tipikor", "penyidikan korupsi", "pemeriksaan saksi bukan vonis — penting membedakan tahap penyelidikan, penyidikan, dan penuntutan."),
    "6a96a445f197bea385845ee2": ("Hukum Bisnis", "transaksi LCS & kepatuhan devisa", "transaksi lintas negara kini punya opsi baru tanpa dolar, tapi tetap wajib patuh aturan devisa & perbankan."),
    "6a96a4450f4e8a4dace80a78": ("Hukum Pidana", "UU Perampasan Aset", "pelaku korupsi tak hanya dihukum, hartanya bisa dirampas negara — tapi tetap harus lewat proses yang adil."),
    "6a9768630f4e8a4dac045d88": ("Perlindungan Konsumen", "tanggung jawab & ganti rugi", "korban keracunan massal berhak menuntut ganti rugi lewat UU Perlindungan Konsumen & UU Pangan."),
    "6a976864f197bea38594eb2f": ("Hukum Pidana", "penyidikan kematian", "aparatur wajib kumpulkan alat bukti & periksa saksi sebelum menyimpulkan ada tidaknya unsur pidana."),
    "6a976864f197bea38594eb3d": ("Hukum Pidana", "kewenangan KPK", "penegakan hukum harus berbasis bukti, bukan asumsi — kepastian hukum bagi pejabat publik itu penting."),
    "6a976864f197bea38594eb41": ("Hukum Bisnis", "UU No. 5/1999 Larangan Monopoli", "KPPU bisa turun tangan jika terbukti ada penguasaan pasar yang merugikan konsumen."),
    "6a976865f197bea38594eb49": ("Hukum Bisnis", "restrukturisasi utang", "ada mekanisme hukum untuk menyelesaikan utang secara tertib tanpa kehilangan segalanya."),
}

def get(sid):
    req = urllib.request.Request(f"{BASE}/public/schedule/{sid}", headers=HEADERS)
    with urllib.request.urlopen(req, timeout=30) as r:
        return json.load(r)

def put(sid, payload):
    req = urllib.request.Request(f"{BASE}/public/schedule/{sid}",
                                 data=json.dumps(payload).encode(),
                                 headers={**HEADERS, "Content-Type": "application/json"},
                                 method="PUT")
    with urllib.request.urlopen(req, timeout=30) as r:
        return r.status

# URL berita dari history asli (per tanggal) — bukan dari caption existing yang bisa terpotong
HIST = json.load(open("/home/mantapman/.hermes/profiles/atun/workspace/tslaw_berita_history.json"))
URL_BY_DATE = {p.get("date"): p.get("url", "") for p in HIST.get("posts", [])}

updated = 0
for sid in IDS:
    d = get(sid)
    niche, angle, bedah = BEDAH[sid]
    tgl = (d.get("scheduleAt") or "")[:10]
    url = URL_BY_DATE.get(tgl, "")
    mj = re.search(r"BEDAH HUKUM: (.+?)\.", d.get("description") or "")
    judul = mj.group(1) if mj else "berita hukum"
    # versi singkat — tanpa hashtag dulu biar URL muat; ukur lalu tambah hashtag singkat
    base = (
        f"⚖️ {judul}\n\n"
        f"Dari sisi {niche}: {angle} — {bedah}\n\n"
        f"Simak berita: {url}\n\n"
        f"Menurut Anda bagaimana kasus ini sebaiknya disikapi? Yuk diskusi! 👇"
    )
    tags = "\n\n#TSLaw #HukumIndonesia"
    # potong base agar base+tags ≤ 500
    budget = 500 - len(tags)
    if len(base) > budget:
        base = base[: budget - 1].rsplit(" ", 1)[0] + "…"
    new_cap = base + tags
    payload = {
        "accountId": d.get("accountId"),
        "title": d.get("title", ""),
        "description": new_cap,
        "topic": d.get("topic", ""),
        "type": d.get("type", ""),
        "medias": d.get("medias") or [],
        "scheduleAt": d.get("scheduleAt"),
        "replies": [
            {"text": "Intinya: jangan menyimpulkan sebelum semua alat bukti terungkap. Proses hukum harus adil. ⚖️", "username": ""},
        ],
    }
    try:
        put(sid, payload)
        updated += 1
        has_link = "http" in new_cap
        print(f"  ✅ {d.get('scheduleAt')[:10]} | {len(new_cap)} char | link={'✅' if has_link else '❌'} | {judul[:40]}")
    except Exception as e:
        print(f"  ❌ {sid}: {e}")

print(f"\n📊 Updated: {updated}")
