html fix
This commit is contained in:
parent
1f7164fe85
commit
cc90577af8
@ -9,6 +9,7 @@ import base64
|
|||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
import time
|
import time
|
||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
@ -16,7 +17,7 @@ from flask import Flask, request, render_template, g, Blueprint, send_file, make
|
|||||||
from pywxdump import analyzer, read_img_dat, read_audio, get_wechat_db, get_core_db
|
from pywxdump import analyzer, read_img_dat, read_audio, get_wechat_db, get_core_db
|
||||||
from pywxdump.analyzer.export_chat import get_contact, get_room_user_list
|
from pywxdump.analyzer.export_chat import get_contact, get_room_user_list
|
||||||
from pywxdump.api.rjson import ReJson, RqJson
|
from pywxdump.api.rjson import ReJson, RqJson
|
||||||
from pywxdump.api.utils import read_session, save_session, error9999
|
from pywxdump.api.utils import read_session, save_session, error9999,gen_base64
|
||||||
from pywxdump import read_info, VERSION_LIST, batch_decrypt, BiasAddr, merge_db, decrypt_merge, merge_real_time_db
|
from pywxdump import read_info, VERSION_LIST, batch_decrypt, BiasAddr, merge_db, decrypt_merge, merge_real_time_db
|
||||||
import pywxdump
|
import pywxdump
|
||||||
|
|
||||||
@ -507,12 +508,33 @@ def export():
|
|||||||
|
|
||||||
# 复制文件 html
|
# 复制文件 html
|
||||||
export_html = os.path.join(os.path.dirname(pywxdump.VERSION_LIST_PATH), "ui", "export")
|
export_html = os.path.join(os.path.dirname(pywxdump.VERSION_LIST_PATH), "ui", "export")
|
||||||
export_files = os.listdir(export_html)
|
indexhtml_path = os.path.join(export_html, "index.html")
|
||||||
for file in export_files:
|
assets_path = os.path.join(export_html, "assets")
|
||||||
if os.path.isfile(os.path.join(export_html, file)):
|
if not os.path.exists(indexhtml_path) or not os.path.exists(assets_path):
|
||||||
shutil.copy(os.path.join(export_html, file), os.path.join(outpath, file))
|
return ReJson(1001)
|
||||||
|
js_path = ""
|
||||||
|
css_path = ""
|
||||||
|
for file in os.listdir(assets_path):
|
||||||
|
if file.endswith('.js'):
|
||||||
|
js_path = os.path.join(assets_path, file)
|
||||||
|
elif file.endswith('.css'):
|
||||||
|
css_path = os.path.join(assets_path, file)
|
||||||
else:
|
else:
|
||||||
shutil.copytree(os.path.join(export_html, file), os.path.join(outpath, file))
|
continue
|
||||||
|
# 读取html,js,css
|
||||||
|
with open(indexhtml_path, 'r', encoding='utf-8') as f:
|
||||||
|
html = f.read()
|
||||||
|
with open(js_path, 'r', encoding='utf-8') as f:
|
||||||
|
js = f.read()
|
||||||
|
with open(css_path, 'r', encoding='utf-8') as f:
|
||||||
|
css = f.read()
|
||||||
|
|
||||||
|
html = re.sub(r'<script .*?></script>', '', html) # 删除所有的script标签
|
||||||
|
html = re.sub(r'<link rel="stylesheet" .*?>', '', html) # 删除所有的link标签
|
||||||
|
|
||||||
|
html = html.replace('</head>', f'<style>{css}</style></head>')
|
||||||
|
html = html.replace('</head>', f'<script type="module" crossorigin>{js}</script></head>')
|
||||||
|
# END 生成index.html
|
||||||
|
|
||||||
rdata = func_get_msgs(0, 10000000, username, "", "")
|
rdata = func_get_msgs(0, 10000000, username, "", "")
|
||||||
|
|
||||||
@ -557,8 +579,10 @@ def export():
|
|||||||
with open(os.path.join(save_json_path, "msg_user.json"), "w", encoding="utf-8") as f:
|
with open(os.path.join(save_json_path, "msg_user.json"), "w", encoding="utf-8") as f:
|
||||||
json.dump(save_data, f, ensure_ascii=False)
|
json.dump(save_data, f, ensure_ascii=False)
|
||||||
|
|
||||||
|
json_base64 = gen_base64(save_json_path)
|
||||||
|
html = js.replace('"./data/msg_user.json"', f'"{json_base64}"')
|
||||||
|
with open(os.path.join(outpath, "index.html"), 'w', encoding='utf-8') as f:
|
||||||
|
f.write(html)
|
||||||
return ReJson(0, outpath)
|
return ReJson(0, outpath)
|
||||||
|
|
||||||
elif export_type == "pdf":
|
elif export_type == "pdf":
|
||||||
|
Loading…
Reference in New Issue
Block a user