mirror of
https://github.com/A-Minos/nonebot-plugin-tetris-stats.git
synced 2026-03-05 05:36:54 +08:00
✨ 添加 development 模式
This commit is contained in:
@@ -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):
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user