From 86b95f0891e009fc8ae74673c38676f8e8d7cca5 Mon Sep 17 00:00:00 2001 From: KimgiaiiWuyi <444835641@qq.com> Date: Sun, 5 Jun 2022 16:48:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=80=9A=E8=BF=87uid?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E6=9F=A5=E8=AF=A2=E5=85=B6=E4=BB=96=E7=8E=A9?= =?UTF-8?q?=E5=AE=B6=E7=9A=84=E5=B1=95=E6=9F=9C=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- genshinuid.py | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/genshinuid.py b/genshinuid.py index 8a316b36..81abef1f 100644 --- a/genshinuid.py +++ b/genshinuid.py @@ -901,7 +901,7 @@ async def send_uid_info(bot: HoshinoBot, ev: CQEvent): except Exception as e: await bot.send(ev, '获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。'.format(e)) logger.exception('上期深渊数据获取失败(数据状态问题)') - else: + elif m == '': try: im = await draw_pic(uid, ev.sender['nickname'], image, 2) if im.startswith('base64://'): @@ -917,6 +917,50 @@ async def send_uid_info(bot: HoshinoBot, ev: CQEvent): except Exception as e: await bot.send(ev, '获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。'.format(e)) logger.exception('数据获取失败(数据状态问题)') + else: + try: + if m == '展柜角色': + uid_fold = R_PATH / 'enkaToData' / 'player' / str(uid) + char_file_list = uid_fold.glob('*') + char_list = [] + for i in char_file_list: + file_name = str(i).split('/')[-1] + if '\u4e00' <= file_name[0] <= '\u9fff': + char_list.append(file_name.split('.')[0]) + char_list_str = ','.join(char_list) + await bot.send(ev, f'UID{uid}当前缓存角色:{char_list_str}', at_sender=True) + else: + char_name = m + with open(os.path.join(INDEX_PATH, 'char_alias.json'), + 'r', + encoding='utf8') as fp: + char_data = json.load(fp) + for i in char_data: + if char_name in i: + char_name = i + else: + for k in char_data[i]: + if char_name in k: + char_name = i + + with open(R_PATH / 'enkaToData' / 'player' / str(uid) / f'{char_name}.json', + 'r', + encoding='utf8') as fp: + raw_data = json.load(fp) + im = await draw_char_card(raw_data, image) + await bot.send(ev, MessageSegment.image(im), at_sender=True) + except FileNotFoundError: + await bot.send(ev, f'你还没有{m}的缓存噢!\n请先使用【强制刷新】命令来缓存数据!\n或者使用【查询展柜角色】命令查看已缓存角色!', at_sender=True) + logger.exception('获取信息失败,你可以使用强制刷新命令进行刷新。') + except ActionFailed as e: + await bot.send(ev, '机器人发送消息失败:{}'.format(e)) + logger.exception('发送uid信息失败') + except TypeError: + await bot.send(ev, '获取失败,可能是Cookies失效或者未打开米游社角色详情开关。') + logger.exception('数据获取失败(Cookie失效/不公开信息)') + except Exception as e: + await bot.send(ev, '获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。'.format(e)) + logger.exception('数据获取失败(数据状态问题)') except Exception as e: await bot.send(ev, '发生错误 {},请检查后台输出。'.format(e)) logger.exception('uid查询异常')