mirror of
https://github.com/LC044/WeChatMsg
synced 2025-02-23 03:22:17 +08:00
表情包增加日志信息
This commit is contained in:
parent
c5d4ee6e3f
commit
996582a81e
@ -16,7 +16,7 @@ def merge_databases(source_paths, target_path):
|
|||||||
db.text_factory = str
|
db.text_factory = str
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
sql = '''
|
sql = '''
|
||||||
SELECT TalkerId,MsgsvrID,Type,SubType,IsSender,CreateTime,Sequence,StrTalker,StrContent,DisplayContent,BytesExtra
|
SELECT TalkerId,MsgsvrID,Type,SubType,IsSender,CreateTime,Sequence,StrTalker,StrContent,DisplayContent,BytesExtra,CompressContent
|
||||||
FROM MSG;
|
FROM MSG;
|
||||||
'''
|
'''
|
||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
@ -25,8 +25,8 @@ def merge_databases(source_paths, target_path):
|
|||||||
target_cursor.executemany(
|
target_cursor.executemany(
|
||||||
"INSERT INTO MSG "
|
"INSERT INTO MSG "
|
||||||
"(TalkerId,MsgsvrID,Type,SubType,IsSender,CreateTime,Sequence,StrTalker,StrContent,DisplayContent,"
|
"(TalkerId,MsgsvrID,Type,SubType,IsSender,CreateTime,Sequence,StrTalker,StrContent,DisplayContent,"
|
||||||
"BytesExtra)"
|
"BytesExtra,CompressContent)"
|
||||||
"VALUES(?,?,?,?,?,?,?,?,?,?,?)",
|
"VALUES(?,?,?,?,?,?,?,?,?,?,?,?)",
|
||||||
result)
|
result)
|
||||||
cursor.close()
|
cursor.close()
|
||||||
db.close()
|
db.close()
|
||||||
|
@ -256,7 +256,7 @@ def read_info(version_list, is_logging=False):
|
|||||||
|
|
||||||
tmp_rd['wxid'] = get_info_wxid(Handle)
|
tmp_rd['wxid'] = get_info_wxid(Handle)
|
||||||
tmp_rd['filePath'] = get_info_filePath(tmp_rd['wxid']) if tmp_rd['wxid'] != "None" else "None"
|
tmp_rd['filePath'] = get_info_filePath(tmp_rd['wxid']) if tmp_rd['wxid'] != "None" else "None"
|
||||||
tmp_rd['key'] = get_key(tmp_rd['filePath'], addrLen) if tmp_rd['filePath'] != "None" else "None"
|
tmp_rd['key'] = get_key(tmp_rd['filePath'], addrLen)
|
||||||
result.append(tmp_rd)
|
result.append(tmp_rd)
|
||||||
|
|
||||||
if is_logging:
|
if is_logging:
|
||||||
|
@ -47,6 +47,7 @@ class ContactPC:
|
|||||||
self.nickName = contact_info.get('NickName')
|
self.nickName = contact_info.get('NickName')
|
||||||
if not self.remark:
|
if not self.remark:
|
||||||
self.remark = self.nickName
|
self.remark = self.nickName
|
||||||
|
self.remark.replace('*', '_').replace('/', '_').replace('\\', '_')
|
||||||
self.smallHeadImgUrl = contact_info.get('smallHeadImgUrl')
|
self.smallHeadImgUrl = contact_info.get('smallHeadImgUrl')
|
||||||
self.smallHeadImgBLOG = b''
|
self.smallHeadImgBLOG = b''
|
||||||
self.avatar = QPixmap()
|
self.avatar = QPixmap()
|
||||||
|
@ -9,17 +9,20 @@ emoji.py
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import traceback
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
|
from app.log import log, logger
|
||||||
|
|
||||||
root_path = './data/emoji/'
|
root_path = './data/emoji/'
|
||||||
if not os.path.exists('./data'):
|
if not os.path.exists('./data'):
|
||||||
os.mkdir('./data')
|
os.mkdir('./data')
|
||||||
if not os.path.exists(root_path):
|
if not os.path.exists(root_path):
|
||||||
os.mkdir(root_path)
|
os.mkdir(root_path)
|
||||||
|
|
||||||
|
@log
|
||||||
def get_image_format(header):
|
def get_image_format(header):
|
||||||
# 定义图片格式的 magic numbers
|
# 定义图片格式的 magic numbers
|
||||||
image_formats = {
|
image_formats = {
|
||||||
@ -36,7 +39,7 @@ def get_image_format(header):
|
|||||||
# 如果无法识别格式,返回 None
|
# 如果无法识别格式,返回 None
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@log
|
||||||
def parser_xml(xml_string):
|
def parser_xml(xml_string):
|
||||||
# Parse the XML string
|
# Parse the XML string
|
||||||
root = ET.fromstring(xml_string)
|
root = ET.fromstring(xml_string)
|
||||||
@ -60,7 +63,7 @@ def parser_xml(xml_string):
|
|||||||
'md5': md5 if md5 else androidmd5,
|
'md5': md5 if md5 else androidmd5,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@log
|
||||||
def download(url, output_dir, name, thumb=False):
|
def download(url, output_dir, name, thumb=False):
|
||||||
if not url:
|
if not url:
|
||||||
return ':/icons/icons/404.png'
|
return ':/icons/icons/404.png'
|
||||||
@ -80,17 +83,22 @@ def download(url, output_dir, name, thumb=False):
|
|||||||
|
|
||||||
|
|
||||||
def get_emoji(xml_string, thumb=True, output_path=root_path) -> str:
|
def get_emoji(xml_string, thumb=True, output_path=root_path) -> str:
|
||||||
emoji_info = parser_xml(xml_string)
|
try:
|
||||||
md5 = emoji_info['md5']
|
emoji_info = parser_xml(xml_string)
|
||||||
image_format = ['.png', '.gif', '.jpeg']
|
md5 = emoji_info['md5']
|
||||||
for f in image_format:
|
image_format = ['.png', '.gif', '.jpeg']
|
||||||
prefix = 'th_' if thumb else ''
|
for f in image_format:
|
||||||
file_path = os.path.join(output_path, prefix + md5 + f)
|
prefix = 'th_' if thumb else ''
|
||||||
if os.path.exists(file_path):
|
file_path = os.path.join(output_path, prefix + md5 + f)
|
||||||
return file_path
|
if os.path.exists(file_path):
|
||||||
url = emoji_info['thumburl'] if thumb else emoji_info['cdnurl']
|
return file_path
|
||||||
print("下载表情包ing:", url)
|
url = emoji_info['thumburl'] if thumb else emoji_info['cdnurl']
|
||||||
return download(url, output_path, md5, thumb)
|
print("下载表情包ing:", url)
|
||||||
|
emoji_path = download(url, output_path, md5, thumb)
|
||||||
|
return emoji_path
|
||||||
|
except:
|
||||||
|
logger.error(traceback.format_exc())
|
||||||
|
return ""
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
13
readme.md
13
readme.md
@ -41,20 +41,19 @@
|
|||||||
- 🗨文本✅
|
- 🗨文本✅
|
||||||
- 🏝图片✅
|
- 🏝图片✅
|
||||||
- 🐻❄️表情包✅
|
- 🐻❄️表情包✅
|
||||||
|
- 拍一拍等系统消息✅
|
||||||
- 导出聊天记录
|
- 导出聊天记录
|
||||||
- sqlite数据库✅
|
- sqlite数据库✅
|
||||||
- HTML(文本、图片)✅
|
- HTML(文本、图片、视频、表情包)✅
|
||||||
- Word文档✅
|
- Word文档✅
|
||||||
- CSV文档✅
|
- CSV文档✅
|
||||||
- 分析聊天数据,做成可视化年报(请下载exe程序体验该功能,急需前端大佬提供优质模板)
|
- 分析聊天数据,做成可视化年报(急需前端大佬提供优质模板)
|
||||||
- 🔥**项目持续更新中**
|
- 🔥**项目持续更新中**
|
||||||
- 导出全部表情包❎
|
- 导出全部表情包❎
|
||||||
- 合并多个备份数据❎
|
- 合并多个备份数据❎
|
||||||
- 语音❎
|
- 语音❎
|
||||||
- 视频❎
|
|
||||||
- 文件❎
|
- 文件❎
|
||||||
- 回复❎
|
|
||||||
- 拍一拍❎
|
|
||||||
- 小伙伴们想要其他功能可以留言哦📬
|
- 小伙伴们想要其他功能可以留言哦📬
|
||||||
- 有任何问题可以随时联系我(863909694@qq.com)
|
- 有任何问题可以随时联系我(863909694@qq.com)
|
||||||
|
|
||||||
@ -115,8 +114,8 @@ pip install -r requirements_pc.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
|
|||||||
手机端使用聊天记录迁移功能将聊天数据迁移到电脑上
|
手机端使用聊天记录迁移功能将聊天数据迁移到电脑上
|
||||||
|
|
||||||
操作步骤:
|
操作步骤:
|
||||||
- 安卓: 我->设置->聊天->聊天记录迁移与备份->迁移-> 迁移到电脑微信(迁移完成后重启微信)[否则](https://github.com/LC044/WeChatMsg/issues/27)
|
- 安卓: 手机微信->我->设置->聊天->聊天记录迁移与备份->迁移-> 迁移到电脑微信(迁移完成后重启微信)[否则](https://github.com/LC044/WeChatMsg/issues/27)
|
||||||
- iOS: 我->设置->通用->聊天记录迁移与备份->迁移-> 迁移到电脑微信(迁移完成后重启微信)[否则](https://github.com/LC044/WeChatMsg/issues/27)
|
- iOS: 手机微信->我->设置->通用->聊天记录迁移与备份->迁移-> 迁移到电脑微信(迁移完成后重启微信)[否则](https://github.com/LC044/WeChatMsg/issues/27)
|
||||||
|
|
||||||
2. 运行程序
|
2. 运行程序
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user