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