栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

用Python教你微信防撤回(文本、图片、语音、视频、名片等...)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用Python教你微信防撤回(文本、图片、语音、视频、名片等...)

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

思路:
利用itchat库将每次接收到的消息进行缓存。监听撤回事件,当有消失被撤回时,通过msgId去缓存中取到信息再发送给文件传输助手。这样就实现了一个简单的防撤回功能。

效果图

将接收的消息缓存
import itchat
from itchat.content import *
import datetime
import re
import os


# 微信接受的信息存储路径
FILE_PATH = '/home/wechat/'
# 存放微信消息的缓存字典
MSG_DICT = {}

# 微信消息类型字典
MSG_MESSAGE = {'Text': '文本', 'Map': '位置分享', 'Sharing': '分享链接',
 'Picture': '图片', 'Video': '视频', 'Card': '名片',
 'Attachment': '附件', 'Recording': '语音'}

"""
 监听消息
"""
# 监听的消息类型 为TEXT, MAP, SHARING, PICTURE, VIDEO, CARD, RECORDING, ATTACHMENT

@itchat.msg_register([TEXT, MAP, SHARING, PICTURE, VIDEO, CARD, RECORDING, ATTACHMENT])
def wechat_msg(msg):
    # 获取消息id
    msg_id = msg['MsgId']
    # 当前时间
    msg_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    # 发送人
    msg_from = itchat.search_friends(userName=msg['FromUserName'])['RemarkName']
    # 备注为空 获取昵称
    if not msg_from:
 msg_from = itchat.search_friends(userName=msg['FromUserName'])['NickName']
    # 内容
    msg_text = msg['Text']
    # 消息类型
    msg_type = msg['Type']

    msg_url = None

    # 消息为视频、照片、语音、附件的时候需要进行保存
    save_type = [VIDEO, PICTURE, RECORDING, ATTACHMENT]
    if msg_type in save_type:
 # 保存文件
 msg['Text'](FILE_PATH + msg['FileName'])
 msg_text = msg['FileName']

    # 消息类型为地图、分享链接时 记录url
    url_type = [MAP, SHARING]
    if msg_type in url_type:
 msg_url = msg['msg_url']
    # 名片
    if msg_type == CARD:
 sex = msg['RecommendInfo']['Sex']
 if sex == 1:
     sex = '小哥哥'
 elif sex == 2:
     sex = '小姐姐'
 else:
     sex = 'ladyBoy'
 msg_text = f'来自{msg["RecommendInfo"]["Province"]} { msg["RecommendInfo"]["City"]}的 {msg["RecommendInfo"]["NickName"]} {sex} 的名片.'
    # 消息放入字典中
    MSG_DICT[msg_id] = {'msg_from': msg_from, 'msg_time': msg_time, 'msg_text': msg_text, 'msg_url': msg_url, 'msg_type': MSG_MESSAGE[msg_type]}
    print({'msg_from': msg_from, 'msg_time': msg_time, 'msg_text': msg_text, 'msg_url': msg_url, 'msg_type': MSG_MESSAGE[msg_type]})

我们将微信接收到的文本、视频、语音、图像、附件等消息类型都缓存到了MSG_DICT这个字典当中。下面我们就可以对 撤回 事件进行监听

监听撤回、发送撤回内容
# 监听微信事件,
@itchat.msg_register([NOTE])
def get_withdraw_message(msg):
    # 文本消息
    content = msg['Content']
    print('监听事件...')
    # result = re.search(r"", msg['Content'])
    # 判断是否是撤回消息
    pattern = re.compile(r"")
    match = pattern.findall(content)
    """
    msg 内容
    '
 
     wxid_ajl8ccgq8ehf22
     1671792812
     3341430144853335059
     
 
    '
    """
    # 有撤回的消息
    if match:
 # 获取撤回消息的msg_id
 withdraw_msg_id = re.search(r"(.*?)

后来我发现、防撤回功能并没有什么卵用,因为女神给我发的不是去洗澡就是去睡觉、根本没给我表白

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号