mirror of
https://github.com/LifeArchiveProject/WeChatDataAnalysis.git
synced 2026-02-19 22:30:49 +08:00
- 导出格式新增 html:生成 index.html + 会话 messages.html,离线浏览 - 支持 chatHistory(合并消息)解析/渲染与弹窗查看 - 图片资源解析增强:MessageResourceInfo 优先 + md5/hdmd5 兜底 - HTML 导出可选下载远程缩略图(仅公网主机/图片类型/5MB 限制) - 修复拍一拍误判、公众号封面样式识别;转账过期状态与前端展示
59 lines
2.1 KiB
Python
59 lines
2.1 KiB
Python
import sys
|
||
import unittest
|
||
from pathlib import Path
|
||
|
||
|
||
ROOT = Path(__file__).resolve().parents[1]
|
||
sys.path.insert(0, str(ROOT / "src"))
|
||
|
||
from wechat_decrypt_tool.chat_helpers import _parse_app_message
|
||
|
||
|
||
class TestChatOfficialArticleCoverStyle(unittest.TestCase):
|
||
def test_mp_weixin_feed_url_is_cover_style(self):
|
||
raw_text = (
|
||
"<msg>"
|
||
"<appmsg>"
|
||
"<title>时尚穿搭:「这样的jk你喜欢吗」</title>"
|
||
"<des>这样的jk你喜欢吗?</des>"
|
||
"<type>5</type>"
|
||
"<url>"
|
||
"http://mp.weixin.qq.com/s?__biz=MzkxOTY4MjIxOA==&mid=2247508015&idx=1&sn=931dce677c6e70b4365792b14e7e8ff0"
|
||
"&exptype=masonry_feed_brief_content_elite_for_pcfeeds_u2i&ranksessionid=1770868256_1&req_id=1770867949535989#rd"
|
||
"</url>"
|
||
"<thumburl>https://mmbiz.qpic.cn/sz_mmbiz_jpg/foo/640?wx_fmt=jpeg&wxfrom=401</thumburl>"
|
||
"<sourcedisplayname>甜图社</sourcedisplayname>"
|
||
"<sourceusername>gh_abc123</sourceusername>"
|
||
"</appmsg>"
|
||
"</msg>"
|
||
)
|
||
|
||
parsed = _parse_app_message(raw_text)
|
||
self.assertEqual(parsed.get("renderType"), "link")
|
||
self.assertEqual(parsed.get("linkType"), "official_article")
|
||
self.assertEqual(parsed.get("linkStyle"), "cover")
|
||
|
||
def test_mp_weixin_non_feed_url_keeps_default_style(self):
|
||
raw_text = (
|
||
"<msg>"
|
||
"<appmsg>"
|
||
"<title>普通分享</title>"
|
||
"<des>这样的jk你喜欢吗?</des>"
|
||
"<type>5</type>"
|
||
"<url>http://mp.weixin.qq.com/s?__biz=foo&mid=1&idx=1&sn=bar#rd</url>"
|
||
"<sourcedisplayname>甜图社</sourcedisplayname>"
|
||
"<sourceusername>gh_abc123</sourceusername>"
|
||
"</appmsg>"
|
||
"</msg>"
|
||
)
|
||
|
||
parsed = _parse_app_message(raw_text)
|
||
self.assertEqual(parsed.get("renderType"), "link")
|
||
self.assertEqual(parsed.get("linkType"), "official_article")
|
||
self.assertEqual(parsed.get("linkStyle"), "default")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
unittest.main()
|
||
|