WeChatMsg/wxManager/parser/file_parser.py
2025-03-28 21:43:32 +08:00

62 lines
1.6 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Time : 2024/12/12 22:52
@Author : SiYuan
@Email : 863909694@qq.com
@File : MemoTrace-file_parser.py
@Description :
"""
import xmltodict
from wxManager.log import logger
def get_image_type(header):
# 根据文件头判断图片类型
if header.startswith(b'\xFF\xD8'):
return 'jepg'
elif header.startswith(b'\x89PNG'):
return 'png'
elif header[:6] in (b'GIF87a', b'GIF89a'):
return 'gif'
elif header.startswith(b'BM'):
return 'bmp'
elif header.startswith(b'\x00\x00\x01\x00'):
return 'ico'
elif header.startswith(b'\x49\x49\x2A\x00') or header.startswith(b'\x4D\x4D\x00\x2A'):
return 'tiff'
elif header.startswith(b'RIFF') and header[8:12] == b'WEBP':
return 'webp'
else:
return 'png'
def parse_video(xml_content):
result = {
'md5': 0
}
xml_content = xml_content.strip()
try:
xml_dict = xmltodict.parse(xml_content)
# logger.error(json.dumps(xml_dict))
video_dic = xml_dict.get('msg', {}).get('videomsg', {})
md5 = video_dic.get('@md5', '') # 下载后压缩视频的md5
rawmd5 = video_dic.get('@rawmd5', '') # 原视频md5
result = {
'md5': md5,
'rawmd5': rawmd5,
'length': video_dic.get('@playlength', 0),
'size': video_dic.get('@length', 0)
}
except:
logger.error(f'视频解析失败\n{xml_content}')
finally:
return result
if __name__ == '__main__':
pass