#!/usr/bin/env python3
"""DAS: uji klik dengan menangkap BADAN permintaan pengukuran (GA4 mengirim lewat POST)."""
import asyncio, json

UJI = "https://dasindonesia.com/bengkel-mercy-surabaya/"


async def main():
    from playwright.async_api import async_playwright
    catat = []
    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 Chrome/124 Safari/537.36")
        hal = await ctx.new_page()

        async def tangkap(req):
            if "collect" in req.url:
                catat.append({"u": req.url, "body": req.post_data or ""})
        hal.on("request", lambda r: asyncio.create_task(tangkap(r)))

        await hal.goto(UJI, wait_until="domcontentloaded", timeout=180000)
        await hal.wait_for_timeout(8000)
        print("   tombol berpelacak:", await hal.evaluate("document.querySelectorAll(\"a[onclick*='klik_wa']\").length"))
        await hal.evaluate("""
            const t = document.querySelectorAll("a[onclick*='klik_wa']");
            if (t.length) { t[0].setAttribute('target','_blank'); t[0].click(); }
        """)
        await hal.wait_for_timeout(10000)
        await br.close()

    print(f"\n=== {len(catat)} permintaan 'collect' tertangkap ===")
    ada = 0
    for x in catat:
        gabung = x["u"] + " " + (x["body"] or "")
        if "klik_wa" in gabung:
            ada += 1
            print("   ✅ MEMUAT klik_wa:")
            print("      url :", x["u"][:110])
            print("      body:", (x["body"] or "")[:300])
        else:
            print(f"      {x['u'][:100]}")
            if x["body"]:
                print(f"         body: {x['body'][:160]}")
    print(f"\n   HASIL: {'✅ event klik_wa terkirim ke GA4' if ada else '⚠️ belum ditemukan'}")


asyncio.run(main())
