diff --git a/pywxdump/analyzer/export_chat.py b/pywxdump/analyzer/export_chat.py index 8604b75..61bd552 100644 --- a/pywxdump/analyzer/export_chat.py +++ b/pywxdump/analyzer/export_chat.py @@ -207,9 +207,14 @@ def get_msg_list(MSG_db_path, selected_talker="", start_index=0, page_size=500): elif type_id == (43, 0): # 视频 DictExtra = read_BytesExtra(BytesExtra) DictExtra = str(DictExtra) - match = re.search(r"FileStorage(.*?)'", DictExtra) - if match: - video_path = match.group(0).replace("'", "") + + DictExtra_str = str(DictExtra) + video_paths = [i for i in re.findall(r"(FileStorage.*?)'", DictExtra_str)] + video_paths = sorted(video_paths, key=lambda p: "mp4" in p, reverse=True) + if video_paths: + video_path = video_paths[0].replace("'", "") + video_path = [i for i in video_path.split("\\") if i] + video_path = os.path.join(*video_path) content["src"] = video_path else: content["src"] = "" diff --git a/pywxdump/api/api.py b/pywxdump/api/api.py index 9c7105c..c6301f4 100644 --- a/pywxdump/api/api.py +++ b/pywxdump/api/api.py @@ -330,18 +330,18 @@ def get_real_time_msg(): msg_paths.sort() micro_paths = micro_paths[1] micro_paths.sort() - # for i in media_paths: - # print(i) - # merge_real_time_db(key=key, db_path=i, merge_path=save_media_path) - # for i in msg_paths: - # print(i) - # merge_real_time_db(key=key, db_path=i, merge_path=save_msg_path) - # for i in micro_paths: - # print(i) - # merge_real_time_db(key=key, db_path=i, merge_path=save_micro_path) - merge_real_time_db(key=key, db_path=media_paths[-1], merge_path=save_media_path) - merge_real_time_db(key=key, db_path=msg_paths[-1], merge_path=save_msg_path) - merge_real_time_db(key=key, db_path=micro_paths[-1], merge_path=save_micro_path) + for i in media_paths: + print(i) + merge_real_time_db(key=key, db_path=i, merge_path=save_media_path) + for i in msg_paths: + print(i) + merge_real_time_db(key=key, db_path=i, merge_path=save_msg_path) + for i in micro_paths: + print(i) + merge_real_time_db(key=key, db_path=i, merge_path=save_micro_path) + # merge_real_time_db(key=key, db_path=media_paths[-1], merge_path=save_media_path) + # merge_real_time_db(key=key, db_path=msg_paths[-1], merge_path=save_msg_path) + # merge_real_time_db(key=key, db_path=micro_paths[-1], merge_path=save_micro_path) return ReJson(0, "success") @@ -380,6 +380,7 @@ def get_img(): @api.route('/api/video/', methods=["GET", 'POST']) def get_video(videoPath): wx_path = read_session(g.sf, "wx_path") + videoPath = videoPath.replace("\\\\", "\\") all_video_path = os.path.join(wx_path, videoPath) if not os.path.exists(all_video_path): return ReJson(5002)