适配 bind
Some checks failed
TypeCheck / TypeCheck (push) Has been cancelled

This commit is contained in:
2025-04-15 03:30:30 +08:00
parent f90be2ef9c
commit 86198df4ed
9 changed files with 36 additions and 14 deletions

View File

@@ -13,6 +13,7 @@ from yarl import URL
from ...db import BindStatus, create_or_update_bind, trigger from ...db import BindStatus, create_or_update_bind, trigger
from ...utils.host import HostPage, get_self_netloc from ...utils.host import HostPage, get_self_netloc
from ...utils.image import get_avatar from ...utils.image import get_avatar
from ...utils.lang import get_lang
from ...utils.render import Bind, render from ...utils.render import Bind, render
from ...utils.render.schemas.base import Avatar, People from ...utils.render.schemas.base import Avatar, People
from ...utils.screenshot import screenshot from ...utils.screenshot import screenshot
@@ -65,7 +66,7 @@ async def _(nb_user: User, account: Player, event_session: EventSession, bot_inf
'v1/binding', 'v1/binding',
Bind( Bind(
platform='TETR.IO', platform='TETR.IO',
status='unknown', type='unknown',
user=People( user=People(
avatar=str( avatar=str(
URL(f'http://{netloc}/host/resource/tetrio/avatars/{user.ID}') URL(f'http://{netloc}/host/resource/tetrio/avatars/{user.ID}')
@@ -79,7 +80,8 @@ async def _(nb_user: User, account: Player, event_session: EventSession, bot_inf
avatar=await get_avatar(bot_info, 'Data URI', '../../static/logo/logo.svg'), avatar=await get_avatar(bot_info, 'Data URI', '../../static/logo/logo.svg'),
name=bot_info.user_name, name=bot_info.user_name,
), ),
command='io查我', prompt='io查我',
_lang=get_lang(),
), ),
) )
) as page_hash: ) as page_hash:

View File

@@ -13,6 +13,7 @@ from yarl import URL
from ...db import query_bind_info, remove_bind, trigger from ...db import query_bind_info, remove_bind, trigger
from ...utils.host import HostPage, get_self_netloc from ...utils.host import HostPage, get_self_netloc
from ...utils.image import get_avatar from ...utils.image import get_avatar
from ...utils.lang import get_lang
from ...utils.render import Bind, render from ...utils.render import Bind, render
from ...utils.render.schemas.base import Avatar, People from ...utils.render.schemas.base import Avatar, People
from ...utils.screenshot import screenshot from ...utils.screenshot import screenshot
@@ -53,7 +54,7 @@ async def _(nb_user: User, event_session: EventSession, bot_info: UserInfo = Bot
'v1/binding', 'v1/binding',
Bind( Bind(
platform='TETR.IO', platform='TETR.IO',
status='unlink', type='unlink',
user=People( user=People(
avatar=str( avatar=str(
URL(f'http://{netloc}/host/resource/tetrio/avatars/{user.ID}') URL(f'http://{netloc}/host/resource/tetrio/avatars/{user.ID}')
@@ -67,7 +68,8 @@ async def _(nb_user: User, event_session: EventSession, bot_info: UserInfo = Bot
avatar=await get_avatar(bot_info, 'Data URI', '../../static/logo/logo.svg'), avatar=await get_avatar(bot_info, 'Data URI', '../../static/logo/logo.svg'),
name=bot_info.user_name, name=bot_info.user_name,
), ),
command='io绑定{游戏ID}', prompt='io绑定{游戏ID}',
_lang=get_lang(),
), ),
) )
) as page_hash: ) as page_hash:

View File

@@ -8,6 +8,7 @@ from nonebot_plugin_userinfo import BotUserInfo, EventUserInfo, UserInfo
from ...db import BindStatus, create_or_update_bind, trigger from ...db import BindStatus, create_or_update_bind, trigger
from ...utils.host import HostPage, get_self_netloc from ...utils.host import HostPage, get_self_netloc
from ...utils.image import get_avatar from ...utils.image import get_avatar
from ...utils.lang import get_lang
from ...utils.render import Bind, render from ...utils.render import Bind, render
from ...utils.render.schemas.base import People from ...utils.render.schemas.base import People
from ...utils.screenshot import screenshot from ...utils.screenshot import screenshot
@@ -44,7 +45,7 @@ async def _(
'v1/binding', 'v1/binding',
Bind( Bind(
platform=GAME_TYPE, platform=GAME_TYPE,
status='unknown', type='unknown',
user=People( user=People(
avatar=await get_avatar(event_user_info, 'Data URI', None), avatar=await get_avatar(event_user_info, 'Data URI', None),
name=user.user_name, name=user.user_name,
@@ -53,7 +54,8 @@ async def _(
avatar=await get_avatar(bot_info, 'Data URI', '../../static/logo/logo.svg'), avatar=await get_avatar(bot_info, 'Data URI', '../../static/logo/logo.svg'),
name=bot_info.user_name, name=bot_info.user_name,
), ),
command='top查我', prompt='top查我',
_lang=get_lang(),
), ),
) )
) as page_hash: ) as page_hash:

View File

