Python 实现还原已撤回的微信消息


Posted in Python onJune 18, 2019

导包效果展示

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

Python 实现还原已撤回的微信消息

图文来源:http://kks.me/aULmF

Python 实现还原已撤回的微信消息

图文来源:http://kks.me/aULmF

程序思路

Python 实现还原已撤回的微信消息

主要由两部分组成:

handler_receive_msg():处理接收到的消息,将消息临时放在字典中。

send_msg_helper():将撤回的消息自动发给文件传输助手。

程序分析

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

接收信息处理

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

Python 实现还原已撤回的微信消息

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

个人消息处理

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

各类型消息处理

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

Python 实现还原已撤回的微信消息

更新信息字典

Python 实现还原已撤回的微信消息 

处理撤回消息

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

Python 实现还原已撤回的微信消息 

主函数

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

写在最后

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

以上所述是小编给大家介绍的Python 实现还原已撤回的微信消息,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python win32 简单操作方法
May 25 Python
Python模拟简单电梯调度算法示例
Aug 20 Python
Python列表切片操作实例总结
Feb 19 Python
详解Python使用Plotly绘图工具,绘制甘特图
Apr 02 Python
Python Django基础二之URL路由系统
Jul 18 Python
pytorch 在sequential中使用view来reshape的例子
Aug 20 Python
python pygame实现挡板弹球游戏
Nov 25 Python
利用pyecharts读取csv并进行数据统计可视化的实现
Apr 17 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
Apr 19 Python
python如何查看安装了的模块
Jun 23 Python
python获取淘宝服务器时间的代码示例
Apr 22 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 25 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 #Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 #Python
python实现五子棋游戏
Jun 18 #Python
解决python中使用PYQT时中文乱码问题
Jun 17 #Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
Jun 17 #Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
Jun 17 #Python
python3.6根据m3u8下载mp4视频
Jun 17 #Python
You might like
微博短链接算法php版本实现代码
2012/09/15 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
javascript中的array数组使用技巧
2010/01/31 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
2014/09/01 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
跟我学习javascript的定时器
2015/11/19 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
axios的拦截请求与响应方法
2018/08/11 Javascript
Vue请求JSON Server服务器数据的实现方法
2018/11/02 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python datetime时间格式化去掉前导0
2014/07/31 Python
介绍Python中的__future__模块
2015/04/27 Python
Python中类型关系和继承关系实例详解
2015/05/25 Python
Android应用开发中Action bar编写的入门教程
2016/02/26 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
python实现决策树分类算法
2017/12/21 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
Linux如何压缩可执行文件
2013/10/21 面试题
DTD的含义以及作用
2014/01/26 面试题
巾帼标兵事迹材料
2014/12/26 职场文书
工程合作意向书范本
2015/05/09 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
Python 线程池模块之多线程操作代码
2021/05/20 Python