#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Set URL yang sudah dipakai AKUN THREADS masing-masing (semua status) + log.
Output: /tmp/threads_used_by_acc_20261004.json
"""
import glob, json, re, sys
from urllib.parse import urlparse

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

def norm(u):
    u = u.strip().rstrip(").,;\"'")
    p = urlparse(u)
    return f"{p.netloc.lower().replace('www.','')}{p.path.rstrip('/').lower()}"

ACCS = {"studiosoft": ACC.STUDIOSOFT_THREADS, "uky": ACC.UKY_THREADS, "tslaw": ACC.TSLAW_THREADS,
        "tsc": ACC.TSC_THREADS, "das": ACC.DAS_THREADS}
ID2NAME = {v: k for k, v in ACCS.items()}

dumps = sorted(glob.glob("/tmp/repliz_all_*.json"))
DUMP = dumps[-1]
docs = json.load(open(DUMP))
if isinstance(docs, dict):
    docs = docs.get("docs") or docs.get("data") or []
out = {k: set() for k in ACCS}
total = {}
for d in docs:
    name = ID2NAME.get(d.get("accountId"))
    if not name:
        continue
    total[name] = total.get(name, 0) + 1
    for m in re.findall(r'https?://[^\s"\'\\]+', json.dumps(d, ensure_ascii=False)):
        out[name].add(norm(m))

log = json.load(open("/home/mantapman/.hermes/profiles/atun/workspace/log_threads_harian.json"))
for day, accs in (log.get("threads_used_links") or {}).items():
    for acc, items in accs.items():
        for it in items:
            out.setdefault(acc, set()).add(norm(it["url"]))

print(f"dump {DUMP}: jadwal threads per akun: {total}")
for k, v in out.items():
    print(f"   {k}: {len(v)} URL terpakai (threads)")
json.dump({k: sorted(v) for k, v in out.items()}, open("/tmp/threads_used_by_acc_20261004.json", "w"), ensure_ascii=False, indent=1)

# pool kandidat SS dari cache wp40 + threads_fresh_oct3
pool = {}
def add(url, title, date):
    pool[norm(url)] = {"url": url, "title": title, "date": date}
for fn in ["/tmp/wp40_studiosoft.id.json"]:
    for p in json.load(open(fn)):
        t = p.get("title"); t = t.get("rendered") if isinstance(t, dict) else t
        add(p["link"], str(t or ""), p.get("date","")[:10])
for p in json.load(open("/tmp/threads_fresh_oct3.json")).get("uky", []):
    t = p.get("title"); t = t.get("rendered") if isinstance(t, dict) else t
    add(p["link"], str(t or ""), p.get("date","")[:10])

avoid = out["uky"] | out["studiosoft"]
fresh_ss = [v for k, v in pool.items() if k not in avoid]
fresh_ss.sort(key=lambda x: x["date"], reverse=True)
print(f"\nSS kandidat fresh utk @ukyhandoko (belum dipakai Threads uky/SS): {len(fresh_ss)}")
for a in fresh_ss:
    print(f"   {a['date']} len={len(a['url']):>4} {a['title'][:66]}")
    print(f"        {a['url']}")
