# fetch_public.py
import asyncio, sys
from playwright.async_api import async_playwright

async def main(url: str):
    async with async_playwright() as p:
        browser = await p.chromium.launch(
            headless=True,
            args=[
                "--no-sandbox",
                "--disable-setuid-sandbox",
                "--disable-dev-shm-usage",
                "--disable-gpu",
                "--no-zygote",
            ],
        )
        context = await browser.new_context()
        page = await context.new_page()
        try:
            await page.goto(url, wait_until="domcontentloaded", timeout=30000)
            html = await page.content()
            print(html)
        finally:
            await context.close()
            await browser.close()

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Usage: python fetch_public.py <URL>", file=sys.stderr)
        sys.exit(1)
    asyncio.run(main(sys.argv[1]))
