diff --git a/nonebot_plugin_tetris_stats/config/config.py b/nonebot_plugin_tetris_stats/config/config.py index 77946bd..4f50795 100644 --- a/nonebot_plugin_tetris_stats/config/config.py +++ b/nonebot_plugin_tetris_stats/config/config.py @@ -1,13 +1,15 @@ from pathlib import Path from nonebot_plugin_localstore import get_cache_dir -from pydantic import BaseModel +from pydantic import BaseModel, Field CACHE_PATH: Path = get_cache_dir('nonebot_plugin_tetris_stats') -class Config(BaseModel): - """配置类""" +class ScopedConfig(BaseModel): + request_timeout: float = 30.0 + screenshot_quality: float = 2 - tetris_req_timeout: float = 30.0 - tetris_screenshot_quality: float = 2 + +class Config(BaseModel): + tetris: ScopedConfig = Field(default_factory=ScopedConfig) diff --git a/nonebot_plugin_tetris_stats/utils/request.py b/nonebot_plugin_tetris_stats/utils/request.py index 9cca5f0..bd5f3b6 100644 --- a/nonebot_plugin_tetris_stats/utils/request.py +++ b/nonebot_plugin_tetris_stats/utils/request.py @@ -119,7 +119,7 @@ class Request: async def request(cls, url: str, *, is_json: bool = True) -> bytes: """请求api""" try: - async with AsyncClient(cookies=cls._cookies, timeout=config.tetris_req_timeout) as session: + async with AsyncClient(cookies=cls._cookies, timeout=config.tetris.request_timeout) as session: response = await session.get(url, headers=cls._headers) if response.status_code != HTTPStatus.OK: msg = f'请求错误 code: {response.status_code} {HTTPStatus(response.status_code).phrase}\n{response.text}' diff --git a/nonebot_plugin_tetris_stats/utils/screenshot.py b/nonebot_plugin_tetris_stats/utils/screenshot.py index 48a9da2..85587c5 100644 --- a/nonebot_plugin_tetris_stats/utils/screenshot.py +++ b/nonebot_plugin_tetris_stats/utils/screenshot.py @@ -14,7 +14,7 @@ config = get_plugin_config(Config) async def screenshot(url: str) -> bytes: browser = await BrowserManager.get_browser() async with ( - await browser.new_page(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')