From c8907a47a496e9b76194fad4df1d8cee0165838e Mon Sep 17 00:00:00 2001 From: shoucandanghehe Date: Fri, 16 Aug 2024 18:52:47 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=A5=20=E6=8F=92=E4=BB=B6=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=8E=B0=E5=9C=A8=E4=BD=BF=E7=94=A8=20ScopedConfig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nonebot_plugin_tetris_stats/config/config.py | 12 +++++++----- nonebot_plugin_tetris_stats/utils/request.py | 2 +- nonebot_plugin_tetris_stats/utils/screenshot.py | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) 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')