#!/usr/bin/env python3
"""Take screenshot of .onion site via Tor using Playwright headless Chromium"""
import sys
import asyncio
from playwright.async_api import async_playwright


async def screenshot(url, output_path="/tmp/onion-screenshot.png"):
    async with async_playwright() as p:
        browser = await p.chromium.launch(
            headless=True,
            proxy={"server": "socks5://127.0.0.1:9050"},
            args=["--no-sandbox", "--disable-gpu"]
        )
        page = await browser.new_page(viewport={"width": 1280, "height": 900})
        try:
            await page.goto(url, timeout=60000, wait_until="networkidle")
            await page.screenshot(path=output_path, full_page=True)
            print(f"OK:{output_path}")
        except Exception as e:
            print(f"ERROR:{e}")
        finally:
            await browser.close()


if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Usage: darknet-screenshot.py <url> [output.png]")
        sys.exit(1)
    url = sys.argv[1]
    out = sys.argv[2] if len(sys.argv) > 2 else "/tmp/onion-screenshot.png"
    asyncio.run(screenshot(url, out))
