import hoshino,os from PIL import Image from hoshino import R,MessageSegment,aiorequests,logger,Service from hoshino.typing import CQEvent, Message from ..character_alias import get_id_by_alias from .blue import get_blue_pic from ..util import pil2b64 from hoshino.util import filt_message sv=hoshino.Service('原神角色wiki') res_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'res') @sv.on_prefix('角色攻略') @sv.on_suffix('角色攻略') async def genshinguide(bot,ev): name = ev.message.extract_plain_text().strip() realname = get_id_by_alias(name) if not realname: await bot.send(ev,f'没有找到{filt_message(name)}的攻略',at_sender=True) elif realname[1][0] in ['八重神子', '神里绫华', '神里绫人', '温迪', '七七', '雷电将军']: path = os.path.join(res_path, 'role_guide',f'{realname[1][0]}.png') cq_img = f'[CQ:image,file=file:///{path}]' await bot.send(ev,cq_img,at_sender=True) else: img = f'[CQ:image,file=https://adachi-bot.oss-cn-beijing.aliyuncs.com/Version2/guide/{realname[1][0]}.png]' await bot.send(ev,img) @sv.on_prefix('角色材料') @sv.on_suffix('角色材料') async def genshinmaterial(bot,ev): name = ev.message.extract_plain_text().strip() realname = get_id_by_alias(name) if name in ['夜兰', '久岐忍']: cq_img = f'[CQ:image,file=file:///{os.path.join(res_path, "role_material",f"{name}材料.png")}]' await bot.send(ev,cq_img,at_sender=True) elif not realname: await bot.send(ev,f'没有找到{filt_message(name)}的材料',at_sender=True) else: path = os.path.join(res_path, 'role_material',f'{realname[1][0]}材料.png') cq_img = f'[CQ:image,file=file:///{path}]' await bot.send(ev,cq_img,at_sender=True) @sv.on_prefix('参考面板') @sv.on_suffix('参考面板') async def genshinAttribute(bot,ev): name = ev.message.extract_plain_text().strip() if name not in ['风主', '岩主', '雷主']: realname = get_id_by_alias(name) if not realname: await bot.send(ev,f'没有找到{filt_message(name)}的参考面板',at_sender=True) return realname = realname[1][0] else: realname = name pic_data = get_blue_pic(realname) pic = Image.open(os.path.join(res_path, 'blue', f'{pic_data[0]}.jpg')) pic = pic.crop((0, pic_data[1][0], 1080, pic_data[1][1])) pic = pil2b64(pic, 85) pic = MessageSegment.image(pic) await bot.send(ev,pic,at_sender=True) @sv.on_prefix('收益曲线') @sv.on_suffix('收益曲线') async def genshinAttribute2(bot,ev): name = ev.message.extract_plain_text().strip() if name not in ['风主', '岩主', '雷主']: realname = get_id_by_alias(name) if not realname: await bot.send(ev,f'没有找到{filt_message(name)}的参考面板',at_sender=True) return realname = realname[1][0] else: realname = name pic = Image.open(os.path.join(res_path, 'blue', f'{realname}.png')) pic = pil2b64(pic, 85) pic = MessageSegment.image(pic) await bot.send(ev,pic,at_sender=True)