diff --git a/nonebot_plugin_tetris_stats/config/config.py b/nonebot_plugin_tetris_stats/config/config.py index fa49f12..34134eb 100644 --- a/nonebot_plugin_tetris_stats/config/config.py +++ b/nonebot_plugin_tetris_stats/config/config.py @@ -10,3 +10,4 @@ class Config(BaseModel): """配置类""" tetris_req_timeout: float = 30.0 + tetris_screenshot_quality: float = 2 diff --git a/nonebot_plugin_tetris_stats/utils/screenshot.py b/nonebot_plugin_tetris_stats/utils/screenshot.py index 77061e7..bad942a 100644 --- a/nonebot_plugin_tetris_stats/utils/screenshot.py +++ b/nonebot_plugin_tetris_stats/utils/screenshot.py @@ -1,14 +1,20 @@ +from nonebot import get_plugin_config from playwright.async_api import TimeoutError +from ..config.config import Config from .browser import BrowserManager from .retry import retry +config = get_plugin_config(Config) + @retry(exception_type=TimeoutError, reply='截图失败, 重试中') async def screenshot(url: str) -> bytes: browser = await BrowserManager.get_browser() async with ( - await browser.new_page(viewport={'width': 3000, 'height': 3000}) as page, + await browser.new_page( + viewport={'width': 3000, 'height': 3000}, device_scale_factor=config.tetris_screenshot_quality + ) as page, ): await page.goto(url) await page.wait_for_load_state('networkidle')