"""Debug: navega 5 lecciones y muestra TODAS las URLs de fast.vidalytics.com."""
import asyncio
import json
import re
import sys
sys.stdout.reconfigure(encoding="utf-8")
from playwright.async_api import async_playwright
from pathlib import Path

SCRIPTS_DIR = Path(__file__).parent
COOKIES_FILE = SCRIPTS_DIR / ".course_cookies.json"
MEMBERS_URL = "https://kaleanders.clickfunnels.com/members-raio"

async def click_next(page):
    for sel in ["a[href='#next-lesson']", "#next-lesson"]:
        try:
            btn = await page.query_selector(sel)
            if btn:
                await btn.click()
                return True
        except: pass
    return False

async def main():
    cookies = json.loads(COOKIES_FILE.read_text(encoding="utf-8"))

    async with async_playwright() as pw:
        browser = await pw.chromium.launch(headless=True)
        ctx = await browser.new_context(
            user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124 Safari/537.36",
            viewport={"width": 1280, "height": 800},
        )
        await ctx.add_cookies(cookies)
        page = await ctx.new_page()

        current_lesson = [0]
        lesson_captures = {}  # lesson_num -> list of fast.vidalytics.com URLs

        async def on_resp(resp):
            url = resp.url
            if "fast.vidalytics.com" in url or "fast-dev.vidalytics.com" in url:
                n = current_lesson[0]
                if n not in lesson_captures:
                    lesson_captures[n] = []
                lesson_captures[n].append(f"[{resp.status}] {url[:140]}")

        page.on("response", on_resp)

        print("Cargando curso...")
        await page.goto(MEMBERS_URL, wait_until="domcontentloaded", timeout=30000)

        for lesson_num in range(1, 6):
            current_lesson[0] = lesson_num
            await page.wait_for_timeout(6000)

            # Extraer ultimo vidalytics_embed_ ID
            html = await page.content()
            ids = re.findall(r'vidalytics_embed_([A-Za-z0-9_-]{10,})', html)
            loader_ids = re.findall(r'/embeds/[^/]+/([A-Za-z0-9_-]{10,})/loader', html)

            print(f"\n=== Leccion {lesson_num} ===")
            print(f"  vidalytics_embed IDs en DOM ({len(ids)}): {ids[:3]}...")
            print(f"  loader.min.js IDs en HTML ({len(loader_ids)}): {loader_ids[:3]}")
            print(f"  URLs fast.vidalytics.com capturadas ({len(lesson_captures.get(lesson_num, []))}):")
            for u in lesson_captures.get(lesson_num, []):
                print(f"    {u}")

            if lesson_num < 5:
                clicked = await click_next(page)
                if not clicked:
                    print("  Sin boton siguiente")
                    break

        await browser.close()

asyncio.run(main())
