利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看。

如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件。

pyinstaller 文件名.py -F

执行程序后,消息防撤回就启动了。

程序完整代码

# -*-encoding:utf-8-*-

import os

import re

import shutil

import time

import itchat

from itchat.content import *

# 说明:可以撤回的有文本文字、语音、视频、图片、位置、名片、分享、附件

# {msg_id:(msg_from,msg_to,msg_time,msg_time_rec,msg_type,msg_content,msg_share_url)}

msg_dict = {}

# 文件存储临时目录

rev_tmp_dir = r"G:\python代码\微信\撤回到文件助手"

if not os.path.exists(rev_tmp_dir): os.mkdir(rev_tmp_dir)

# 表情有一个问题 | 接受信息和接受note的msg_id不一致 巧合解决方案

face_bug = None

# 将接收到的消息存放在字典中,当接收到新消息时对字典中超时的消息进行清理 | 不接受不具有撤回功能的信息

# [TEXT, PICTURE, MAP, CARD, SHARING, RECORDING, ATTACHMENT, VIDEO, FRIENDS, NOTE]

@itchat.msg_register([TEXT, PICTURE, MAP, CARD, SHARING, RECORDING, ATTACHMENT, VIDEO])

def handler_receive_msg(msg):

global face_bug

# 获取的是本地时间戳并格式化本地时间戳 e: 2017-04-21 21:30:08

msg_time_rec = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

# 消息ID

msg_id = msg['MsgId']

# 消息时间

msg_time = msg['CreateTime']

# 消息发送人昵称 | 这里也可以使用RemarkName备注 但是自己或者没有备注的人为None

msg_from = (itchat.search_friends(userName=msg['FromUserName']))["NickName"]

# 消息内容

msg_content = None

# 分享的链接

msg_share_url = None

if msg['Type'] == 'Text' \

or msg['Type'] == 'Friends':

msg_content = msg['Text']

elif msg['Type'] == 'Recording' \

or msg['Type'] == 'Attachment' \

or msg['Type'] == 'Video' \

or msg['Type'] == 'Picture':

msg_content = r"" + msg['FileName']

# 保存文件

msg['Text'](rev_tmp_dir + msg['FileName'])

elif msg['Type'] == 'Card':

msg_content = msg['RecommendInfo']['NickName'] + r" 的名片"

elif msg['Type'] == 'Map':

