️ 优化截图逻辑

This commit is contained in:
2024-06-27 13:53:34 +08:00
parent 84b74278a6
commit f61bbd00b7

View File

@@ -1,5 +1,5 @@
from nonebot import get_plugin_config
from playwright.async_api import TimeoutError
from playwright.async_api import TimeoutError, ViewportSize
from ..config.config import Config
from .browser import BrowserManager
@@ -12,10 +12,18 @@ config = get_plugin_config(Config)
async def screenshot(url: str) -> bytes:
browser = await BrowserManager.get_browser()
async with (
await browser.new_page(
viewport={'width': 3000, 'height': 3000}, device_scale_factor=config.tetris_screenshot_quality
) as page,
await browser.new_page(device_scale_factor=config.tetris_screenshot_quality) as page,
):
await page.goto(url)
await page.wait_for_load_state('networkidle')
size: ViewportSize = await page.evaluate("""
() => {
const element = document.querySelector('#content');
return {
width: element.offsetWidth,
height: element.offsetHeight,
};
};
""")
await page.set_viewport_size(size)
return await page.locator('id=content').screenshot(timeout=5000, type='png')