diff --git a/README.md b/README.md
index 73f4714..29fca95 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@
更新日志(点击展开):
-* 2023.11.29 添加异性wxid获取方式,添加用户路径自动获取
+* 2023.11.29 添加异形wxid获取方式,添加用户路径自动获取,重建说明文档,对新手更友好
* 2023.11.28 修改wxid获取方式,修复部分bug
* 2023.11.27 解决相对导入包的问题,完善错误提示
* 2023.11.25 聊天记录查看工具bootstrap更换国内cdn
@@ -59,12 +59,13 @@
* 4.生成年度可视化报告
* 5.创建GUI图形界面,方便使用
* 6.查看群聊中具体发言成员的ID [#31](https://github.com/xaoyaoo/PyWxDump/issues/31)
-* 7.完善操作文档,增加更多的使用说明
-* 8.增加数据库合并功能,方便查看
+* 7.增加数据库合并功能,方便查看
-注: 欢迎大家提供更多的想法,或者提供代码,一起完善这个项目,欢迎加入交流qq群:577704006。
-
+注: 欢迎大家提供更多的想法,或者提供代码,一起完善这个项目,欢迎加入交流qq群:577704006 or 点击链接加入群聊[pywxdump功能交流-bug反馈](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=d3hyEpFtRgBTZy6lyX0_ZQC5cBKQ2_Tv&authKey=bctofjxdjHb8YyPz9SpdoTVYY8QPInMQiDKQ82py4pjGYsUCJVqhhmTqHBRIZMev&noverify=0&group_code=577704006)。
+
+

+
# 一、项目介绍
## 1. 项目简介
@@ -215,133 +216,152 @@ wxdump 模式 [参数]
以下是示例命令:
-```shell script
-wxdump bias -h
-#usage: main.py bias_addr [-h] --mobile MOBILE --name NAME --account ACCOUNT [--key KEY] [--db_path DB_PATH] [-vlp VLP]
-#options:
-# -h, --help show this help message and exit
-# --mobile MOBILE 手机号
-# --name NAME 微信昵称
-# --account ACCOUNT 微信账号
-# --key KEY (可选)密钥
-# --db_path DB_PATH (可选)已登录账号的微信文件夹路径
-# -vlp VERSION_LIST_PATH, --version_list_path VERSION_LIST_PATH
-# (可选)微信版本偏移文件路径,如有,则自动更新
+##### 获取微信基址偏移
-wxdump info -h
-#usage: main.py wx_info [-h] [-vlp VLP]
-#options:
-# -h, --help show this help message and exit
-# -vlp VLP (可选)微信版本偏移文件路径
+```bash
+pywxdump bias --mobile <手机号> --name <微信昵称> --account <微信账号> [--key <密钥>] [--db_path <已登录账号的微信文件夹路径>] [--version_list_path <微信版本偏移文件路径>]
+```
-wxdump db_path -h
-#usage: main.py wx_db [-h] [-r REQUIRE_LIST] [-wf WF]
-#options:
-# -h, --help show this help message and exit
-# -r , --require_list (可选)需要的数据库名称(eg: -r MediaMSG;MicroMsg;FTSMSG;MSG;Sns;Emotion )
-# -wf , --wx_files (可选)'WeChat Files'路径
-# -id WXID, --wxid WXID
-# (可选)wxid_,用于确认用户文件夹
+##### 获取微信信息
-wxdump decrypt -h
-#usage: main.py decrypt [-h] -k KEY -i DB_PATH -o OUT_PATH
-#options:
-# -h, --help show this help message and exit
-# -k , --key 密钥
-# -i , --db_path 数据库路径(目录or文件)
-# -o , --out_path 输出路径(必须是目录)[默认为当前路径下decrypted文件夹]
+```bash
+pywxdump info [--version_list_path <微信版本偏移文件路径>]
+```
-wxdump dbshow -h
-#usage: wxdump show_records [-h] -msg -micro -media -fs
-#options:
-# -msg , --msg_path 解密后的 MSG.db 的路径
-# -micro , --micro_path
-# 解密后的 MicroMsg.db 的路径
-# -media , --media_path
-# 解密后的 MediaMSG.db 的路径
-# -fs , --filestorage_path
-# (可选)文件夹FileStorage的路径(用于显示图片)
+##### 获取微信文件夹路径
-wxdump export -h
-#usage: wxdump export [-h] -u -o -msg -micro -media [-fs]
-#options:
-# -h, --help show this help message and exit
-# -u , --username 微信账号
-# -o , --outpath 导出路径
-# -msg , --msg_path 解密后的 MSG.db 的路径
-# -micro , --micro_path
-# 解密后的 MicroMsg.db 的路径
-# -media , --media_path
-# 解密后的 MediaMSG.db 的路径
-# -fs , --filestorage_path
-# (可选)文件夹FileStorage的路径(用于显示图片)
+```bash
+pywxdump db_path [-r <需要的数据库名称>] [-wf ] [-id ]
+```
-wxdump all -h
-#usage: main.py all [-h]
-#options:
-# -h, --help show this help message and exit
+##### 解密微信数据库
+
+```bash
+pywxdump decrypt -k <密钥> -i <数据库路径(目录or文件)> [-o <输出路径>]
+```
+
+##### 查看聊天记录
+
+```bash
+pywxdump dbshow -msg <解密后的 MSG.db 的路径> -micro <解密后的 MicroMsg.db 的路径> -media <解密后的 MediaMSG.db 的路径> [-fs ]
+```
+
+##### 导出聊天记录为 HTML
+
+```bash
+pywxdump export -u <微信账号> -o <导出路径> -msg <解密后的 MSG.db 的路径> -micro <解密后的 MicroMsg.db 的路径> -media <解密后的 MediaMSG.db 的路径> [-fs ]
+```
+
+##### 获取微信信息、解密数据库、查看聊天记录
+
+```bash
+pywxdump all
```
### 2.2 python API
-更多使用方法参考[tests](./tests)文件夹下的[test_*.py](./tests/)文件
+*import调用示例*
+
+
+点击展开示例
```python
# 单独使用各模块,返回值一般为字典,参数参考命令行
-import pywxdump
-from pywxdump import VERSION_LIST_PATH, VERSION_LIST
+from pywxdump import *
-# 1. 获取基址偏移
-from pywxdump.bias_addr import BiasAddr
+# ************************************************************************************************ #
+# 获取微信基址偏移
+args = {
+ "mode": "bias",
+ "mobile": "13800138000", # 手机号
+ "name": "微信昵称", # 微信昵称
+ "account": "微信账号", # 微信账号
+ "key": "密钥", # 密钥(可选)
+ "db_path": "已登录账号的微信文件夹路径", # 微信文件夹路径(可选)
+ "version_list_path": "微信版本偏移文件路径" # 微信版本偏移文件路径(可选)
+}
+bias_addr = BiasAddr(args["account"], args["mobile"], args["name"], args["key"], args["db_path"])
+result = bias_addr.run(True, args["version_list_path"])
+# ************************************************************************************************ #
+# 获取微信信息
+wx_info = read_info(VERSION_LIST, True)
-bias_addr = BiasAddr(VERSION_LIST_PATH, VERSION_LIST).run()
+# 获取微信文件夹路径
+args = {
+ "mode": "db_path",
+ "require_list": "all", # 需要的数据库名称(可选)
+ "wx_files": "WeChat Files", # 'WeChat Files'路径(可选)
+ "wxid": "wxid_", # wxid_,用于确认用户文件夹(可选)
+}
+user_dirs = get_wechat_db(args["require_list"], args["wx_files"], args["wxid"], True)
+# ************************************************************************************************ #
+# 解密微信数据库
+args = {
+ "mode": "decrypt",
+ "key": "密钥", # 密钥
+ "db_path": "数据库路径(目录or文件)", # 数据库路径
+ "out_path": "/path/to/decrypted" # 输出路径(必须是目录)[默认为当前路径下decrypted文件夹]
+}
+result = batch_decrypt(args["key"], args["db_path"], args["out_path"], True)
+# ************************************************************************************************ #
+# 查看聊天记录
+args = {
+ "mode": "dbshow",
+ "msg_path": "解密后的 MSG.db 的路径", # 解密后的 MSG.db 的路径
+ "micro_path": "解密后的 MicroMsg.db 的路径", # 解密后的 MicroMsg.db 的路径
+ "media_path": "解密后的 MediaMSG.db 的路径", # 解密后的 MediaMSG.db 的路径
+ "filestorage_path": "文件夹FileStorage的路径" # 文件夹 FileStorage 的路径(用于显示图片)
+}
+from flask import Flask, request, jsonify, render_template, g
+import logging
-# 2. 获取微信信息
-from pywxdump.wx_info import read_info
+app = Flask(__name__, template_folder='./show_chat/templates')
+app.logger.setLevel(logging.ERROR)
-wx_info = read_info(VERSION_LIST)
-# 3. 获取微信文件夹路径
-from pywxdump.wx_info import get_wechat_db
+@app.before_request
+def before_request():
+ g.MSG_ALL_db_path = args["msg_path"]
+ g.MicroMsg_db_path = args["micro_path"]
+ g.MediaMSG_all_db_path = args["media_path"]
+ g.FileStorage_path = args["filestorage_path"]
+ g.USER_LIST = get_user_list(args["msg_path"], args["micro_path"])
-wx_db = get_wechat_db()
-
-# 4. 解密数据库
-from pywxdump.decrypted import batch_decrypt
-
-batch_decrypt("key", "db_path", "out_path")
+app.register_blueprint(app_show_chat)
+print("[+] 请使用浏览器访问 http://127.0.0.1:5000/ 查看聊天记录")
+app.run(debug=False)
+# ************************************************************************************************ #
+# 导出聊天记录为 HTML
+args = {
+ "mode": "export",
+ "username": "微信账号", # 微信账号(聊天对象账号)
+ "outpath": "/path/to/export", # 导出路径
+ "msg_path": "解密后的 MSG.db 的路径", # 解密后的 MSG.db 的路径
+ "micro_path": "解密后的 MicroMsg.db 的路径", # 解密后的 MicroMsg.db 的路径
+ "media_path": "解密后的 MediaMSG.db 的路径", # 解密后的 MediaMSG.db 的路径
+ "filestorage_path": "文件夹FileStorage的路径" # 文件夹 FileStorage 的路径(用于显示图片)
+}
+export(args["username"], args["outpath"], args["msg_path"], args["micro_path"], args["media_path"],
+ args["filestorage_path"])
```
-### 2.3 构建可执行文件exe
+
-将下面的代码保存为`build.py`,然后运行`python build.py`即可。(或者执行[build_exe.py](./tests/build_exe.py))
+更多使用方法参考[tests](./tests)文件夹下的[test_*.py](./tests/)文件
-```python
-import site
-import os
+### 2.3 可执行文件exe
-code = """from pywxdump.command import console_run;console_run()"""
+* 1.release中提供了可执行文件,可以直接下载使用。
+* 2.或者自行打包,打包脚本见: [build_exe.py](./tests/build_exe.py)
-# 创建文件夹
-os.makedirs("dist", exist_ok=True)
-# 将代码写入文件
-with open("dist/tmp.py", "w", encoding="utf-8") as f:
- f.write(code)
+*使用示例*
-# 获取安装包的路径
-package_path = site.getsitepackages()
-if package_path:
- package_path = package_path[1] # 假设取第一个安装包的路径
- version_list_path = os.path.join(package_path, 'pywxdump', 'version_list.json')
- # 执行打包命令
- cmd = f'pyinstaller --onefile --clean --add-data "{version_list_path};pywxdump" dist/tmp.py'
- print(cmd)
- os.system(cmd)
-else:
- print("未找到安装包路径")
+```shell
+cd tests
+python build_exe.py
```
【注】:
diff --git a/doc/img.png b/doc/img.png
deleted file mode 100644
index ab903fb..0000000
Binary files a/doc/img.png and /dev/null differ
diff --git a/doc/qq.png b/doc/qq.png
new file mode 100644
index 0000000..222f4d9
Binary files /dev/null and b/doc/qq.png differ
diff --git a/setup.py b/setup.py
index ed8e8cf..8e24934 100644
--- a/setup.py
+++ b/setup.py
@@ -3,7 +3,7 @@ from setuptools import setup, find_packages
with open("README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
-version = "2.2.14"
+version = "2.2.15"
install_requires = [
"psutil",
diff --git a/tests/build_exe.py b/tests/build_exe.py
index 2f7ec88..efd7d0a 100644
--- a/tests/build_exe.py
+++ b/tests/build_exe.py
@@ -92,7 +92,7 @@ if package_path:
# 执行打包命令
cmd = f'pyinstaller --clean --distpath=dist {spec_file}'
print(cmd)
- # os.system(cmd)
+ os.system(cmd)
else:
print("未找到安装包路径")