专栏首页日常学pythonPython骚操作 | 还原已撤回的微信消息

Python骚操作 | 还原已撤回的微信消息

作者:pk哥 公众号:brucepk

一大早醒来,发现女神昨晚发来三条消息,但是显示都已撤回,OMG,我错过了什么?群里有一个漂亮妹纸的爆照照片撤回了,想看又看不到!群里大佬分享的经典语录被撤回了,感觉错过一个亿!怎么办?用无所不能的 Python 就可以将这些撤回的消息发给你的微信,让你从此走上人生巅峰

项目环境

语言:Python3 编辑器:Pycharm

导包

itchat:控制微信的第三方库

这个库相信大家不陌生了,之前写的 Python 机器人陪你聊天 Python 定时给女神发早安 两篇文章里用的 wxpy 库就是在 itchat 库的基础上封装的。

效果展示

以下截图显示的撤回消息类型依次是文字消息、微信自带表情、图片、语音、定位地图、名片、公众号文章、音乐、视频。有群里撤回的,也有个人号撤回的。

程序思路

主要由两部分组成: handler_receive_msg():处理接收到的消息,将消息临时放在字典中。 send_msg_helper():将撤回的消息自动发给文件传输助手。

程序分析

首先,我们定义一个字典来储存消息,定义消息储存的临时路径。

接收信息处理

先将我们需要处理的消息用 msg_register 装饰器进行注册,格式化本地时间,定义消息 ID 和消息时间。如果是群成员而且是自己微信好友撤回消息,则显示撤回消息的名称是你备注的名字,如果没有备注名字,则显示名称为微信昵称。

获取你的所有群的消息,判断出撤回的消息来自哪个群,显示出群名称。

个人消息处理

如果为个人聊天信息,也是优先显示备注名称,没有备注名就显示昵称。

各类型消息处理

用判断语句对各种类型的消息进行处理,包括文字消息、微信自带的表情和收藏的表情、图片、语音、位置、名片、分享、附件、视频。多条件时这里用了 in 的用法,还记得之前讲 Python 优雅的写法 文章里把用 or 连接条件改成用 in,代码更简洁,这样我们通过项目不断的巩固之前学到的知识点,这样才能不断进步。

更新信息字典

处理撤回消息

先判断是否是撤回消息,将撤回消息发送到你的文件传输助手里,把上面函数储存的消息的发送人、发送类型、发送时间、撤回的内容发出来。以下是部分代码。

主函数

最后用主函数执行微信的登录和运行。第一次需要扫码登录微信,登录时加上 hotReload 参数,为 True 时,短时间内再次运行会保存上次微信的登录态,不需要再次扫码登录。

if __name__ == '__main__':
    itchat.auto_login(hotReload=True)
    itchat.run()

如果你电脑中有安装 Python 环境,在编辑器中直接运行源码或者在 cmd 中运行 py 文件即可。源码获取方式在文末给出。有需要的话以后可以做成界面化工具,挂在服务器上,支持做成界面化工具的点个赞

看看,我看看需求量,哈哈。

写在最后

今天的分享就到这里了,需要优化的地方:撤回的视频只支持查看微信自带拍的视频,非微信自带拍的视频打开无法查看。长时间运行时会报 ConnectionError 提示的错误,但是不影响发送撤回消息的功能,后期加个异常捕捉机制优化下。

赶紧动手试试吧,把你朋友撤回的消息发给 TA 看看,看看他是什么反应,有趣的撤回消息发到朋友圈去提高逼格,奈斯!

在公众号后台回复「撤回」获取本项目的源码。

原创不易,觉得有意思的点赞

本文分享自微信公众号 - 日常学python(daily_learn)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python大牛廖雪峰13个案例带你全面掌握商业爬虫!

    这把火已经烧到了程序员的圈子外,从小学生到职场老司机,都开始学习这一门新的语言,门槛低、零基础、操作骚...再也没有什么能阻挡Python晋升网红。

    sergiojune
  • 为什么 Python 这么慢?

    对于一个类似的程序,Python 要比其它语言慢 2 到 10 倍不等,这其中的原因是什么?又有没有改善的方法呢?

    sergiojune
  • Python:忽如一夜春风来,千树万树梨花开

    我的主人是荷兰人,叫做Guido Van Rossum, 这是个不大容易念的名字,估计很多人现在也不知道怎么去发音。 球迷老刘看到Van ,总是想起范·巴斯滕。

    sergiojune
  • 微信的撤回功能是如何“覆水回收”的

    一诺千金。古人有云,“一言既出,驷马难追”,一句话说出了口,就是套上四匹骏马拉的车也难追。可见对说出口的话,是多么重视。 可是,人总有说错话的时候,比如: ? ...

    腾讯大讲堂
  • Python实现微信消息防撤回

    微信(WeChat)是腾讯公司于2011年1月21日推出的一款社交软件,8年时间微信做到日活10亿,日消息量450亿。在此期间微信也推出了不少的功能如:“摇一摇...

    诸葛青云
  • 女神把微信消息撤回后好慌,Python几十行代码轻松查看撤回消息!

    曾几何时Python对我说:"时日已不多,速度学Python"。于是乎上天让我看到了一个基于python的微信开源库:itchat,玩的不亦乐乎,接着我做了一个...

    一墨编程学习
  • 小甲鱼《零基础学习Python》课后笔记(一):我和Python的第一次亲密接触

    Python是脚本语言。Python相比C和Java,它实现一个功能可能10行,而Java要100行,C要1000行,这只是一个比喻,不过也说明Python是一...

    小火柴棒
  • 微课|玩转Python轻松过二级(1.3节):编码规范与代码优化建议1

    Python小屋屋主
  • python和php学习哪个更有发展

    无论是对于刚接触编程的初学者,还是已经工作的程序员,哪一门编程语言更火,更有价值和前景,似乎是永远有争议的话题。

    砸漏
  • 老程序员说,这三个网站和视频Python初学者应该看看,帮助会很大

    随着学习Python的人越来越多,也有越来越多的人在学习的过程中四处碰壁,对于Python这门高级程序设计语言,很多初学者都是又爱又恨,但只要你不放弃,Pyth...

    Python编程大咖

扫码关注云+社区

领取腾讯云代金券