#!/usr/bin/env python3
"""Anti-redundant yang lebih kuat: cek link kandidat terhadap SEMUA deskripsi jadwal di Repliz."""
import json, re
from datetime import datetime, timedelta, timezone

WIB = timezone(timedelta(hours=7))
docs = json.load(open("/tmp/scheds_1011.json"))

URL_RE = re.compile(r"https?://[^\s\)\]\"]+")

seen = {}   # url -> (wib datetime, accountId, status)
for d in docs:
    txt = " ".join(str(d.get(k) or "") for k in ("description", "title", "topic"))
    for u in URL_RE.findall(txt):
        u = u.rstrip("/.,").lower()
        sa = d.get("scheduleAt")
        try:
            dt = datetime.fromisoformat(str(sa).replace("Z", "+00:00")).astimezone(WIB)
        except Exception:
            dt = None
        if u not in seen or (dt and seen[u][0] and dt > seen[u][0]):
            seen[u] = (dt, d.get("accountId"), d.get("status"))

print(f"total URL unik di semua jadwal: {len(seen)}")

kand = {
    "das": ["https://dasindonesia.com/bengkel-mobil-mewah-di-surabaya-panduan-merawat-alphard-land-cruiser-dan-sedan-premium/",
            "https://dasindonesia.com/biaya-servis-bmw-series-3-2/",
            "https://dasindonesia.com/ev-diagnostic/",
            "https://dasindonesia.com/bengkel-spesialis-overhaul-mobil-surabaya-kapan-dibutuhkan/"],
    "tsc": ["https://www.theskincodeclinic.com/facial-sidoarjo-jenis-manfaat-cara-memilih/",
            "https://www.theskincodeclinic.com/klinik-kulit-vs-salon-kecantikan-mojokerto/",
            "https://www.theskincodeclinic.com/jerawat-membandel-mojokerto-butuh-dokter-kulit/"],
    "tslaw": ["https://www.tslaw.id/6-jenis-surat-kuasa-hukum-dan-fungsinya-yang-wajib-anda-pahami/",
              "https://www.tslaw.id/perlindungan-hukum-hak-kekayaan-intelektual-umkm/",
              "https://www.tslaw.id/7-langkah-hukum-melaporkan-pencemaran-nama-baik-di-media-sosial/",
              "https://www.tslaw.id/cara-mengurus-sertifikat-tanah/",
              "https://www.tslaw.id/cara-mengurus-sengketa-tanah-secara-hukum/",
              "https://www.tslaw.id/panduan-membuat-surat-wasiat/",
              "https://www.tslaw.id/cara-lapor-polisi-penipuan-online/",
              "https://www.tslaw.id/cara-daftar-hak-cipta-2026/"],
    "studiosoft": ["https://studiosoft.id/strategi-pemasaran-properti/",
                   "https://studiosoft.id/digital-marketing-retail/",
                   "https://studiosoft.id/seo-rumah-sakit/",
                   "https://studiosoft.id/digital-marketing-rumah-sakit-indikator/",
                   "https://studiosoft.id/branding-agency-surabaya-proses-hasil-kerja/",
                   "https://studiosoft.id/jasa-seo-surabaya-paket-harga/",
                   "https://studiosoft.id/seo-properti/",
                   "https://studiosoft.id/digital-marketing-properti/"],
}
for acc, urls in kand.items():
    print(f"\n-- {acc}")
    for u in urls:
        k = u.rstrip("/").lower()
        if k in seen:
            dt, aid, st = seen[k]
            print(f"   DIPAKAI {dt.strftime('%Y-%m-%d %H:%M') if dt else '?'} [{st}] {k}")
        else:
            print(f"   FRESH   {k}")

print("\n-- semua URL tslaw.id yang muncul di jadwal --")
for u, (dt, aid, st) in sorted(seen.items(), key=lambda x: (x[1][0] or datetime(2000,1,1,tzinfo=WIB))):
    if "tslaw.id" in u:
        print(f"   {dt.strftime('%Y-%m-%d %H:%M') if dt else '?'} [{st}] {u}")
