#!/usr/bin/env python3
"""Test render with GSAP."""
import os
from playwright.sync_api import sync_playwright

W, H, FPS = 1920, 1080, 30
BASE = '/tmp/raportis-promo'

html_content = """<!DOCTYPE html><html><head>
<meta charset="utf-8"><meta name="viewport" content="width=1920, height=1080">
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
<style>
body{background:#0f172a;display:flex;align-items:center;justify-content:center}
.c{text-align:center;color:#fff;font-family:sans-serif}
.emoji{font-size:100px;margin-bottom:40px;opacity:0}
.hl{font-size:68px;font-weight:900;opacity:0}
.hl span{color:#3b82f6}
.sub{font-size:36px;color:#94a3b8;margin-top:24px;opacity:0}
</style>
</head><body><div class="c">
<div class="emoji">📋 ❌ 😤</div>
<div class="hl">Vous en avez marre des<br><span>rapports de chantier</span> interminables ?</div>
<div class="sub">Pleins d'erreurs... et qui prennent 3 plombes.</div>
</div>
<script>
setTimeout(function(){
  gsap.to('.emoji',{opacity:1,scale:1,duration:0.5,ease:'back.out(1.7)'});
  gsap.from('.hl',{opacity:0,y:50,duration:0.7,delay:0.3,ease:'power3.out'});
  gsap.from('.sub',{opacity:0,y:30,duration:0.5,delay:1.0});
},100);
</script></body></html>"""

print("Starting...")
with sync_playwright() as p:
    print("Launching browser...")
    browser = p.chromium.launch(
        executable_path='/usr/bin/chromium',
        headless=True,
        args=['--no-sandbox','--disable-gpu','--disable-dev-shm-usage']
    )
    print("Browser started")
    page = browser.new_page()
    page.set_viewport_size({"width": W, "height": H})
    print("Page opened")
    tmp = f'{BASE}/_test_gsap.html'
    with open(tmp, 'w') as f:
        f.write(html_content)
    page.goto(f'file://{tmp}', wait_until='networkidle')
    print("Page loaded, waiting for GSAP...")
    page.wait_for_timeout(1500)
    print("Taking screenshots...")
    for frame in range(FPS * 3):
        t = frame / FPS
        page.evaluate(f"gsap.globalTimeline.time({t});gsap.globalTimeline.pause();")
        page.screenshot(path=f'{BASE}/frames/01-hook/frame_{frame:05d}.png', clip={"x":0,"y":0,"width":W,"height":H})
        if frame % 10 == 0:
            print(f"  Frame {frame}")
    page.close()
    browser.close()
print("Done!")
