林文威

← 全部作品

个人项目

微信年度报告

读取手机里的微信聊天记录,给每位好友生成一份“我们的年度报告”,当作新年祝福送出去。

时间
2022.01
我做的
消息解析、部署
团队
和李昊蕤合作
技术
Python · Pandas · React · Flask · Azure Static Web Apps · Azure App Service · Azure Functions
我的微信年度报告最常聊天的时刻最常用的词聊天记录(本地数据库)新年祝福

一到年底,各个平台都会推出年度报告,微信出于隐私考虑一直没有。2022 年 1 月,我和朋友李昊蕤自己做了一个:读手机里的微信数据库,为每一位好友统计这一年里我们的聊天,生成一份只属于两个人的年度报告,当作新年祝福发出去。

微信年度报告的几屏(示例数据):输入验证码进入;我们相识于哪一天、今年互发了多少条消息、连续聊了多少天;最晚的一次聊天;最常在几点聊天、一周哪天聊得最多;年度关键词;最后是新春祝福

几屏的样子,用的是示例数据。

报告里有什么

  • 我们从哪一天开始聊天,今年一共互发了多少条消息;
  • 最长连续聊了多少天;
  • 哪一天聊得最多,那天的关键词是什么;
  • 今年最晚的一次聊天在几点;
  • 一天里最常在几点聊、一周里哪天聊得最多;
  • 我们俩的年度关键词;
  • 最后是一句我手写给对方的祝福。

每份报告都要输入验证码才能打开,因为里面是两个人的聊天。

怎么做的

  1. 取数据:从手机导出微信的本地数据库,它是加密的,要用 SQLCipher 解开;
  2. 处理:用 Python 和 Pandas 按好友统计。聊天里有很多特殊的消息,比如引用回复、“拍一拍”,要先解析出来,这部分是我写的;
  3. 写祝福:给每位好友手动写一句话;
  4. 生成验证码,最后部署前端和后端。

前端是 React 做的一屏屏的页面,后端用 Flask。这个项目的原型,是李昊蕤一门信息可视化课程的作业,我们在它的基础上改成了能发给很多人的版本。

部署到 Azure

那时我刚当上微软学生大使,有 Azure 的额度,就把它部署到了 Azure 上。前端用 Azure Static Web Apps,后端用 Azure App Service,还用 Azure Functions 接了一个数据库,琢磨了很久才弄通。