diff --git a/pywxdump/__init__.py b/pywxdump/__init__.py
index c46c15b..9c0e18a 100644
--- a/pywxdump/__init__.py
+++ b/pywxdump/__init__.py
@@ -7,7 +7,7 @@
# -------------------------------------------------------------------------------
from .wx_info import BiasAddr,read_info, get_wechat_db,encrypt,batch_decrypt,decrypt
from .wx_info import merge_copy_db, merge_msg_db, merge_media_msg_db
-from .analyzer.db_parsing import read_img_dat, read_emoji, decompress_CompressContent, read_audio_buf, read_audio, parse_xml_string
+from .analyzer.db_parsing import read_img_dat, read_emoji, decompress_CompressContent, read_audio_buf, read_audio, parse_xml_string,read_BytesExtra
from .ui import app_show_chat, get_user_list, export
import os,json
diff --git a/pywxdump/analyzer/__init__.py b/pywxdump/analyzer/__init__.py
index b3776ad..cf93712 100644
--- a/pywxdump/analyzer/__init__.py
+++ b/pywxdump/analyzer/__init__.py
@@ -5,4 +5,4 @@
# Author: xaoyaoo
# Date: 2023/09/27
# -------------------------------------------------------------------------------
-from .db_parsing import read_img_dat, read_emoji, decompress_CompressContent, read_audio_buf, read_audio, parse_xml_string
+from .db_parsing import read_img_dat, read_emoji, decompress_CompressContent, read_audio_buf, read_audio, parse_xml_string,read_BytesExtra
diff --git a/pywxdump/analyzer/db_parsing.py b/pywxdump/analyzer/db_parsing.py
index d05a12a..91bf9b7 100644
--- a/pywxdump/analyzer/db_parsing.py
+++ b/pywxdump/analyzer/db_parsing.py
@@ -153,11 +153,13 @@ def decompress_CompressContent(data):
"""
if data is None or not isinstance(data, bytes):
return None
-
- dst = lz4.block.decompress(data, uncompressed_size=len(data) << 8)
- dst.decode().replace('\x00', '') # 已经解码完成后,还含有0x00的部分,要删掉,要不后面ET识别的时候会报错
- uncompressed_data = dst.encode('utf-8', errors='ignore')
- return uncompressed_data
+ try:
+ dst = lz4.block.decompress(data, uncompressed_size=len(data) << 8)
+ dst.decode().replace(b'\x00', '') # 已经解码完成后,还含有0x00的部分,要删掉,要不后面ET识别的时候会报错
+ uncompressed_data = dst.decode('utf-8', errors='ignore')
+ return uncompressed_data
+ except Exception as e:
+ return data.decode('utf-8', errors='ignore')
def read_audio_buf(buf_data, is_play=False, is_wave=False, rate=24000):
@@ -257,13 +259,13 @@ def read_BytesExtra(BytesExtra):
if __name__ == '__main__':
- DB = sqlite3.connect(r"D:\_code\py_code\test\a2023\b0821wxdb\merge_wfwx_db\kkWxMsg\MSG_all.db")
+ DB = sqlite3.connect(r"D:\_code\py_code\test\a2023\b0821wxdb\merge_wfwx_db\hwfWxMsg\MSG_all.db")
cursor = DB.cursor()
- sql = "select MsgSvrID,BytesExtra from MSG where BytesExtra is not null and StrTalker='24724392255@chatroom' order by CreateTime desc limit 10"
+ sql = "select MsgSvrID,CompressContent from MSG where MSG.MsgSvrID=5379391128928795712"
DBdata = cursor.execute(sql).fetchall()
for i in DBdata:
- MsgSvrID, BytesExtra = i
- data = read_BytesExtra(BytesExtra)
+ MsgSvrID, CompressContent = i
+ data = decompress_CompressContent(CompressContent)
# 提取特定键的信息
print(MsgSvrID,"\n",data)
print("-" * 64)
\ No newline at end of file
diff --git a/pywxdump/ui/templates/chat.html b/pywxdump/ui/templates/chat.html
index cb2861d..f9b0783 100644
--- a/pywxdump/ui/templates/chat.html
+++ b/pywxdump/ui/templates/chat.html
@@ -22,7 +22,7 @@
{% if msg.is_sender == 1 %}
-
+
{% if msg.type_name == '语音' %}
{% else %}
-
+
{% if msg.type_name == '语音' %}