#!/usr/bin/env python3
"""Cek indeks Google (dengan penanganan halaman izin) + dugaan kanal sosial PT Sampoerna Jaya Baja."""
import asyncio, re, urllib.request, urllib.error

UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124.0 Safari/537.36"}


async def jalan():
    from playwright.async_api import async_playwright
    async with async_playwright() as pw:
        br = await pw.chromium.launch()
        ctx = await br.new_context(user_agent=UA["User-Agent"], locale="id-ID", viewport={"width": 1366, "height": 900})
        hal = await ctx.new_page()
        print("=== GOOGLE ===")
        try:
            await hal.goto("https://www.google.com/search?hl=id&gl=id&num=20&q=" + "%22Sampoerna+Jaya+Baja%22", wait_until="domcontentloaded", timeout=90000)
            await hal.wait_for_timeout(5000)
            # setujui halaman izin bila muncul
            for teks_tombol in ("Terima semua", "Accept all", "Saya setuju", "Setuju"):
                try:
                    t = hal.get_by_role("button", name=re.compile(teks_tombol, re.I))
                    if await t.count():
                        await t.first.click()
                        await hal.wait_for_timeout(4000)
                        break
                except Exception:
                    pass
            isi = await hal.inner_text("body")
            isi = re.sub(r"\s+", " ", isi)
            print("   judul:", (await hal.title())[:100])
            print("   sebutan nama:", len(re.findall("sampoerna jaya baja", isi, re.I)))
            for m in re.findall(r"https?://[^\s\"<>]{10,90}", isi)[:12]:
                print("   tautan:", m[:100])
            print("   cuplikan:", isi[:700])
        except Exception as e:
            print("   gagal:", str(e)[:110])
        await br.close()


asyncio.run(jalan())

print("\n=== dugaan kanal sosial (cek langsung) ===")
for nama, u in (("Instagram @sampoernajayabaja", "https://www.instagram.com/sampoernajayabaja/"),
                ("Instagram @sjbaja", "https://www.instagram.com/sjbaja/"),
                ("Facebook page", "https://www.facebook.com/sampoernajayabaja"),
                ("LinkedIn company", "https://www.linkedin.com/company/sampoerna-jaya-baja/")):
    try:
        with urllib.request.urlopen(urllib.request.Request(u, headers=UA), timeout=40) as x:
            isi = x.read().decode("utf-8", "replace")
        judul = re.search(r"<title[^>]*>(.*?)</title>", isi, re.S)
        print(f"   {nama:<30} {x.status} | {re.sub('<[^>]+>', '', judul.group(1))[:60] if judul else '-'}")
    except urllib.error.HTTPError as e:
        print(f"   {nama:<30} {e.code}")
    except Exception as e:
        print(f"   {nama:<30} gagal {str(e)[:50]}")
