mirror of
https://github.com/A-Minos/nonebot-plugin-tetris-stats.git
synced 2026-03-05 05:36:54 +08:00
* 🔧 启用一些 ruff 的新规则 * ➕ 添加开发依赖 nonebot-adapter-qq * ➕ 添加依赖 nonebot-plugin-session * ➕ 添加依赖 nonebot-plugin-session-orm * 🔧 忽略 ruff 规则 ISC001 format 冲突风险 * 🚨 修复 ruff 警报 * ♻️ 重构! * ♻️ 恢复定时获取 TetraLeague 数据的功能 * ✨ 统一处理需要捕获的错误 * ✨ 记录用户触发的指令
30 lines
935 B
Python
30 lines
935 B
Python
from typing import Literal, overload
|
|
|
|
from jinja2 import Environment, FileSystemLoader
|
|
from nonebot.compat import PYDANTIC_V2
|
|
|
|
from ..templates import templates_dir
|
|
from .schemas.bind import Bind
|
|
from .schemas.tetrio_info import TETRIOInfo
|
|
|
|
env = Environment(
|
|
loader=FileSystemLoader(templates_dir), autoescape=True, trim_blocks=True, lstrip_blocks=True, enable_async=True
|
|
)
|
|
|
|
|
|
@overload
|
|
async def render(render_type: Literal['binding'], data: Bind) -> str: ...
|
|
|
|
|
|
@overload
|
|
async def render(render_type: Literal['tetrio/info'], data: TETRIOInfo) -> str: ...
|
|
|
|
|
|
async def render(render_type: Literal['binding', 'tetrio/info'], data: Bind | TETRIOInfo) -> str:
|
|
if PYDANTIC_V2:
|
|
return await env.get_template('index.html').render_async(path=render_type, data=data.model_dump_json())
|
|
return await env.get_template('index.html').render_async(path=render_type, data=data.json())
|
|
|
|
|
|
__all__ = ['render', 'Bind', 'TETRIOInfo']
|