From efeaf49d0b10ceb7e96472406f66e3e3dfdce599 Mon Sep 17 00:00:00 2001 From: KimigaiiWuyi <444835641@qq.com> Date: Tue, 3 Oct 2023 01:52:24 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20=E4=BF=AE=E6=94=B9`=E5=BC=BA?= =?UTF-8?q?=E5=88=B6=E5=88=B7=E6=96=B0`=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E4=B8=BA=E7=89=B9=E5=AE=9A=E5=B9=B3=E5=8F=B0=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E5=8F=8D=E9=A6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GenshinUID/genshinuid_enka/__init__.py | 10 +++++++--- GenshinUID/genshinuid_enka/to_card.py | 7 ++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/GenshinUID/genshinuid_enka/__init__.py b/GenshinUID/genshinuid_enka/__init__.py index b7d4bf12..aa1b9014 100644 --- a/GenshinUID/genshinuid_enka/__init__.py +++ b/GenshinUID/genshinuid_enka/__init__.py @@ -216,10 +216,14 @@ async def send_card_info(bot: Bot, ev: Event): uid = await get_uid(bot, ev) if uid is None: return await bot.send(UID_HINT) - await bot.logger.info('[强制刷新]uid: {}'.format(uid)) + logger.info('[强制刷新]uid: {}'.format(uid)) im = await enka_to_card(uid) - await bot.logger.info(f'UID{uid}获取角色数据成功!') - await bot.send(im) + logger.info(f'UID{uid}获取角色数据成功!') + + if isinstance(im, Tuple): + await bot.send_option(im[0], [f'查询{i["avatarName"]}' for i in im[1]]) + else: + await bot.send(im) @sv_get_enka.on_command('毕业度统计') diff --git a/GenshinUID/genshinuid_enka/to_card.py b/GenshinUID/genshinuid_enka/to_card.py index ffc27c67..8b50a4ff 100644 --- a/GenshinUID/genshinuid_enka/to_card.py +++ b/GenshinUID/genshinuid_enka/to_card.py @@ -1,6 +1,6 @@ import asyncio from pathlib import Path -from typing import List, Union, Optional +from typing import Dict, List, Tuple, Union, Optional from PIL import Image, ImageDraw from gsuid_core.utils.api.enka.models import EnkaData @@ -27,7 +27,7 @@ pic_204 = Image.open(TEXT_PATH / '204.png') async def enka_to_card( uid: str, enka_data: Optional[EnkaData] = None -) -> Union[str, bytes]: +) -> Union[str, bytes, Tuple[bytes, List[Dict]]]: char_data_list = await enka_to_dict(uid, enka_data) if isinstance(char_data_list, str): if '服务器正在维护或者关闭中' in char_data_list: @@ -41,7 +41,7 @@ async def enka_to_card( return await convert_img(pic_500) img = await draw_enka_card(uid=uid, char_data_list=char_data_list) - return img + return img, char_data_list async def draw_enka_card( @@ -96,6 +96,7 @@ async def draw_enka_card( for index, char_data in enumerate(char_data_list): tasks.append(draw_enka_char(index, img, char_data)) await asyncio.gather(*tasks) + img = img.resize((500, 340)) img = await convert_img(img) return img