再也不用担心女神撤回消息了!教你用Python实现微信防撤回

大家在使用微信过程中,有时候消息还没看到,就被撤回了。毕竟好奇心大家都有,明知到消息被撤回了,就更想去看一下是什么内容,心里想着万一是女神给我表白了呢.. 今天就用Python来做个微信防撤回的小功能。支持文本、图片、语音、视频、名片的防撤回。

再也不用担心女神撤回消息了!教你用Python实现微信防撤回_第1张图片

前提

昨天在群里,看到小伙伴发了一个 ”不可描述“ 的图片,我刚准备点开看,就发现TA撤回了,该死的撤回。看我怎么整治你。

再也不用担心女神撤回消息了!教你用Python实现微信防撤回_第2张图片

准备工作

  • 开发工具

  • 一个注册一年以上的微信号

工作原理

本项目的防撤回,实际上的原理是这个微信和你聊天的对象同处在一个群里,它会实时监控聊天记录,检测到消息状态为撤回,就会从撤回之前的保存的记录里,拿出这条数据,转发给出去,从而达到一个防撤回的效果。通俗的讲就是实时备份你的聊天记录,然后提取出来撤回的那条。

注意事项

  1. 如果你想要防撤回效果,本微信号一定要和你当前的微信号再同一个群里。

  2. 简单的说就是你的机器人微信 和 你的主微信有着同样的群聊,以达到防撤回的目的

  3. 暂不支持单人撤回,只能对群防撤回。

主要代码

获取你要检测的群对象,如果你想监听所有对象,则不需要

Test = bot.groups().search(u'Test')

将撤回的消息 转发到特定的群里,以供再其他微信查看,可以是单个好友或者文件传输助手

recallNotice = ensure_one(bot.groups().search('recallNotice'))
# 文本 TEXT = 'Text'# 位置 MAP = 'Map' 1# 名片 CARD = 'Card' 2# 分享 SHARING = 'Sharing' 3# 图片 PICTURE = 'Picture'  4# 语音 RECORDING = 'Recording' 5# 文件 ATTACHMENT = 'Attachment' 6# 视频 VIDEO = 'Video' 7

注册事件,所有群的消息

@bot.register(Group)

主要代码

def handleReceiveMsg(msg):'''监听消息:param msg::param chats::return:'''ra = msg.rawmss = msg.bot.messagesle = len(mss)if ra['Status'] == 4:# 获取消息IDoldmsgid = re.search(re.compile('(.*?)', re.S),ra['Content']).group(1)for i in range(le-1,-1,-1):if oldmsgid == str(mss[i].id):name = msg.chat.name    // 获取群名username = msg.member.nick_name // 获取撤回消息的人名if name == None or name == '':name = msg.chat.nick_nameusername = msg.member.nick_name// 根据不同的消息类型进行撤回提示if mss[i].type == 'Text':recallNotice.send('来自【'+ name + '】的【' + username+'】撤回了一条消息:'+ mss[i].text)bot.file_helper.send('来自【'+ name + '】的【' + username+'】撤回了一条消息:'+ mss[i].text)break

效果展示

再也不用担心女神撤回消息了!教你用Python实现微信防撤回_第3张图片

完美通过测试,看你还怎么撤回。

声明:本文内容来源于网络,如有侵权请联系删除

你可能感兴趣的:(Python)