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):
|
|
|
|
|
"""
|
|
|
|
|
获取朋友圈数据
|
2024-08-13 19:13:18 +08:00
|
|
|
|
http://shmmsns.qpic.cn/mmsns/uGxMq1C4wvppcjBbyweK796GtT1hH3LGISYajZ2v7C11XhHk5icyDUXcWNSPk2MooeIa8Es5hXP0/0?idx=1&token=WSEN6qDsKwV8A02w3onOGQYfxnkibdqSOkmHhZGNB4DFumlE9p1vp0e0xjHoXlbbXRzwnQia6X5t3Annc4oqTuDg
|
2024-08-13 18:29:46 +08:00
|
|
|
|
"""
|
2024-08-13 19:13:18 +08:00
|
|
|
|
sql = (
|
|
|
|
|
"SELECT FeedId, CreateTime, FaultId, Type, UserName, Status, ExtFlag, PrivFlag, StringId, Content "
|
|
|
|
|
"FROM FeedsV20 "
|
|
|
|
|
"ORDER BY CreateTime DESC")
|
2024-08-13 18:29:46 +08:00
|
|
|
|
FeedsV20 = self.execute(sql)
|
2024-08-13 19:29:36 +08:00
|
|
|
|
for row in FeedsV20[2:]:
|
2024-08-13 19:13:18 +08:00
|
|
|
|
(FeedId, CreateTime, FaultId, Type, UserName, Status, ExtFlag, PrivFlag, StringId, Content) = row
|
2024-08-13 18:29:46 +08:00
|
|
|
|
|
|
|
|
|
Content = xml2dict(Content) if Content and Content.startswith("<") else Content
|
|
|
|
|
CreateTime = timestamp2str(CreateTime)
|
2024-08-13 19:13:18 +08:00
|
|
|
|
print(
|
|
|
|
|
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"
|
|
|
|
|
)
|
2024-08-13 19:29:36 +08:00
|
|
|
|
return FeedId, CreateTime, FaultId, Type, UserName, Status, ExtFlag, PrivFlag, StringId, Content
|
2024-08-13 19:13:18 +08:00
|
|
|
|
|
|
|
|
|
def get_sns_comment(self):
|
|
|
|
|
pass
|