import asyncio
import os
import jdatetime
from playwright.async_api import async_playwright

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
HTML_FILE = os.path.join(BASE_DIR, 'template.html')
OUTPUT_IMAGE = os.path.join(BASE_DIR, 'outputs', 'html_story.png')

def to_persian_numbers(text):
    fa_digits = '۰۱۲۳۴۵۶۷۸۹'
    en_digits = '0123456789'
    for en, fa in zip(en_digits, fa_digits):
        text = text.replace(en, fa)
    return text

async def render_story():
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=True)
        page = await browser.new_page(viewport={"width": 1080, "height": 1920})
        
        # لود فایل HTML
        await page.goto(f"file://{HTML_FILE}")
        await page.wait_for_timeout(300) # اطمینان از لود کامل فونت‌ها
        
        # گرفتن اسکرین‌شات تمیز در کسری از ثانیه
        os.makedirs(os.path.join(BASE_DIR, 'outputs'), exist_ok=True)
        await page.screenshot(path=OUTPUT_IMAGE, quality=95, type="png")
        await browser.close()
        print(f"SUCCESS: عکس با کروم رندر شد -> {OUTPUT_IMAGE}")

if __name__ == "__main__":
    asyncio.run(render_story())