x, y, location = re.search(

"

if location is None:

msg_content = r"纬度->" + x.__str__() + " 经度->" + y.__str__()

else:

msg_content = r"" + location

elif msg['Type'] == 'Sharing':

msg_content = msg['Text']

msg_share_url = msg['Url']

face_bug = msg_content

# 更新字典

msg_dict.update(

{

msg_id: {

"msg_from": msg_from, "msg_time": msg_time, "msg_time_rec": msg_time_rec,

"msg_type": msg["Type"],

"msg_content": msg_content, "msg_share_url": msg_share_url

}

}

)

# 收到note通知类消息,判断是不是撤回并进行相应操作

@itchat.msg_register([NOTE])

def send_msg_helper(msg):

global face_bug

if re.search(r"\", msg['Content']) is not None:

# 获取消息的id

old_msg_id = re.search("\(.*?)\", msg['Content']).group(1)

old_msg = msg_dict.get(old_msg_id, {})

if len(old_msg_id) < 11:

itchat.send_file(rev_tmp_dir + face_bug, toUserName='filehelper')

os.remove(rev_tmp_dir + face_bug)

else:

msg_body = "告诉你一个秘密~" + "\n" \

+ old_msg.get('msg_from') + " 撤回了 " + old_msg.get("msg_type") + " 消息" + "\n" \

+ old_msg.get('msg_time_rec') + "\n" \

+ "撤回了什么 ⇣" + "\n" \

+ r"" + old_msg.get('msg_content')

# 如果是分享存在链接

if old_msg['msg_type'] == "Sharing": msg_body += "\n就是这个链接➣ " + old_msg.get('msg_share_url')

# 将撤回消息发送到文件助手

itchat.send(msg_body, toUserName='filehelper')

# 有文件的话也要将文件发送回去

if old_msg["msg_type"] == "Picture" \

or old_msg["msg_type"] == "Recording" \

or old_msg["msg_type"] == "Video" \

or old_msg["msg_type"] == "Attachment":

file = '@fil@%s' % (rev_tmp_dir + old_msg['msg_content'])

itchat.send(msg=file, toUserName='filehelper')

os.remove(rev_tmp_dir + old_msg['msg_content'])

# 删除字典旧消息

msg_dict.pop(old_msg_id)

if __name__ == '__main__':

itchat.auto_login()

itchat.get_QR

itchat.run()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

用PHP查看微信撤回的消息,python实现文件助手中查看微信撤回消息相关推荐

  1. python第三方库文件传输助手_python实现文件助手中查看微信撤回消息

    利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看. 如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件. pyinstaller 文件名. ...

  2. python db文件_python中查看.db文件中表格的名字及表格中的字段操作

    1.问题描述: 我桌面上有一个"账号密码.db"文件,我现在想知道里面有几张表格table.表格的名字.表头结构. 2.使用SQL语句"""selec ...

  3. 视频教程-微信小程序系统教程python版[3/3阶段]_微信小程序支付-手游开发

    微信小程序系统教程python版[3/3阶段]_微信小程序支付 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试 ...

  4. 微信公众平台发布小程序数据助手 可查看运营数据

    微信公众平台发布小程序数据助手 可查看运营数据 用手机也能看小程序后台数据了 " 微信公众平台发布官方小程序「小程序数据助手」,支持相关的开发和运营人员在手机端更方便.及时地查看运营数据.& ...

  5. 文件夹中是微信的好友列表数据,冒号前是一个用户,冒号后是该用户的所有好友(数据中的好友关系是单向的),参照笔记,求出哪些人两两之间有共同好友,及他俩的共同好友都有谁?

    题目 文件夹中是微信的好友列表数据,冒号前是一个用户,冒号后是该用户的所有好友(数据中的好友关系是单向的),参照笔记,求出哪些人两两之间有共同好友,及他俩的共同好友都有谁? 本题声明: 1.采用Lin ...

  6. 使用Python读取文件夹中的图片

    文章目录 Python创建新的文件夹 Python读取文件夹中的图片内容以及存取   一个文件夹中含有大量的图片文件,jpg格式和png格式的.需要从中选出一些比较适合电脑分辨率的,也就是宽度大于高度 ...

  7. Python提取文件夹中的所有文件名输出到excel

    Python提取文件夹中的所有文件名输出到excel import os import openpyxldef getfilelist(dir,file_out,sheet_out):filelist ...

  8. python批量删除微信好友_用 Python + Appium 的方式自动化清理微信僵尸好友

    随着微信的使用时间越长,微信好友也越来越多,有些好友将你删除了你也不知道.当我们发消息的时候会出现下面扎心的一幕,然后默默将他删除 使用 Appium 基础的 appium 使用在公众号文章 < ...

  9. 小心Python爬取了你的微信隐私!用Python分析了数千个微信昵称后,发现了这些秘密!

    01 Let's get it 1. 基本信息获取 访问 英文取名 的用户基本信接口,获取 英文取名 用户微信名(NickName).访问次数(Count).总数据集(ResponseData),并将 ...

最新文章

  1. python调用gitlab api自动合并分支_Python3 如何使用 GitLab API 进行批量的合并分支
  2. 基于clang插件的一种iOS包大小瘦身方案
  3. JavaScript this指向相关内容
  4. IOS开发之Bug--遇到一个类型不确定的bug
  5. 软件工程—个人作业(8)
  6. html中点击 checkbox (radio也可以) 隐藏tr 或 展现tr
  7. mysql与oracle语法对比(实用)
  8. 系统安装-黑苹果之路
  9. IOS之Objective-C学习 工厂模式
  10. 阿佐数据分析python小抄【pandas基础数据处理】
  11. 密信(MeSince) — 免费的全自动邮件加密软件
  12. SDCC编译器学习旅之一
  13. XGBoost如何画出树分裂图,用代码绘制多棵CART回归树
  14. JS与jQuery获取任意事件的子元素下标(获取当前类数组的某一子元素下标)
  15. Android自定义Activity切换动画完全解析
  16. iOS开发-自定义相机(仿微信)拍照、视频录制
  17. 周杰伦一发新歌,服务器为什就挂掉了?
  18. 数据中心网络布线为大数据时代铺路
  19. css实现图片自动渐变切换、element-plus 的修改el-table的(边框线为虚线、表头样式)
  20. ResNet论文笔记及Pytorch代码解析

热门文章

  1. 什么是Word Embeddings
  2. 思维导图工具,如何改默认字体?
  3. 成功在于实践作文_人生贵在实践作文800字
  4. Linux~一些基本开发工具的使用(yum,vim,gcc,gdb,makefile)
  5. oppo手机怎么关闭Android,OPPO手机必须关闭的3个设置,让你的手机永不卡顿,再用3年...
  6. 360FLEX与会者的演讲资源链接
  7. 方向比努力重要,能力比知识重要,健康比成绩重要,生活比文凭重要,情商比智商重要
  8. 清原高中2021高考成绩查询,起航青春决胜高考—清原高中2021届高三学生举行最后一次升旗仪式 ......
  9. 破解flowplayer
  10. python-docx结合lxml读取word文档段落格式、字体格式等信息