#!/usr/bin/env python3
"""Cek 12 artikel StudioSoft yang terjadwal: sudah berisi tulisan atau masih kosong?"""
import base64, json, re, urllib.request

A = base64.b64encode(b"bambangbot:q26r RePo BVy6 pwU2 F3z7 ouyl").decode()
H = {"Authorization": f"Basic {A}", "User-Agent": "Mozilla/5.0"}


def polos(h):
    h = re.sub(r"<script.*?</script>|<style.*?</style>", " ", h, flags=re.S | re.I)
    return re.sub(r"\s+", " ", re.sub("<[^>]+>", " ", h)).strip()


d = json.loads(urllib.request.urlopen(urllib.request.Request(
    "https://studiosoft.id/wp-json/wp/v2/posts?per_page=20&status=future&orderby=date&order=asc"
    "&context=edit&_fields=id,date,slug,title,content,featured_media,categories",
    headers=H), timeout=150).read())

print(f"{'tgl':<12}{'#id':<7}{'kata':>6}{'gambar':>8}  judul")
isi_ada = 0
for x in d:
    kata = len(polos(x["content"]["raw"]).split())
    if kata > 200:
        isi_ada += 1
    print(f"{x['date'][:10]:<12}{x['id']:<7}{kata:>6}{str(x.get('featured_media') or '-'):>8}  "
          f"{re.sub('<[^>]+>', '', x['title']['raw'])[:52]}")

print(f"\n{len(d)} artikel terjadwal · sudah berisi tulisan (>200 kata): {isi_ada} · "
      f"masih kosong/pendek: {len(d) - isi_ada}")
