From 47c2ddbc92617c0cafcf305bc3f798b1221146f9 Mon Sep 17 00:00:00 2001 From: xaoyaoo Date: Sun, 14 Jan 2024 18:14:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=AD=E9=9F=B3=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pywxdump/analyzer/export_chat.py | 2 +- pywxdump/api/api.py | 21 +++++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/pywxdump/analyzer/export_chat.py b/pywxdump/analyzer/export_chat.py index 1b1d432..0fec3c9 100644 --- a/pywxdump/analyzer/export_chat.py +++ b/pywxdump/analyzer/export_chat.py @@ -142,7 +142,7 @@ def get_msg_list(MSG_db_path, selected_talker="", start_index=0, page_size=500): voicelength = f"{voicelength:.2f}" content[ "msg"] = f"语音时长:{voicelength}秒\n翻译结果:{transtext}" if transtext else f"语音时长:{voicelength}秒" - content["src"] = os.path.join("audio", f"{StrTalker}", f"{CreateTime}_{MsgSvrID}.wav") + content["src"] = os.path.join("audio", f"{StrTalker}", f"{CreateTime.replace(':', '-').replace(' ','_')}_{IsSender}_{MsgSvrID}.wav") elif type_id == (43, 0): # 视频 BytesExtra = read_BytesExtra(BytesExtra) BytesExtra = str(BytesExtra) diff --git a/pywxdump/api/api.py b/pywxdump/api/api.py index b2dc87d..9776626 100644 --- a/pywxdump/api/api.py +++ b/pywxdump/api/api.py @@ -173,18 +173,23 @@ def get_img(): return ReJson(1001) -@api.route('/api/audio', methods=["GET", 'POST']) -def get_audio(): - MsgSvrID = request.args.get("MsgSvrID") - MsgSvrID = request.json.get("MsgSvrID", MsgSvrID) - if not MsgSvrID: +@api.route('/api/audio/', methods=["GET", 'POST']) +def get_audio(savePath): + # savePath = request.args.get("savePath") + # savePath = request.json.get("savePath", savePath) + savePath = "audio/" + savePath # 这个是从url中获取的 + MsgSvrID = savePath.split("_")[-1].replace(".wav", "") + if not savePath: return ReJson(1002) wave_data = read_audio(MsgSvrID, is_wave=True, DB_PATH=g.media_path) if not wave_data: return ReJson(1001) - video_base64 = base64.b64encode(wave_data).decode("utf-8") - video_data = f"data:audio/wav;base64,{video_base64}" - return ReJson(0, video_data) + # 判断savePath路径的文件夹是否存在 + if not os.path.exists(os.path.dirname(savePath)): + os.makedirs(os.path.dirname(savePath)) + with open(savePath, "wb") as f: + f.write(wave_data) + return send_file(savePath) # 这部分为专业工具的api