#!/usr/bin/env python3
"""Rincian tempat Google Maps untuk PT Sampoerna Jaya Baja + cek keberadaan toko Tokopedia."""
import asyncio, re


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="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0 Safari/537.36",
                                   locale="id-ID", viewport={"width": 1400, "height": 950})
        hal = await ctx.new_page()

        print("=== GOOGLE MAPS: rincian ===")
        await hal.goto("https://www.google.com/maps/search/" + "PT+Sampoerna+Jaya+Baja+Bekasi", wait_until="domcontentloaded", timeout=90000)
        await hal.wait_for_timeout(9000)
        teks = re.sub(r"\s+", " ", await hal.inner_text("body"))
        # ambil bagian informasi tempat
        for label in ("Alamat", "Jam", "Telepon", "Situs web", "Plus code", "Tempat", "Kategori"):
            mm = re.search(label + r"[^|]{0,160}", teks, re.I)
            if mm:
                print(f"   {label:<10}: {mm.group(0)[:180]}")
        kode = re.findall(r"[A-Z0-9]{4}\+[A-Z0-9]{2,3}[^|]{0,40}", teks)[:3]
        print("   plus code :", kode)
        print("\n   cuplikan ulasan:")
        for u in re.findall(r"\d ulasan · \d foto.{0,220}", teks)[:6]:
            print("      ·", u[:220])
        for u in re.findall(r"\d+ bulan lalu.{0,180}", teks)[:5]:
            print("      ·", u[:180])
        # apakah ada tombol klaim/pemilik
        print("\n   status kepemilikan:", "terklaim" if re.search(r"Klaim bisnis ini|Pemilik", teks) else "tidak terlihat")

        print("\n=== TOKOPEDIA: ada toko? ===")
        try:
            await hal.goto("https://www.tokopedia.com/search?st=shop&q=Sampoerna%20Jaya%20Baja", wait_until="domcontentloaded", timeout=90000)
            await hal.wait_for_timeout(7000)
            t2 = re.sub(r"\s+", " ", await hal.inner_text("body"))[:1200]
            print("   cuplikan:", t2[:600])
            tautan_toko = re.findall(r"https://www\.tokopedia\.com/[a-z0-9\-\.]+(?:\?|$)", await hal.content())
            print("   tautan toko terdeteksi:", sorted(set(tautan_toko))[:6])
        except Exception as e:
            print("   gagal:", str(e)[:100])

        await br.close()


asyncio.run(jalan())
