mirror of
https://github.com/A-Minos/nonebot-plugin-tetris-stats.git
synced 2026-03-05 05:36:54 +08:00
⚡️ 优化截图逻辑
This commit is contained in:
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user