添加 development 模式

This commit is contained in:
2025-04-28 04:08:55 +08:00
parent d0fc82d88d
commit 8b7de6745b
4 changed files with 24 additions and 11 deletions

View File

@@ -18,6 +18,7 @@ class ScopedConfig(BaseModel):
request_timeout: float = 30.0 request_timeout: float = 30.0
screenshot_quality: float = 2 screenshot_quality: float = 2
proxy: Proxy = Field(default_factory=Proxy) proxy: Proxy = Field(default_factory=Proxy)
development: bool = False
class Config(BaseModel): class Config(BaseModel):

View File

@@ -12,6 +12,7 @@ from nonebot_plugin_apscheduler import scheduler
from nonebot_plugin_orm import get_session from nonebot_plugin_orm import get_session
from sqlalchemy import select from sqlalchemy import select
from ....config.config import config
from ....utils.exception import RequestError from ....utils.exception import RequestError
from ....utils.retry import retry from ....utils.retry import retry
from .. import alc from .. import alc
@@ -136,14 +137,16 @@ async def get_tetra_league_data() -> None:
await session.commit() await session.commit()
@driver.on_startup if not config.tetris.development:
async def _() -> None:
async with get_session() as session: @driver.on_startup
latest_time = await session.scalar( async def _() -> None:
select(TETRIOLeagueStats.update_time).order_by(TETRIOLeagueStats.id.desc()).limit(1) async with get_session() as session:
) latest_time = await session.scalar(
if latest_time is None or datetime.now(tz=UTC) - latest_time.replace(tzinfo=UTC) > timedelta(hours=6): select(TETRIOLeagueStats.update_time).order_by(TETRIOLeagueStats.id.desc()).limit(1)
await get_tetra_league_data() )
if latest_time is None or datetime.now(tz=UTC) - latest_time.replace(tzinfo=UTC) > timedelta(hours=6):
await get_tetra_league_data()
from . import all, detail # noqa: A004, E402 from . import all, detail # noqa: A004, E402

View File

@@ -10,6 +10,8 @@ from nonebot.log import logger
from playwright.__main__ import main from playwright.__main__ import main
from playwright.async_api import Browser, BrowserContext, async_playwright from playwright.async_api import Browser, BrowserContext, async_playwright
from ..config.config import config
driver = get_driver() driver = get_driver()
global_config = driver.config global_config = driver.config
@@ -76,6 +78,7 @@ class BrowserManager:
"""启动浏览器实例""" """启动浏览器实例"""
playwright = await async_playwright().start() playwright = await async_playwright().start()
cls._browser = await playwright.firefox.launch( cls._browser = await playwright.firefox.launch(
headless=not config.tetris.development,
firefox_user_prefs={ firefox_user_prefs={
'network.http.max-persistent-connections-per-server': 64, 'network.http.max-persistent-connections-per-server': 64,
}, },

View File

@@ -12,7 +12,7 @@ from nonebot import get_app, get_driver
from nonebot.log import logger from nonebot.log import logger
from yarl import URL from yarl import URL
from ..config.config import CACHE_PATH from ..config.config import CACHE_PATH, config
from ..games.tetrio.api.cache import request from ..games.tetrio.api.cache import request
from .image import img_to_png from .image import img_to_png
from .templates import TEMPLATES_DIR from .templates import TEMPLATES_DIR
@@ -45,8 +45,14 @@ class HostPage:
async def __aenter__(self) -> str: async def __aenter__(self) -> str:
return self.page_hash return self.page_hash
async def __aexit__(self, exc_type, exc, tb) -> None: # noqa: ANN001 if not config.tetris.development:
self.pages.pop(self.page_hash, None)
async def __aexit__(self, exc_type, exc, tb) -> None: # noqa: ANN001
self.pages.pop(self.page_hash, None)
else:
async def __aexit__(self, exc_type, exc, tb) -> None: # noqa: ANN001
pass
@driver.on_startup @driver.on_startup