@@ -9,6 +9,7 @@ from nonebot_plugin_waiter import suggest # type: ignore[import-untyped]
from ...db import query_bind_info, remove_bind, trigger from ...db import query_bind_info, remove_bind, trigger
from ...utils.host import HostPage, get_self_netloc from ...utils.host import HostPage, get_self_netloc
from ...utils.image import get_avatar from ...utils.image import get_avatar
from ...utils.lang import get_lang
from ...utils.render import Bind, render from ...utils.render import Bind, render
from ...utils.render.schemas.base import People from ...utils.render.schemas.base import People
from ...utils.screenshot import screenshot from ...utils.screenshot import screenshot
@@ -46,7 +47,7 @@ async def _(
'v1/binding', 'v1/binding',
Bind( Bind(
platform='TOP', platform='TOP',
status='unlink', type='unlink',
user=People( user=People(
avatar=await get_avatar(event_user_info, 'Data URI', None), avatar=await get_avatar(event_user_info, 'Data URI', None),
name=user.user_name, name=user.user_name,
@@ -55,7 +56,8 @@ async def _(
avatar=await get_avatar(bot_info, 'Data URI', '../../static/logo/logo.svg'), avatar=await get_avatar(bot_info, 'Data URI', '../../static/logo/logo.svg'),
name=bot_info.user_name, name=bot_info.user_name,
), ),
command='top绑定{游戏ID}', prompt='top绑定{游戏ID}',
_lang=get_lang(),
), ),
) )
) as page_hash: ) as page_hash:

View File

@@ -8,6 +8,7 @@ from nonebot_plugin_userinfo import BotUserInfo, EventUserInfo, UserInfo
from ...db import BindStatus, create_or_update_bind, trigger from ...db import BindStatus, create_or_update_bind, trigger
from ...utils.host import HostPage, get_self_netloc from ...utils.host import HostPage, get_self_netloc
from ...utils.image import get_avatar from ...utils.image import get_avatar
from ...utils.lang import get_lang
from ...utils.render import Bind, render from ...utils.render import Bind, render
from ...utils.render.schemas.base import People from ...utils.render.schemas.base import People
from ...utils.screenshot import screenshot from ...utils.screenshot import screenshot
@@ -45,7 +46,7 @@ async def _(
'v1/binding', 'v1/binding',
Bind( Bind(
platform=GAME_TYPE, platform=GAME_TYPE,
status='unknown', type='unknown',
user=People( user=People(
avatar=await get_avatar(event_user_info, 'Data URI', None), name=user_info.data.name avatar=await get_avatar(event_user_info, 'Data URI', None), name=user_info.data.name
), ),
@@ -53,7 +54,8 @@ async def _(
avatar=await get_avatar(bot_info, 'Data URI', '../../static/logo/logo.svg'), avatar=await get_avatar(bot_info, 'Data URI', '../../static/logo/logo.svg'),
name=bot_info.user_remark or bot_info.user_displayname or bot_info.user_name, name=bot_info.user_remark or bot_info.user_displayname or bot_info.user_name,
), ),
command='茶服查我', prompt='茶服查我',
_lang=get_lang(),
), ),
) )
) as page_hash: ) as page_hash:

View File

@@ -9,6 +9,7 @@ from nonebot_plugin_waiter import suggest # type: ignore[import-untyped]
from ...db import query_bind_info, remove_bind, trigger from ...db import query_bind_info, remove_bind, trigger
from ...utils.host import HostPage, get_self_netloc from ...utils.host import HostPage, get_self_netloc
from ...utils.image import get_avatar from ...utils.image import get_avatar
from ...utils.lang import get_lang
from ...utils.render import Bind, render from ...utils.render import Bind, render
from ...utils.render.avatar import get_avatar as get_random_avatar from ...utils.render.avatar import get_avatar as get_random_avatar
from ...utils.render.schemas.base import People from ...utils.render.schemas.base import People
@@ -47,7 +48,7 @@ async def _(
'v1/binding', 'v1/binding',
Bind( Bind(
platform='TOS', platform='TOS',
status='unlink', type='unlink',
user=People( user=People(
avatar=await get_avatar(event_user_info, 'Data URI', None) avatar=await get_avatar(event_user_info, 'Data URI', None)
if event_user_info is not None if event_user_info is not None
@@ -58,7 +59,8 @@ async def _(
avatar=await get_avatar(bot_info, 'Data URI', '../../static/logo/logo.svg'), avatar=await get_avatar(bot_info, 'Data URI', '../../static/logo/logo.svg'),
name=bot_info.user_name, name=bot_info.user_name,
), ),
command='茶服绑定{游戏ID}', prompt='茶服绑定{游戏ID}',
_lang=get_lang(),
), ),
) )
) as page_hash: ) as page_hash:

View File

@@ -0,0 +1,8 @@
from typing import cast
from ..i18n.model import Lang
from .typedefs import Lang as LangType
def get_lang() -> LangType:
return cast('LangType', Lang.template.template_language())

View File

@@ -4,11 +4,11 @@ from typing import Literal
from pydantic import BaseModel from pydantic import BaseModel
from strenum import StrEnum from strenum import StrEnum
from ...typedefs import Number from ...typedefs import Lang, Number
class Base(BaseModel): class Base(BaseModel):
_lang: Literal['zh-CN', 'en-US'] _lang: Lang
class Avatar(BaseModel): class Avatar(BaseModel):

View File

@@ -59,3 +59,5 @@ Me: TypeAlias = Literal[
'self', 'self',
'oneself', 'oneself',
] ]
Lang: TypeAlias = Literal['zh-CN', 'en-US']