diff --git a/genshinuid.py b/genshinuid.py index 6950d58a..a8c968e2 100644 --- a/genshinuid.py +++ b/genshinuid.py @@ -45,14 +45,14 @@ async def send_audio(bot: HoshinoBot, ev: CQEvent): name = ''.join(re.findall('[\u4e00-\u9fa5]', message)) im = await audio_wiki(name, message) if name == "列表": - await bot.send(ev, f"[CQ:image,file={im}]") + await bot.send(ev, MessageSegment.image(im)) else: - await bot.send(ev, f"[CQ:recode,file={im}]") + await bot.send(ev, MessageSegment.record(im)) except ActionFailed as e: logger.exception("获取语音失败") await bot.send(ev, "机器人发送消息失败:{}".format(e)) except Exception as e: - logger.exception("获取语音失败") + logger.exception("获取语音失败或ffmpeg未配置") await bot.send(ev, "发生错误 {},请检查后台输出。".format(e)) @@ -66,11 +66,10 @@ async def send_polar(bot: HoshinoBot, ev: CQEvent): ls_f = base64.b64encode(f.read()).decode() img_mihoyo_bbs = 'base64://' + ls_f f.close() - im = f"[CQ:image,file={img_mihoyo_bbs}]" break else: await draw_event_pic() - await bot.send(ev, im) + await bot.send(ev, MessageSegment.image(img_mihoyo_bbs)) except ActionFailed as e: await bot.send(ev, "机器人发送消息失败:{}".format(e)) logger.exception("发送活动列表失败") diff --git a/mihoyo_libs/get_mihoyo_bbs_data.py b/mihoyo_libs/get_mihoyo_bbs_data.py index 7ae53e0f..750bf95c 100644 --- a/mihoyo_libs/get_mihoyo_bbs_data.py +++ b/mihoyo_libs/get_mihoyo_bbs_data.py @@ -312,7 +312,7 @@ async def audio_wiki(name, message): audioid1 = _audioid url = await get_audio_info(name, audioid1) req = requests.get(url) - if req.headers["Content-Type"].startswith("audio"): + if req.status_code == 200: return BytesIO(req.content) else: if _audioid in tmp_json: @@ -322,7 +322,7 @@ async def audio_wiki(name, message): imgmes = 'base64://' + b64encode(open(os.path.join(INDEX_PATH, "语音.png"), "rb").read()).decode() return imgmes elif name == "": - return "角色名不正确。" + return "请输入角色名。" else: audioid = re.findall(r"[0-9]+", message)[0] try: @@ -332,6 +332,8 @@ async def audio_wiki(name, message): if audio: audios = 'base64://' + b64encode(audio.getvalue()).decode() return audios + else: + return "没有找到语音,请检查语音ID与角色名是否正确,如无误则可能未收录该语音" async def artifacts_wiki(name):