#!/usr/bin/env python3
"""hc43: semua slug WP vs pemakaian di LinkedIn SS & FB SS (dari dump 21 Sep)."""
import json, re, sys, subprocess
sys.path.insert(0, '/home/mantapman/.hermes/profiles/atun/workspace')
from repliz_client import ACC

docs = json.load(open('/tmp/repliz_all_20260921.json'))

# ambil SEMUA slug WP
slugs = []
for page in range(1, 8):
    r = subprocess.run(["curl", "-s", "--http1.1", "--max-time", "150",
                        "https://studiosoft.id/wp-json/wp/v2/posts?per_page=100&page=%d&_fields=date,slug" % page],
                       capture_output=True, text=True)
    try:
        d = json.loads(r.stdout)
    except Exception:
        break
    if not isinstance(d, list) or not d:
        break
    slugs.extend([(p['date'][:10], p['slug']) for p in d])
print("total slug WP:", len(slugs))

url_re = re.compile(r'studiosoft\.id/([a-z0-9\-]+)')


def used_set(aid):
    u = {}
    for d in docs:
        if d.get('accountId') != aid:
            continue
        t = " ".join([(d.get('description') or ''), (d.get('title') or '')])
        for s in url_re.findall(t):
            u.setdefault(s, []).append(((d.get('scheduleAt') or '')[:16], d.get('status')))
    return u


LI = used_set(ACC.STUDIOSOFT_LINKEDIN)
FB = used_set(ACC.STUDIOSOFT_FB)


def rep(name, u):
    print("\n=== %s : artikel WP TANPA jejak (FREE) ===" % name)
    n = 0
    for date, s in slugs:
        if s not in u:
            print("  %s %s" % (date, s))
            n += 1
    print("  (%d free)" % n)
    print("\n=== %s : artikel dgn HANYA error (belum pernah tayang) ===" % name)
    for date, s in slugs:
        rows = u.get(s)
        if not rows:
            continue
        if all(r[1] not in ('success', 'pending', 'scheduled', 'draft') for r in rows):
            print("  %s %s -> %s" % (date, s, rows))
    print("\n=== %s : belum pernah SUKSES tapi ada pending ===" % name)
    for date, s in slugs:
        rows = u.get(s)
        if not rows:
            continue
        if not any(r[1] == 'success' for r in rows):
            pend = [r for r in rows if r[1] in ('pending', 'scheduled', 'draft')]
            if pend:
                print("  %s %s -> pend=%s" % (date, s, pend[:2]))


rep("LINKEDIN", LI)
rep("FACEBOOK", FB)
