#!/usr/bin/env python3
"""컨셉 #17 뉴스플래시 배너 v2 — Playwright 렌더러 (hybrid-image 방식)"""

import shutil
from pathlib import Path
from playwright.sync_api import sync_playwright

BASE_DIR = Path("/home/jay/workspace/output/meta-ads/concept-catalog/17-number-newsflash")
TEMPLATE = BASE_DIR / "template-v2.html"
OUTPUT_1 = BASE_DIR / "sample-v2.png"
OUTPUT_2 = BASE_DIR / "17-number-newsflash-v2.png"

# 기존 sample.png 덮어쓰기 방지
PROTECTED = BASE_DIR / "sample.png"


def render():
    assert TEMPLATE.exists(), f"템플릿 없음: {TEMPLATE}"
    assert not OUTPUT_1.name == PROTECTED.name, "sample.png 덮어쓰기 금지"

    with sync_playwright() as p:
        browser = p.chromium.launch()
        page = browser.new_page(viewport={"width": 1080, "height": 1080})

        template_url = f"file://{TEMPLATE.resolve()}"
        page.goto(template_url, wait_until="networkidle")

        # 폰트 로딩 대기
        page.wait_for_timeout(2500)

        OUTPUT_1.parent.mkdir(parents=True, exist_ok=True)
        page.screenshot(path=str(OUTPUT_1), type="png", full_page=False)
        browser.close()

    size_kb = OUTPUT_1.stat().st_size / 1024
    print(f"저장 완료 1: {OUTPUT_1}  ({size_kb:.0f} KB)")

    # 2번 경로로 복사
    shutil.copy2(OUTPUT_1, OUTPUT_2)
    size_kb2 = OUTPUT_2.stat().st_size / 1024
    print(f"저장 완료 2: {OUTPUT_2}  ({size_kb2:.0f} KB)")

    # 기존 sample.png가 건재한지 확인
    assert PROTECTED.exists(), "sample.png가 사라졌습니다!"
    print(f"기존 sample.png 안전 확인: {PROTECTED}")


if __name__ == "__main__":
    render()
