From ee074a568a89820266ae9798ed4e47258a4c9047 Mon Sep 17 00:00:00 2001 From: xaoyaoo Date: Sat, 10 Aug 2024 23:19:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E6=97=B6=E6=B6=88=E6=81=AF=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=B7=A5=E5=85=B7=E8=B7=AF=E5=BE=84=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pywxdump/wx_core/merge_db.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pywxdump/wx_core/merge_db.py b/pywxdump/wx_core/merge_db.py index 32cc653..324dcb8 100644 --- a/pywxdump/wx_core/merge_db.py +++ b/pywxdump/wx_core/merge_db.py @@ -393,13 +393,14 @@ def decrypt_merge(wx_path: str, key: str, outpath: str = "", @wx_core_error -def merge_real_time_db(key, merge_path: str, db_paths: [dict] or dict): +def merge_real_time_db(key, merge_path: str, db_paths: [dict] or dict, real_time_exe_path=None): """ 合并实时数据库消息,暂时只支持64位系统 :param key: 解密密钥 + :param merge_path: 合并后的数据库路径 :param db_paths: [dict] or dict eg: {'wxid': 'wxid_***', 'db_type': 'MicroMsg', 'db_path': 'C:\**\wxid_***\Msg\MicroMsg.db', 'wxid_dir': 'C:\***\wxid_***'} - :param merge_path: 合并后的数据库路径 + :param real_time_exe_path: 实时数据库合并工具路径 :return: """ try: @@ -431,9 +432,12 @@ def merge_real_time_db(key, merge_path: str, db_paths: [dict] or dict): endbs.append(os.path.abspath(db_path)) endbs = '" "'.join(list(set(endbs))) - # 获取当前文件夹路径 - current_path = os.path.dirname(__file__) - real_time_exe_path = os.path.join(current_path, "tools", "realTime.exe") + if not real_time_exe_path: + # 获取当前文件夹路径 + current_path = os.path.dirname(__file__) + real_time_exe_path = os.path.join(current_path, "tools", "realTime.exe") + if not os.path.exists(real_time_exe_path): + raise FileNotFoundError("未找到实时数据库合并工具") # 调用cmd命令 cmd = f'{real_time_exe_path} "{key}" "{merge_path}" "{endbs}"' @@ -472,7 +476,7 @@ def all_merge_real_time_db(key, wx_path, merge_path: str): if not db_paths[0]: return False, db_paths[1] db_paths = db_paths[1] - code, ret = merge_real_time_db(key=key, merge_path=merge_path, db_paths=db_paths) + code, ret = merge_real_time_db(key=key, merge_path=merge_path, db_paths=db_paths, real_time_exe_path=None) if code: return True, merge_path else: