#!/usr/bin/env python3

# -*- coding: utf-8 -*-

__author__ = 'jiangwenwen'

import itchat

from itchat.content import *

import time

import re

import os

msg_information = {}

# 针对表情包的内容

face_bug = None

@itchat.msg_register([TEXT, PICTURE, FRIENDS, CARD, MAP, SHARING, RECORDING, ATTACHMENT, VIDEO], isFriendChat=True, isMpChat=True)

def handle_receive_msg(msg):

global face_bug

# 接收消息的时间

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

# 在好友列表列表中查询发送信息的好友昵称

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

# 信息发送的时间

msg_time = msg['CreateTime']

# 每条信息的ID

msg_id = msg['MsgId']

# 储存信息的内容

msg_content = None

# 储存分享的连接,比如分享的文章和音乐

msg_share_url = None

# 如果发送的消息是文本或者好友推荐

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

msg_content = msg['Text']

print(msg_content)

# 如果发送的消息是附件,视频,图片,语音

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

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

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

# 内容为下载文件名

msg_content = msg['FileName']

msg['Text'](str(msg_content))

# 如果消息是推荐的名片

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

# 内容是推荐人的昵称和性别

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

if msg['RecommendInfo']['Sex'] == 1:

msg_content += '性别为男'

else:

msg_content += '性别为女'

print(msg_content)

# 如果消息为分享的位置信息

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']

print(msg_share_url)

face_bug = msg_content

# 将信息存储在字典中,每一个msg_id对应一条消息

msg_information.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

}

}

)

#这个是用于监听是否有friend消息撤回

@itchat.msg_register(NOTE, isFriendChat=True, isGroupChat=True, isMpChat=True)

def information(msg):

# 这里如果这里的msg['Content']中包含消息撤回和id,就执行下面的语句

if '撤回了一条消息' in msg['Content']:

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

# 得到消息

old_msg = msg_information.get(old_msg_id)

print(old_msg)

# 如果发送的是表情

if len(old_msg_id)<11:

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

# 发送撤回的提示给文件助手

else:

msg_body = "【"\

+ old_msg.get('msg_from') + "撤回了】\n"\

+ old_msg.get("msg_type") + "消息:" + "\n"\

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

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

# 如果分享的文件被撤回了,那么就将分享的url加在msg_body中发送给文件助手

if old_msg['msg_type'] == "Sharing":

msg_body += "\n就是这个链接>" + old_msg.get('msg_share_url')

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

itchat.send_msg(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" % (old_msg['msg_content'])

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

os.remove(old_msg['msg_content'])

# 删除字典旧信息

msg_information.pop(old_msg_id)

itchat.auto_login(hotReload=True)

itchat.run()

python控制微信屏蔽_Python之微信消息防撤回相关推荐

  1. 微信防撤回python代码_python实现微信消息防撤回

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

  2. Python实现微信消息防撤回

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

  3. 如何使用 Python 实现微信消息防撤回

    在微信上突然看到"XXX撤回一条消息"的时候,心里痒不痒?现在就教你如何实现消息防撤回的功能.不限手机型号.手机无需root,只要微信号可以登上网页版就可以了(部分不常用和新申请的 ...

  4. #Python #微信 #消息防撤回 Python实现微信防撤回

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

  5. 微信防撤回python_python使用wxpy实现微信消息防撤回脚本

    本文实例为大家分享了python实现微信消息防撤回的具体代码,供大家参考,具体内容如下 使用了sqlite3保存数据,当有人撤回消息时取出数据发送到文件传输助手. 文件的话会先保存到本地,语音会以文件 ...

  6. itchat实现微信聊天机器人,定时发送微信消息,消息防撤回,消息监控,自定义回复消息

    一.前言 由于在抖音上刷到微信机器人自动陪聊,心血来潮,自己利用itchat和图灵机器人实现了微信自动回复,监听消息,消息防撤回等.周末心情不好搞了一个微信陪聊机器人陪我聊天. 注意: 1.图灵机器人 ...

  7. WeChat Patch 电脑微信多开消息防撤回补丁通用版

    介绍: PC微信多开防撤回通杀补丁工具(WeChat_v3.x_Patch),PC端通用的一个补丁软件,可以修改内核数据,目前能实现的功能有微信多开,防撤回,都是大家广泛需求的功能,将全部文件解压到P ...

  8. 微信多开软件苹果版_微信最新PC版 无限多开以及消息防撤回

    今日头条:教你电脑如何微信多开 现在很多人都是工作一个号,生活一个号.现在越来越多的手机已经支持微信多开,但是很多小伙伴问我什么时候电脑也能支持微信多开呢?现在的电脑只能挂一个微信真的好麻烦啊!  微 ...

  9. 微信电脑版 V3.3.0.84 多开消息防撤回绿色版

    新版特性 2021年5月 v3.3.0 -增加了文件传输功能的容量上限,现在可以发送1GB的大文件 -可以浏览朋友圈(大家最为关心的电脑端刷朋友圈功能终于了) -可在搜一搜中搜索公众号.小程序.表情. ...

最新文章

  1. 《iOS 9应用开发入门经典(第7版)》——第2章,第2.4节小结
  2. Button的使用(三):处理点击事件
  3. BZOJ1299[LLH邀请赛]巧克力棒——Nim游戏+搜索
  4. hadoop:could only be replicated to 0 nodes, instead of 1
  5. 怎样把连续的多个commit整理成1个?
  6. 20190530本科教学PPT 文本挖掘的两种基本方法(TF-IDF和LDA)
  7. SpringMVC框架----ModelAttribute注解
  8. __attribute__((section(section_name)))
  9. Mini-project # 1 - Rock-paper-scissors-lizard-Spock
  10. Consul:网络坐标
  11. 0910下eclipse 语言包的插件安装
  12. win10 更新后指纹不能使用
  13. Ivy Book List
  14. 关于泊松分布在测序原理中的解释
  15. C#中Get和Set的用法
  16. C. 实验7_3_奇数偶数
  17. 互换性与测量技术基础复习题及答案
  18. vue根据URL下载文件并重命名
  19. 2021年12月27日多载波NOMA论文阅读
  20. [AcWing] 2058. 笨拙的手指(C++实现)秦九韶算法

热门文章

  1. 購物籃分析,最清楚概念-part1
  2. 高中计算机省赛试题,2013高中信息技术基本功竞赛试卷20130919试题
  3. python登陆成功页面跳转_Python QT由登陆界面到主界面
  4. PID控制算法 无人机的精准悬停 机器人和机械臂的运动系统 飞机和火箭的姿态调整
  5. 李嘉诚给年青商人的98条忠告
  6. 2022广航蓝桥杯选拔赛压轴题:取数博弈游戏
  7. RocketMQ 消费者Rebalance 解析——图解、源码级解析
  8. 球迷必备:2012欧洲杯手机观战指南
  9. 前端的你,必须知道这些前端的坑!
  10. Metasploit 下wmap的基本使用方法