添加聊天记录选择展示
This commit is contained in:
parent
524c40923f
commit
9e2fa29e93
@ -12,6 +12,7 @@ from flask import Flask, request, render_template, g, Blueprint, send_file, make
|
|||||||
from pywxdump import analyzer, read_img_dat, read_audio
|
from pywxdump import analyzer, read_img_dat, read_audio
|
||||||
from pywxdump.api.rjson import ReJson, RqJson
|
from pywxdump.api.rjson import ReJson, RqJson
|
||||||
from pywxdump import read_info, VERSION_LIST, batch_decrypt, BiasAddr, merge_db
|
from pywxdump import read_info, VERSION_LIST, batch_decrypt, BiasAddr, merge_db
|
||||||
|
import pywxdump
|
||||||
|
|
||||||
# app = Flask(__name__, static_folder='../ui/web/dist', static_url_path='/')
|
# app = Flask(__name__, static_folder='../ui/web/dist', static_url_path='/')
|
||||||
|
|
||||||
@ -28,19 +29,26 @@ def init():
|
|||||||
# g.msg_path = path
|
# g.msg_path = path
|
||||||
# g.micro_path = path
|
# g.micro_path = path
|
||||||
# g.media_path = path
|
# g.media_path = path
|
||||||
# g.wxid_path = r"C:\Users\xaoyo\Documents\Tencent\WeChat Files\wxid_vzzcn5fevion22"
|
# g.wx_path = r"C:\Users\xaoyo\Documents\Tencent\WeChat Files\wxid_vzzcn5fevion22"
|
||||||
# g.my_wxid = "wxid_vzzcn5fevion22"
|
# g.my_wxid = "wxid_vzzcn5fevion22"
|
||||||
|
|
||||||
rdata = {
|
rdata = {
|
||||||
"msg_path": "",
|
"msg_path": "",
|
||||||
"micro_path": "",
|
"micro_path": "",
|
||||||
"media_path": "",
|
"media_path": "",
|
||||||
"wxid_path": "",
|
"wx_path": "",
|
||||||
"my_wxid": "",
|
"my_wxid": "",
|
||||||
"is_init": False,
|
"is_init": False,
|
||||||
}
|
}
|
||||||
return ReJson(0, rdata)
|
return ReJson(0, rdata)
|
||||||
|
|
||||||
|
@api.route('/api/version', methods=["GET", 'POST'])
|
||||||
|
def version():
|
||||||
|
"""
|
||||||
|
版本
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
return ReJson(0, pywxdump.__version__)
|
||||||
|
|
||||||
@api.route('/api/contact_list', methods=["GET", 'POST'])
|
@api.route('/api/contact_list', methods=["GET", 'POST'])
|
||||||
def contact_list():
|
def contact_list():
|
||||||
@ -171,7 +179,7 @@ def get_img():
|
|||||||
img_path = request.json.get("img_path", img_path)
|
img_path = request.json.get("img_path", img_path)
|
||||||
if not img_path:
|
if not img_path:
|
||||||
return ReJson(1002)
|
return ReJson(1002)
|
||||||
img_path_all = os.path.join(g.wxid_path, img_path)
|
img_path_all = os.path.join(g.wx_path, img_path)
|
||||||
if os.path.exists(img_path_all):
|
if os.path.exists(img_path_all):
|
||||||
fomt, md5, out_bytes = read_img_dat(img_path_all)
|
fomt, md5, out_bytes = read_img_dat(img_path_all)
|
||||||
out_bytes = base64.b64encode(out_bytes).decode("utf-8")
|
out_bytes = base64.b64encode(out_bytes).decode("utf-8")
|
||||||
@ -213,6 +221,11 @@ def export():
|
|||||||
end_time = request.json.get("end_time")
|
end_time = request.json.get("end_time")
|
||||||
chat_type = request.json.get("chat_type")
|
chat_type = request.json.get("chat_type")
|
||||||
username = request.json.get("username")
|
username = request.json.get("username")
|
||||||
|
|
||||||
|
# 可选参数
|
||||||
|
wx_path = request.json.get("wx_path", g.wx_path)
|
||||||
|
key = request.json.get("key", "")
|
||||||
|
|
||||||
if not export_type or not start_time or not end_time or not chat_type or not username:
|
if not export_type or not start_time or not end_time or not chat_type or not username:
|
||||||
return ReJson(1002)
|
return ReJson(1002)
|
||||||
chat_type_tups = []
|
chat_type_tups = []
|
||||||
@ -228,7 +241,11 @@ def export():
|
|||||||
if not os.path.exists(outpath):
|
if not os.path.exists(outpath):
|
||||||
os.makedirs(outpath)
|
os.makedirs(outpath)
|
||||||
|
|
||||||
if export_type == "csv":
|
if export_type == "endb":
|
||||||
|
pass
|
||||||
|
elif export_type == "dedb":
|
||||||
|
pass
|
||||||
|
elif export_type == "csv":
|
||||||
# 导出聊天记录
|
# 导出聊天记录
|
||||||
outpath = os.path.join(outpath, "csv")
|
outpath = os.path.join(outpath, "csv")
|
||||||
if not os.path.exists(outpath):
|
if not os.path.exists(outpath):
|
||||||
@ -236,6 +253,16 @@ def export():
|
|||||||
code, ret = analyzer.export_csv(username, outpath, g.msg_path)
|
code, ret = analyzer.export_csv(username, outpath, g.msg_path)
|
||||||
if code:
|
if code:
|
||||||
return ReJson(0, ret)
|
return ReJson(0, ret)
|
||||||
|
elif export_type == "json":
|
||||||
|
pass
|
||||||
|
elif export_type == "html":
|
||||||
|
pass
|
||||||
|
elif export_type == "pdf":
|
||||||
|
pass
|
||||||
|
elif export_type == "docx":
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
return ReJson(1002)
|
||||||
|
|
||||||
return ReJson(0, "")
|
return ReJson(0, "")
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ class MainShowChatRecords():
|
|||||||
sb_decrypt.add_argument("-media", "--media_path", type=str, help="解密后的 MediaMSG.db 的路径", required=False,
|
sb_decrypt.add_argument("-media", "--media_path", type=str, help="解密后的 MediaMSG.db 的路径", required=False,
|
||||||
metavar="")
|
metavar="")
|
||||||
|
|
||||||
sb_decrypt.add_argument("-wid", "--wxid_path", type=str,
|
sb_decrypt.add_argument("-wid", "--wx_path", type=str,
|
||||||
help="(可选)微信文件夹的路径(用于显示图片)", required=False,
|
help="(可选)微信文件夹的路径(用于显示图片)", required=False,
|
||||||
metavar="")
|
metavar="")
|
||||||
sb_decrypt.add_argument("-myid", "--my_wxid", type=str, help="(可选)微信账号(本人微信id)", required=False,
|
sb_decrypt.add_argument("-myid", "--my_wxid", type=str, help="(可选)微信账号(本人微信id)", required=False,
|
||||||
@ -237,7 +237,8 @@ class MainShowChatRecords():
|
|||||||
g.msg_path = args.msg_path
|
g.msg_path = args.msg_path
|
||||||
g.micro_path = args.micro_path
|
g.micro_path = args.micro_path
|
||||||
g.media_path = args.media_path
|
g.media_path = args.media_path
|
||||||
g.wxid_path = args.wxid_path
|
g.wx_path = args.wx_path
|
||||||
|
# g.key = args.key
|
||||||
g.my_wxid = args.my_wxid
|
g.my_wxid = args.my_wxid
|
||||||
g.tmp_path = os.path.join(os.getcwd(), "wxdump_tmp") # 临时文件夹,用于存放图片等
|
g.tmp_path = os.path.join(os.getcwd(), "wxdump_tmp") # 临时文件夹,用于存放图片等
|
||||||
g.user_list = []
|
g.user_list = []
|
||||||
@ -448,7 +449,7 @@ class MainAll():
|
|||||||
args.msg_path = merge_save_path
|
args.msg_path = merge_save_path
|
||||||
args.micro_path = merge_save_path
|
args.micro_path = merge_save_path
|
||||||
args.media_path = merge_save_path
|
args.media_path = merge_save_path
|
||||||
args.wxid_path = filePath
|
args.wx_path = filePath
|
||||||
args.my_wxid = wxid
|
args.my_wxid = wxid
|
||||||
args.online = online
|
args.online = online
|
||||||
MainShowChatRecords().run(args)
|
MainShowChatRecords().run(args)
|
||||||
@ -492,7 +493,7 @@ class MainUi():
|
|||||||
def before_request():
|
def before_request():
|
||||||
g.msg_path = ""
|
g.msg_path = ""
|
||||||
g.media_path = ""
|
g.media_path = ""
|
||||||
g.wxid_path = ""
|
g.wx_path = ""
|
||||||
g.my_wxid = ""
|
g.my_wxid = ""
|
||||||
g.tmp_path = os.path.join(os.getcwd(), "wxdump_tmp") # 临时文件夹,用于存放图片等
|
g.tmp_path = os.path.join(os.getcwd(), "wxdump_tmp") # 临时文件夹,用于存放图片等
|
||||||
g.user_list = []
|
g.user_list = []
|
||||||
@ -601,11 +602,16 @@ def console_run():
|
|||||||
sb_all = main_all.init_parses(subparsers)
|
sb_all = main_all.init_parses(subparsers)
|
||||||
modes[main_all.mode] = main_all
|
modes[main_all.mode] = main_all
|
||||||
|
|
||||||
|
# 添加 'ui' 子命令解析器
|
||||||
|
main_ui = MainUi()
|
||||||
|
sb_ui = main_ui.init_parses(subparsers)
|
||||||
|
modes[main_ui.mode] = main_ui
|
||||||
|
|
||||||
# 检查是否需要显示帮助信息
|
# 检查是否需要显示帮助信息
|
||||||
if len(sys.argv) == 1:
|
if len(sys.argv) == 1:
|
||||||
sys.argv.append('all')
|
sys.argv.append('all')
|
||||||
elif len(sys.argv) == 2 and sys.argv[1] in modes.keys() and sys.argv[1] not in [main_all.mode, main_wx_info.mode,
|
elif len(sys.argv) == 2 and sys.argv[1] in modes.keys() and sys.argv[1] not in [main_all.mode, main_wx_info.mode,
|
||||||
main_wx_db_path.mode]:
|
main_wx_db_path.mode, main_ui.mode]:
|
||||||
sys.argv.append('-h')
|
sys.argv.append('-h')
|
||||||
|
|
||||||
args = parser.parse_args() # 解析命令行参数
|
args = parser.parse_args() # 解析命令行参数
|
||||||
|
@ -23,7 +23,7 @@ def before_request():
|
|||||||
g.msg_path = path
|
g.msg_path = path
|
||||||
g.micro_path = path
|
g.micro_path = path
|
||||||
g.media_path = path
|
g.media_path = path
|
||||||
g.wxid_path = r"*****"
|
g.wx_path = r"*****"
|
||||||
g.my_wxid = "******"
|
g.my_wxid = "******"
|
||||||
g.tmp_path = "dist" # 临时文件夹,用于存放图片等
|
g.tmp_path = "dist" # 临时文件夹,用于存放图片等
|
||||||
g.user_list = []
|
g.user_list = []
|
||||||
|
Loading…
Reference in New Issue
Block a user