👑
{nightOwl['name']}
{nightOwl['title']}
最晚活跃时间:{nightOwl['latestTime']}
深夜消息数:{nightOwl['messageCount']}
{nightOwl['lastMessage']}
注:熬夜时段定义为23:00-06:00,已考虑不同时区
"""
html = html.replace('','\n' + f + '\n')
# 处理词云
words = []
for word in json_data['sections']['wordCloud']['words']:
words.append(f"""
{word['text']}""")
html = html.replace('', '\n'.join(words))
# 处理词云的分类
types = []
for typ in json_data['sections']['wordCloud']['legend']:
types.append(f"""
{typ['label']}
"""
)
html = html.replace('', '\n'.join(types))
# 处理页脚
footer = json_data['footer']
html = html.replace('[群名称]', footer['dataSource'])
html = html.replace('[当前时间]', footer['generationTime'])
html = html.replace('[日期] [时间范围]', footer['statisticalPeriod'])
return html
if __name__ == '__main__':
json_data = r"```json\n{\n\"header\": {\n\"title\": \"群聊报告\",\n\"date\": \"2025-04-29\",\n\"metaInfo\": {\n\"totalMessages\": \"30\",\n\"activeUsers\": \"12\",\n\"timeRange\": \"07:03:10 - 15:36:25\"\n}\n},\n\"sections\": {\n\"hotTopics\": {\n\"items\": [\n{\n\"name\": \"AI技术讨论\",\n\"category\": \"科技\",\n\"summary\": \"群内围绕AI技术进行了深入讨论,包括Qwen3模型的开源、Vidu Q1的体验、夸克AI相机等话题。\",\n\"keywords\": [\"Qwen3\", \"Vidu Q1\", \"夸克AI相机\"],\n\"mentions\": \"10\"\n},\n{\n\"name\": \"熬夜与加班\",\n\"category\": \"生活\",\n\"summary\": \"群成员讨论了熬夜和加班的现象,尤其是科技行业的加班文化及其对身体的影响。\",\n\"keywords\": [\"熬夜\", \"加班\", \"卷王\"],\n\"mentions\": \"8\"\n}\n]\n},\n\"tutorials\": {\n\"items\": [\n{\n\"type\": \"TUTORIAL\",\n\"title\": \"Qwen3深夜正式开源\",\n\"sharedBy\": \"苍何\",\n\"time\": \"2025-04-29 09:20:23\",\n\"summary\": \"Qwen3小尺寸也能大力出奇迹,欢迎来到这个荒诞又灿烂的时代。\",\n\"keyPoints\": [\"开源\", \"小尺寸\", \"高性能\"],\n\"url\": \"http://mp.weixin.qq.com/s?__biz=MzIyMzA5NjEyMA==&mid=2647670717&idx=1&sn=edec1f6cda0c1227e72cd07abf4228ff&chksm=f19a699bb993eb9ed2850ba329f382668bc7edc8a2d7d4a94de2d29c15cf87aa05bf6b48dc6d&mpshare=1&scene=1&srcid=0429TzXAJtS5jA2QI9hLEroV&sharer_shareinfo=7fd7493f3ccf9923f55b48a05619ce1b&sharer_shareinfo_first=fc872ba73c219b858d700a9db530b5b1#rd\",\n\"domain\": \"mp.weixin.qq.com\",\n\"category\": \"AI\"\n},\n{\n\"type\": \"TUTORIAL\",\n\"title\": \"体验完刚上线的Vidu Q1\",\n\"sharedBy\": \"苍何\",\n\"time\": \"2025-04-29 09:39:42\",\n\"summary\": \"AI视频清晰度,一致性都上了一个台阶。\",\n\"keyPoints\": [\"Vidu Q1\", \"AI视频\", \"清晰度\"],\n\"url\": \"http://mp.weixin.qq.com/s?__biz=MzU4NTE1Mjg4MA==&mid=2247493267&idx=1&sn=0189fb501578ce8e27142fbe2f590d03&chksm=fc9a946728c367005c19cb5a335300d05d51a441f9f20424a0a72c904a47bdf003252576318a&mpshare=1&scene=1&srcid=04297l70B2zsuypDfjUh0rh5&sharer_shareinfo=181efb947f938ab90786c776bf7bbda7&sharer_shareinfo_first=181efb947f938ab90786c776bf7bbda7#rd\",\n\"domain\": \"mp.weixin.qq.com\",\n\"category\": \"AI\"\n},\n{\n\"type\": \"TUTORIAL\",\n\"title\": \"阿里新出的夸克AI相机\",\n\"sharedBy\": \"苍何\",\n\"time\": \"2025-04-29 09:42:38\",\n\"summary\": \"夸克AI相机超多新奇的玩法,太抽象了。\",\n\"keyPoints\": [\"夸克AI相机\", \"新奇玩法\", \"抽象\"],\n\"url\": \"http://mp.weixin.qq.com/s?__biz=MzU4NTE1Mjg4MA==&mid=2247493275&idx=1&sn=93556ddd1da7fb8733a23a7c4adbb76b&chksm=fc2a2d25774cce23c75acd8850b85c585c0bcf78d14b810e157efaec5106abf563cf58e26aef&mpshare=1&scene=1&srcid=0429vDf8NbEzNLBQQyFlABmU&sharer_shareinfo=28b94477ec8201b88aa30338e82e8999&sharer_shareinfo_first=28b94477ec8201b88aa30338e82e8999#rd\",\n\"domain\": \"mp.weixin.qq.com\",\n\"category\": \"AI\"\n},\n{\n\"type\": \"TUTORIAL\",\n\"title\": \"仅2MB,Windows瞬间超级丝滑!\",\n\"sharedBy\": \"AHapi²⁰²⁵\",\n\"time\": \"2025-04-29 11:13:38\",\n\"summary\": \"这才是,真神器!\",\n\"keyPoints\": [\"Windows优化\", \"2MB\", \"神器\"],\n\"url\": \"https://mp.weixin.qq.com/s/es77Jc6Du03ppJD5XJeQUg\",\n\"domain\": \"mp.weixin.qq.com\",\n\"category\": \"工具\"\n}\n]\n},\n\"importantMessages\": {\n\"items\": [\n{\n\"time\": \"2025-04-29 10:00:18\",\n\"sender\": \"苍何\",\n\"type\": \"NEWS\",\n\"priority\": \"高\",\n\"content\": \"2025年04月29日 AI科技早报\",\n\"fullContent\": \"1、阿里开源8款Qwen3模型,集成MCP,性能超DeepSeek-R1、OpenAI o1。\\\\n\\\\n2、Qafind Labs发布ChatDLM扩散语言模型,推理速度高达2800 tokens/s。\\\\n\\\\n3、腾讯开源Kuikly跨端框架,基于Kotlin支持多平台开发,已应用于QQ。\\\\n\\\\n4、OpenAI 推出 ChatGPT 购物功能,用户可通过 ChatGPT 便捷购物。\\\\n\\\\n5、字节Seed团队提出PHD-Transformer,突破预训练长度扩展瓶颈。\\\\n\\\\n6、百度发布文心快码3.5版本与多模态AI智能体Zulu,助力工程师提效。\\\\n\\\\n7、Kimi与财新传媒合作,提供专业财经内容,推动AI+传统媒体融合。\\\\n\\\\n8、苹果加速「N50」智能眼镜项目,融合AI技术预计2027年亮相。\\\\n\\\\n9、研究显示OpenAI o3在病毒学领域超越94%人类专家,生物安全引关注。\\\\n\\\\n10、华为测试自研AI芯片Ascend 910D,旨在替代英伟达H100芯片。\\\\n\\\\n11、🔥【记得收藏】早报同步更新到开源 AI 知识库:https://u55dyuejxc.feishu.cn/wiki/FkmNwxYHDigJ3akIUGHc8MSTn4d\"\n}\n]\n},\n\"dialogues\": {\n\"items\": [\n{\n\"type\": \"DIALOGUE\",\n\"messages\": [\n{\n\"speaker\": \"好名字\",\n\"time\": \"2025-04-29 08:16:23\",\n\"content\": \"这个我弄完,ai做的小程序有bug,流程走不通,还改不了[捂脸]\"\n},\n{\n\"speaker\": \"贾👦🏻\",\n\"time\": \"2025-04-29 08:54:33\",\n\"content\": \"可以微调 不过源码需要买的\"\n},\n{\n\"speaker\": \"好名字\",\n\"time\": \"2025-04-29 09:13:32\",\n\"content\": \"微调一次,然后再想调就需要开会员了\"\n},\n{\n\"speaker\": \"贾👦🏻\",\n\"time\": \"2025-04-29 09:14:09\",\n\"content\": \"需求变更一个字 就需要重新购买[破涕为笑]\"\n}\n],\n\"highlight\": \"需求变更一个字 就需要重新购买[破涕为笑]\",\n\"relatedTopic\": \"AI小程序开发\"\n},\n{\n\"type\": \"DIALOGUE\",\n\"messages\": [\n{\n\"speaker\": \"苍何\",\n\"time\": \"2025-04-29 09:26:49\",\n\"content\": \"我熬不动\"\n},\n{\n\"speaker\": \"AHapi²⁰²⁵\",\n\"time\": \"2025-04-29 09:27:25\",\n\"content\": \"不要卷别人[旺柴]别人写了 就不卷他们了\"\n},\n{\n\"speaker\": \"苍何\",\n\"time\": \"2025-04-29 09:27:55\",\n\"content\": \"新闻得第一时间,做不到写了也没啥用\"\n},\n{\n\"speaker\": \"苍何\",\n\"time\": \"2025-04-29 09:28:03\",\n\"content\": \"还不如写些应用\"\n},\n{\n\"speaker\": \"大风(Wind)\",\n\"time\": \"2025-04-29 09:28:23\",\n\"content\": \"看看哪些是5-7点发推文的,基本都是卷王了\"\n},\n{\n\"speaker\": \"沉默王二\",\n\"time\": \"2025-04-29 09:28:44\",\n\"content\": \"身体能扛住确实离谱\"\n},\n{\n\"speaker\": \"苍何\",\n\"time\": \"2025-04-29 09:29:03\",\n\"content\": \"是啊,太肝了\"\n},\n{\n\"speaker\": \"苍何\",\n\"time\": \"2025-04-29 09:29:39\",\n\"content\": \"我前天熬夜测vidu,人已经废了好几天\"\n},\n{\n\"speaker\": \"AHapi²⁰²⁵\",\n\"time\": \"2025-04-29 09:30:02\",\n\"content\": \"5-7点还好 早点睡也还行\"\n},\n{\n\"speaker\": \"大风(Wind)\",\n\"time\": \"2025-04-29 09:30:14\",\n\"content\": \"效果咋样\"\n},\n{\n\"speaker\": \"大风(Wind)\",\n\"time\": \"2025-04-29 09:30:21\",\n\"content\": \"5点发布的\"\n},\n{\n\"speaker\": \"大风(Wind)\",\n\"time\": \"2025-04-29 09:30:52\",\n\"content\": \"2小时内出文\"\n},\n{\n\"speaker\": \"沉默王二\",\n\"time\": \"2025-04-29 09:31:00\",\n\"content\": \"意味着阿里的 coder 们也在加班和熬夜\"\n},\n{\n\"speaker\": \"AHapi²⁰²⁵\",\n\"time\": \"2025-04-29 09:40:18\",\n\"content\": \"他们加班熬夜 赚的还是多啊[Facepalm]我们加班熬夜 就一点屁钱\"\n}\n],\n\"highlight\": \"他们加班熬夜 赚的还是多啊[Facepalm]我们加班熬夜 就一点屁钱\",\n\"relatedTopic\": \"加班文化\"\n}\n]\n},\n\"qa\": {\n\"items\": [\n{\n\"question\": {\n\"asker\": \"银色子弹-捷\",\n\"time\": \"2025-04-29 11:10:26\",\n\"content\": \"问一下win11电脑,你长时间没清理,运行慢,一般用什么来清理电脑? 不要360啊,那个太流氓了,想知道各位大佬有没有优秀的软件推荐一下\",\n\"tags\": [\"Windows优化\", \"清理工具\"]\n},\n\"answers\": [\n{\n\"responder\": \"昏沉沉的\",\n\"time\": \"2025-04-29 11:11:59\",\n\"content\": \"ccclean\",\n\"isAccepted\": false\n},\n{\n\"responder\": \"🤑程序儒\",\n\"time\": \"2025-04-29 11:13:07\",\n\"content\": \"360极速版、Wise Care 365\",\n\"isAccepted\": false\n},\n{\n\"responder\": \"AHapi²⁰²⁵\",\n\"time\": \"2025-04-29 11:13:38\",\n\"content\": \"仅2MB,Windows瞬间超级丝滑!\\\\n这才是,真神器!\\\\n\\\\n
点击查看详情\",\n\"isAccepted\": false\n}\n]\n},\n{\n\"question\": {\n\"asker\": \"ಠ_ಠ 闲鱼一条ಠ_ಠ\",\n\"time\": \"2025-04-29 11:37:49\",\n\"content\": \"请问哪位哥还有扣子的邀请码吗?\",\n\"tags\": [\"邀请码\", \"扣子\"]\n},\n\"answers\": [\n{\n\"responder\": \"贾👦🏻\",\n\"time\": \"2025-04-29 11:40:37\",\n\"content\": \"RootUser_2105656329 邀请你体验扣子空间,快来和 Agent 一起开始你的工作吧!\\\\nhttps://www.coze.cn/space-preview?invite_code=SCL7DAL0\",\n\"isAccepted\": true\n},\n{\n\"responder\": \"9527\",\n\"time\": \"2025-04-29 11:47:43\",\n\"content\": \"RootUser_2106519373 邀请你体验扣子空间,快来和 Agent 一起开始你的工作吧!\\\\nhttps://www.coze.cn/space-preview?invite_code=A8IT4MUE\",\n\"isAccepted\": false\n},\n{\n\"responder\": \"9527\",\n\"time\": \"2025-04-29 11:47:53\",\n\"content\": \"RootUser_2106519373 邀请你体验扣子空间,快来和 Agent 一起开始你的工作吧!\\\\nhttps://www.coze.cn/space-preview?invite_code=7QUCYZKC\",\n\"isAccepted\": false\n}\n]\n}\n]\n},\n\"analytics\": {\n\"heatmap\": [\n{\n\"topic\": \"AI技术\",\n\"percentage\": \"40%\",\n\"color\": \"#3da9fc\",\n\"count\": \"12\"\n},\n{\n\"topic\": \"熬夜与加班\",\n\"percentage\": \"30%\",\n\"color\": \"#4361ee\",\n\"count\": \"9\"\n},\n{\n\"topic\": \"工具推荐\",\n\"percentage\": \"20%\",\n\"color\": \"#00b4d8\",\n\"count\": \"6\"\n},\n{\n\"topic\": \"邀请码\",\n\"percentage\": \"10%\",\n\"color\": \"#4895ef\",\n\"count\": \"3\"\n}\n],\n\"chattyRanking\": [\n{\n\"rank\": 1,\n\"name\": \"苍何\",\n\"count\": \"7\",\n\"characteristics\": [\"技术分享\", \"熬夜达人\"],\n\"commonWords\": [\"AI\", \"熬夜\", \"开源\"]\n},\n{\n\"rank\": 2,\n\"name\": \"AHapi²⁰²⁵\",\n\"count\": \"6\",\n\"characteristics\": [\"幽默\", \"工具推荐\"],\n\"commonWords\": [\"旺柴\", \"神器\", \"加班\"]\n},\n{\n\"rank\": 3,\n\"name\": \"大风(Wind)\",\n\"count\": \"4\",\n\"characteristics\": [\"提问\", \"互动\"],\n\"commonWords\": [\"效果\", \"发布\", \"卷王\"]\n}\n],\n\"nightOwl\": {\n\"name\": \"苍何\",\n\"title\": \"熬夜冠军\",\n\"latestTime\": \"2025-04-29 09:42:54\",\n\"messageCount\": \"7\",\n\"lastMessage\": \"我熬夜写了这一篇[旺柴]\"\n}\n},\n\"wordCloud\": {\n\"words\": [\n{\n\"text\": \"AI\",\n\"size\": 38,\n\"color\": \"#00b4d8\",\n\"rotation\": -15\n},\n{\n\"text\": \"熬夜\",\n\"size\": 32,\n\"color\": \"#4361ee\",\n\"rotation\": 0\n},\n{\n\"text\": \"开源\",\n\"size\": 28,\n\"color\": \"#00b4d8\",\n\"rotation\": 15\n},\n{\n\"text\": \"加班\",\n\"size\": 24,\n\"color\": \"#4361ee\",\n\"rotation\": -10\n},\n{\n\"text\": \"Qwen3\",\n\"size\": 22,\n\"color\": \"#00b4d8\",\n\"rotation\": 10\n},\n{\n\"text\": \"Vidu Q1\",\n\"size\": 20,\n\"color\": \"#4361ee\",\n\"rotation\": -5\n},\n{\n\"text\": \"夸克AI相机\",\n\"size\": 18,\n\"color\": \"#00b4d8\",\n\"rotation\": 5\n},\n{\n\"text\": \"卷王\",\n\"size\": 16,\n\"color\": \"#4361ee\",\n\"rotation\": 0\n}\n],\n\"legend\": [\n{\"color\": \"#00b4d8\", \"label\": \"AI 相关词汇\"},\n{\"color\": \"#4361ee\", \"label\": \"生活 相关词汇\"}\n]\n}\n},\n\"footer\": {\n\"dataSource\": \"群聊聊天记录\",\n\"generationTime\": \"2025-04-29 16:00:00\",\n\"statisticalPeriod\": \"2025-04-29 07:03:10 - 15:36:25\",\n\"disclaimer\": \"本报告内容基于群聊公开讨论,如有不当内容或侵权问题请联系管理员处理。\"\n}\n}\n```"
with open('text.html', 'w', encoding='utf-8') as f:
f.write(main(json_data))