mirror of
https://github.com/A-Minos/nonebot-plugin-tetris-stats.git
synced 2026-03-05 05:36:54 +08:00
70 lines
1.6 KiB
Python
70 lines
1.6 KiB
Python
from typing import Any, Literal, overload
|
|
|
|
from jinja2 import Environment, FileSystemLoader
|
|
|
|
from ..game_data_processor.io_data_processor.typing import Rank
|
|
from ..templates import path
|
|
from .typing import GameType
|
|
|
|
Bind = Literal['bind.j2.html']
|
|
Data = Literal['data.j2.html']
|
|
|
|
env = Environment(
|
|
loader=FileSystemLoader(path), autoescape=True, trim_blocks=True, lstrip_blocks=True, enable_async=True
|
|
)
|
|
|
|
|
|
@overload
|
|
async def render(
|
|
template: Bind,
|
|
*,
|
|
user_avatar: str,
|
|
state: Literal['error', 'success', 'unknown', 'unlink', 'unverified'],
|
|
bot_avatar: str,
|
|
game_type: GameType,
|
|
user_name: str,
|
|
bot_name: str,
|
|
command: str,
|
|
) -> str: ...
|
|
|
|
|
|
@overload
|
|
async def render(
|
|
template: Data,
|
|
*,
|
|
user_avatar: str,
|
|
user_name: str,
|
|
user_sign: str | None,
|
|
game_type: Literal['TETR.IO'],
|
|
ranking: str | float,
|
|
rd: str | float,
|
|
rank: Rank,
|
|
TR: str | float, # noqa: N803
|
|
global_rank: str | int,
|
|
lpm: str | float,
|
|
pps: str | float,
|
|
apm: str | float,
|
|
apl: str | float,
|
|
adpm: str | float,
|
|
adpl: str | float,
|
|
vs: str | float,
|
|
sprint: str,
|
|
blitz: str,
|
|
data: list[list[int | float]],
|
|
split_value: int,
|
|
offset: int,
|
|
value_max: int,
|
|
value_min: int,
|
|
app: str | float,
|
|
dsps: str | float,
|
|
dspp: str | float,
|
|
ci: str | float,
|
|
ge: str | float,
|
|
) -> str: ...
|
|
|
|
|
|
async def render(template: Bind | Data, **kwargs: Any) -> str:
|
|
if kwargs['game_type'] == 'IO':
|
|
kwargs['game_type'] = 'TETR.IO'
|
|
return await env.get_template(template).render_async(**kwargs)
|