#!/usr/bin/env python3
"""Bandingkan gambar unggulan di basis data dengan og:image yang tampil di halaman TSLaw."""
import base64, importlib.util, json, re, time, urllib.request

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
spec = importlib.util.spec_from_file_location("cfg", f"{WS}/cfg_tslaw.py")
m = importlib.util.module_from_spec(spec)
spec.loader.exec_module(m)
C = m.CFG
DOM = C.get("domain", C.get("situs"))
A = base64.b64encode(f"{C['user']}:{C['pass']}".encode()).decode()
H = {"Authorization": f"Basic {A}", "User-Agent": "Mozilla/5.0"}
UA = {"User-Agent": "Mozilla/5.0"}

d = json.loads(urllib.request.urlopen(urllib.request.Request(
    f"https://{DOM}/wp-json/wp/v2/posts?per_page=6&context=edit&_fields=id,link,featured_media,title", headers=H),
    timeout=120).read())
for x in d:
    fm = x.get("featured_media")
    s = "-"
    if fm:
        med = json.loads(urllib.request.urlopen(urllib.request.Request(
            f"https://{DOM}/wp-json/wp/v2/media/{fm}?context=edit&_fields=source_url", headers=H), timeout=90).read())
        s = med.get("source_url", "-").split("/")[-1]
    t = urllib.request.urlopen(urllib.request.Request(x["link"] + f"?x={int(time.time())}", headers=UA),
                               timeout=90).read().decode("utf-8", "replace")
    og = re.search(r'og:image" content="([^"]+)"', t)
    ogi = re.search(r'og:image:secure_url" content="([^"]+)"', t)
    print(f"#{x['id']:<6} unggulan: {s[:40]:<42} og: {ogi.group(1).split('/')[-1][:40] if ogi else (og.group(1).split('/')[-1][:40] if og else '-')}")
    time.sleep(0.5)
