import asyncio
from playwright.async_api import async_playwright

async def render():
    async with async_playwright() as p:
        browser = await p.chromium.launch()

        banners = [
            {
                "html": "/home/jay/workspace/output/banners/versions/v-round2/cell-4-ga-fair/meta-feed-1080x1080.html",
                "png": "/home/jay/workspace/output/banners/versions/v-round2/cell-4-ga-fair/meta-feed-1080x1080.png",
                "width": 1080, "height": 1080
            },
            {
                "html": "/home/jay/workspace/output/banners/versions/v-round2/cell-4-ga-fair/google-resp-1200x628.html",
                "png": "/home/jay/workspace/output/banners/versions/v-round2/cell-4-ga-fair/google-resp-1200x628.png",
                "width": 1200, "height": 628
            },
            {
                "html": "/home/jay/workspace/output/banners/versions/v-round2/cell-5-ga-leader/google-resp-1200x628.html",
                "png": "/home/jay/workspace/output/banners/versions/v-round2/cell-5-ga-leader/google-resp-1200x628.png",
                "width": 1200, "height": 628
            },
        ]

        for b in banners:
            page = await browser.new_page(viewport={"width": b["width"], "height": b["height"]})
            await page.goto(f"file://{b['html']}")
            await page.wait_for_timeout(1000)
            await page.screenshot(path=b["png"], full_page=False)
            await page.close()
            print(f"Rendered: {b['png']}")

        await browser.close()

asyncio.run(render())
