From 9fb176b4bca573765987bb47f5ebd1ac3de30934 Mon Sep 17 00:00:00 2001 From: shoucandanghehe Date: Fri, 16 Aug 2024 03:42:11 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E7=A1=AE=E4=BF=9D=E5=90=8C?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E8=B4=A6=E5=8F=B7=E7=94=9F=E6=88=90=E7=9A=84?= =?UTF-8?q?=E9=9A=8F=E6=9C=BA=E5=A4=B4=E5=83=8F=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nonebot_plugin_tetris_stats/games/top/query.py | 2 +- nonebot_plugin_tetris_stats/games/tos/query.py | 2 +- .../utils/render/avatar/__init__.py | 11 ++++++----- .../utils/render/avatar/draw/__init__.py | 6 +++--- .../utils/render/avatar/draw/tech/__init__.py | 2 +- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/nonebot_plugin_tetris_stats/games/top/query.py b/nonebot_plugin_tetris_stats/games/top/query.py index 881091c..2c46d27 100644 --- a/nonebot_plugin_tetris_stats/games/top/query.py +++ b/nonebot_plugin_tetris_stats/games/top/query.py @@ -78,7 +78,7 @@ async def make_query_image(profile: UserProfile) -> bytes: await render( 'v1/top/info', Info( - user=People(avatar=get_avatar(), name=profile.user_name), + user=People(avatar=get_avatar(profile.user_name), name=profile.user_name), today=InfoData(pps=today.pps, lpm=today.lpm, apm=today.apm, apl=today.apl), history=InfoData(pps=history.pps, lpm=history.lpm, apm=history.apm, apl=history.apl), ), diff --git a/nonebot_plugin_tetris_stats/games/tos/query.py b/nonebot_plugin_tetris_stats/games/tos/query.py index 7f02df6..da1ac08 100644 --- a/nonebot_plugin_tetris_stats/games/tos/query.py +++ b/nonebot_plugin_tetris_stats/games/tos/query.py @@ -223,7 +223,7 @@ async def make_query_image(user_info: UserInfoSuccess, game_data: GameData, even user=People( avatar=await get_avatar(event_user_info, 'Data URI', None) if event_user_info is not None - else get_random_avatar(), + else get_random_avatar(user_info.data.teaid), name=user_info.data.name, ), ranking=Ranking(rating=float(user_info.data.ranking), rd=round(float(user_info.data.rd_now), 2)), diff --git a/nonebot_plugin_tetris_stats/utils/render/avatar/__init__.py b/nonebot_plugin_tetris_stats/utils/render/avatar/__init__.py index 6048c4f..d1b3d64 100644 --- a/nonebot_plugin_tetris_stats/utils/render/avatar/__init__.py +++ b/nonebot_plugin_tetris_stats/utils/render/avatar/__init__.py @@ -1,6 +1,6 @@ from base64 import b64encode from io import BytesIO -from random import choice, randint +from random import Random from PIL import Image from PIL.Image import Resampling @@ -8,12 +8,13 @@ from PIL.Image import Resampling from .draw import PIECE_MEMBERS, SkinManager -def get_avatar() -> str: +def get_avatar(send: float | str | bytes | bytearray | None = None) -> str: + random = Random(send) # noqa: S311 skin = ( - SkinManager.get_skin() - .get_piece(choice(PIECE_MEMBERS)) # noqa: S311 + SkinManager.get_skin(send) + .get_piece(random.choice(PIECE_MEMBERS)) .rotate( - randint(-360, 360), # noqa: S311 + random.randint(-360, 360), expand=True, resample=Resampling.BICUBIC, ) diff --git a/nonebot_plugin_tetris_stats/utils/render/avatar/draw/__init__.py b/nonebot_plugin_tetris_stats/utils/render/avatar/draw/__init__.py index 1ea9e60..5372df6 100644 --- a/nonebot_plugin_tetris_stats/utils/render/avatar/draw/__init__.py +++ b/nonebot_plugin_tetris_stats/utils/render/avatar/draw/__init__.py @@ -1,6 +1,6 @@ from abc import ABC, abstractmethod from enum import Enum -from random import choice +from random import Random from typing import Any, ClassVar from PIL.Image import Image @@ -151,8 +151,8 @@ class SkinManager: cls.skin.append(skin) @classmethod - def get_skin(cls) -> 'Skin': - return choice(cls.skin) # noqa: S311 + def get_skin(cls, send: float | str | bytes | bytearray | None = None) -> 'Skin': + return Random(send).choice(cls.skin) # noqa: S311 class Skin(ABC): diff --git a/nonebot_plugin_tetris_stats/utils/render/avatar/draw/tech/__init__.py b/nonebot_plugin_tetris_stats/utils/render/avatar/draw/tech/__init__.py index 07816c5..981c1f3 100644 --- a/nonebot_plugin_tetris_stats/utils/render/avatar/draw/tech/__init__.py +++ b/nonebot_plugin_tetris_stats/utils/render/avatar/draw/tech/__init__.py @@ -90,5 +90,5 @@ class TechSkin(Skin): @driver.on_startup def _(): path = Path(__file__).parent / 'skins' - for i in path.iterdir(): + for i in sorted(path.iterdir()): TechSkin(i)