From 525c6791f9604b0f30cf91043466dba101d95a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wuyi=E6=97=A0=E7=96=91?= <444835641@qq.com> Date: Tue, 26 Apr 2022 23:13:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E8=AF=AD=E9=9F=B3?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mihoyo_libs/get_mihoyo_bbs_data.py | 50 ++++++++++++++++-------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/mihoyo_libs/get_mihoyo_bbs_data.py b/mihoyo_libs/get_mihoyo_bbs_data.py index cc9dd53d..35b6c846 100644 --- a/mihoyo_libs/get_mihoyo_bbs_data.py +++ b/mihoyo_libs/get_mihoyo_bbs_data.py @@ -129,17 +129,17 @@ food_im = """【{}】 【材料】: {}""" -audio_json = """{ - '357':['357_01','357_02','357_03'], - '1000000':['1000000_01','1000000_02','1000000_03','1000000_04','1000000_05','1000000_06','1000000_07'], - '1000001':['1000001_01','1000001_02','1000001_03'], - '1000002':['1000002_01','1000002_02','1000002_03'], - '1000100':['1000100_01','1000100_02','1000100_03','1000100_04','1000100_05'], - '1000101':['1000101_01','1000101_02','1000101_03','1000101_04','1000101_05','1000101_06'], - '1000200':['1000200_01','1000200_02','1000200_03'], - '1010201':['1010201_01'], - '1000300':['1000300_01','1000300_02'], - '1000400':['1000400_01','1000400_02','1000400_03'], +audio_json = { + '357': ['357_01', '357_02', '357_03'], + '1000000': ['1000000_01', '1000000_02', '1000000_03', '1000000_04', '1000000_05', '1000000_06', '1000000_07'], + '1000001': ['1000001_01', '1000001_02', '1000001_03'], + '1000002': ['1000002_01', '1000002_02', '1000002_03'], + '1000100': ['1000100_01', '1000100_02', '1000100_03', '1000100_04', '1000100_05'], + '1000101': ['1000101_01', '1000101_02', '1000101_03', '1000101_04', '1000101_05', '1000101_06'], + '1000200': ['1000200_01', '1000200_02', '1000200_03'], + '1010201': ['1010201_01'], + '1000300': ['1000300_01', '1000300_02'], + '1000400': ['1000400_01', '1000400_02', '1000400_03'], '1000500':['1000500_01','1000500_02','1000500_03'], '1010000':['1010000_01','1010000_02','1010000_03','1010000_04','1010000_05'], '1010001':['1010001_01','1010001_02'], @@ -149,7 +149,7 @@ audio_json = """{ '1010301':['1010301_01','1010301_02','1010301_03','1010301_04','1010301_05'], '1010400':['1010400_01','1010400_02','1010400_03'], '1020000':['1020000_01'] -}""" +} char_adv_im = """【{}】 【五星武器】:{} @@ -308,36 +308,38 @@ async def award(uid): async def audio_wiki(name, message): async def get(_audioid): - tmp_json = json.loads(audio_json) for _ in range(3): # 重试3次 - if _audioid in tmp_json: - if not tmp_json[_audioid]: + if _audioid in audio_json: + if not audio_json[_audioid]: return - audioid1 = random.choice(tmp_json[_audioid]) + audioid1 = random.choice(audio_json[_audioid]) else: audioid1 = _audioid url = await get_audio_info(name, audioid1) - req = requests.get(url) + async with AsyncClient() as client: + req = await client.get(url) if req.status_code == 200: return BytesIO(req.content) else: - if _audioid in tmp_json: - tmp_json[_audioid].remove(audioid1) + if _audioid in audio_json: + audio_json[_audioid].remove(audioid1) if name == '列表': - imgmes = 'base64://' + b64encode(open(os.path.join(INDEX_PATH, '语音.png'), 'rb').read()).decode() + with open(os.path.join(INDEX_PATH, '语音.png'), 'rb') as f: + imgmes = f.read() return imgmes elif name == '': return '请输入角色名。' else: - audioid = re.findall(r'[0-9]+', message)[0] + audioid = re.findall(r'\d+', message) try: - audio = await get(audioid) + audio = await get(audioid[0]) + except IndexError: + return '请输入语音ID。' except: return '语音获取失败' if audio: - audios = 'base64://' + b64encode(audio.getvalue()).decode() - return audios + return audio.getvalue() else: return '没有找到语音,请检查语音ID与角色名是否正确,如无误则可能未收录该语音'