PyWxDump/pywxdump/db/dbSns.py

62 lines
2.5 KiB
Python
Raw Normal View History

2024-08-13 17:31:06 +08:00
# -*- coding: utf-8 -*-#
# -------------------------------------------------------------------------------
# Name: Sns.py
2024-08-13 18:29:46 +08:00
# Description: 负责处理朋友圈相关数据 软件只能看到在电脑微信浏览过的朋友圈记录
2024-08-13 17:31:06 +08:00
# Author: xaoyaoo
# Date: 2024/04/15
# -------------------------------------------------------------------------------
2024-08-13 18:29:46 +08:00
import json
2024-08-13 17:31:06 +08:00
from .dbbase import DatabaseBase
2024-08-13 18:29:46 +08:00
from .utils import silk2audio, xml2dict, timestamp2str
2024-08-13 17:31:06 +08:00
2024-08-13 18:29:46 +08:00
# FeedsV20朋友圈的XML数据
# CommentV20朋友圈点赞或评论记录
# NotificationV7朋友圈通知
# SnsConfigV20一些配置信息能读懂的是其中有你的朋友圈背景图
# SnsGroupInfoV5猜测是旧版微信朋友圈可见范围的可见或不可见名单
2024-08-13 17:31:06 +08:00
2024-08-13 17:37:07 +08:00
class SnsHandler(DatabaseBase):
_class_name = "Sns"
Media_required_tables = ["AdFeedsV8", "FeedsV20", "CommentV20", "NotificationV7", "SnsConfigV20", "SnsFailureV5",
"SnsGroupInfoV5", "SnsNoNotifyV5"]
2024-08-13 18:29:46 +08:00
def get_sns_feed(self):
"""
获取朋友圈数据
"""
sql = ("SELECT FeedId, CreateTime, FaultId, Type, UserName, Status, ExtFlag, PrivFlag, StringId, Content, "
"Reserved1, Reserved2, Reserved3, Reserved4, Reserved5, Reserved6, ExtraBuf, Reserved7 "
"FROM FeedsV20 "
"ORDER BY CreateTime DESC")
FeedsV20 = self.execute(sql)
for row in FeedsV20[2:]:
(FeedId, CreateTime, FaultId, Type, UserName, Status, ExtFlag, PrivFlag, StringId, Content,
Reserved1, Reserved2, Reserved3, Reserved4, Reserved5, Reserved6, ExtraBuf, Reserved7) = row
Content = xml2dict(Content) if Content and Content.startswith("<") else Content
CreateTime = timestamp2str(CreateTime)
print(f""
f"{FeedId=}\n"
f"{CreateTime=}\n"
f"{FaultId=}\n"
f"{Type=}\n"
f"{UserName=}\n"
f"{Status=}\n"
f"{ExtFlag=}\n"
f"{PrivFlag=}\n"
f"{StringId=}\n\n"
f"{json.dumps(Content,indent=4,ensure_ascii=False)}\n\n"
f"{ExtraBuf=}\n"
f"{Reserved1=}\n"
f"{Reserved2=}\n"
f"{Reserved3=}\n"
f"{Reserved4=}\n"
f"{Reserved5=}\n"
f"{Reserved6=}\n"
f"{Reserved7=}\n"
)
break