利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看。
如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件。
pyinstaller文件名。py - f
执行程序后,消息防撤回就启动了。
程序完整代码
# - *编码:utf - 8 - * 进口操作系统 进口再保险 进口shutil 导入的时间 进口itchat 从itchat。内容导入* #说明:可以撤回的有文本文字,语音、视频,图片,位置,名片,分享,附件 # {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代码\微信\撤回到文件助手” 如果不是os.path.exists (rev_tmp_dir): os.mkdir (rev_tmp_dir) #表情有一个问题|接受信息和接受注意的msg_id不一致巧合解决方案 face_bug=没有 #将接收到的消息存放在字典中,当接收到新消息时对字典中超时的消息进行清理|不接受不具有撤回功能的信息 #(文本、图片、地图、卡片、分享、记录、附件,视频,朋友们,请注意) @itchat。msg_register([文本、图片、地图、卡片、分享、记录、附件、视频)) def handler_receive_msg(味精): 全球face_bug #获取的是本地时间戳并格式化本地时间戳e: 2017-04-21 21:30:08 msg_time_rec= strftime (“% - % - % d % H: % m: % S”, time.localtime ()) #消息ID msg_id=味精(“是否”) #消息时间 msg_time=味精(“CreateTime”) #消息发送人昵称|这里也可以使用RemarkName备注但是自己或者没有备注的人为没有 msg_from=(itchat.search_friends(用户名=味精[' FromUserName ']))(“昵称”) #消息内容 msg_content=没有 #分享的链接 msg_share_url=没有 如果味精('类型']==\“文本” 或味精['类型']=='朋友的: msg_content=味精(“文本”) elif味精('类型']==\“记录” 或味精['类型']==\“附件” 或味精['类型']==\“视频” 或味精['类型']==罢掌? msg_content=r " +味精(“文件名”) #保存文件 味精(“文本”)(rev_tmp_dir +味精(“文件名”)) elif味精('类型']==翱ā? msg_content=味精(“RecommendInfo”)(“昵称”)+ r“的名片” elif味精('类型']==暗赝肌? x, y,位置=re.search ( “& lt;位置x=\”(* & # 63;) \ " y=\”(* & # 63;) \”。*标签=\”(* & # 63;)\”。*”,味精[' OriContent '])。组(1、2、3) 如果位置没有: msg_content=r“纬度→”+ x.__str__() +“经度→”+ y.__str__ () 其他: msg_content=r " +位置 elif味精('类型']==胺窒怼? msg_content=味精(“文本”) msg_share_url=味精(“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_content”:“msg_share_url”: msg_share_url msg_content } } ) #收到注意通知类消息,判断是不是撤回并进行相应操作 @itchat.msg_register([注]) def send_msg_helper(味精): 全球face_bug 如果re.search (r \ & lt; \ ! \ [CDATA \[。*撤回了一条消息\]\]\祝辞”,味精(“内容”))不是没有: #获取消息的id old_msg_id=re.search (“\ & lt;是否\祝辞(* & # 63;)\ & lt; \/是否\祝辞”,味精(“内容”)).group (1) old_msg=msg_dict。get (old_msg_id, {}) 如果len (old_msg_id) & lt;11: itchat。send_file (rev_tmp_dir + face_bug toUserName=癴ilehelper”) 操作系统。删除(rev_tmp_dir + face_bug) 其他: msg_body="告诉你一个秘密~”+ \“\ n” + old_msg.get (msg_from) +“撤回了“+ old_msg.get (“msg_type”) +“消息”+ \“\ n” + old_msg.get (msg_time_rec) + \“\ n” + "撤回了什么& # 8675;”+ \“\ n” " + r + old_msg.get (“msg_content”) #如果是分享存在链接 如果old_msg msg_type”==肮蚕怼?msg_body +=" \ n就是这个链接& # 10147;“+ old_msg.get (“msg_share_url”) #将撤回消息发送到文件助手 itchat。发送(msg_body toUserName=癴ilehelper”) #有文件的话也要将文件发送回去 如果old_msg“msg_type”==\“照片” (“msg_type”)或old_msg==\“记录” (“msg_type”)或old_msg==\“视频” (“msg_type”)或old_msg==案郊? 文件=' @fil@ % s ' % (rev_tmp_dir + old_msg [' msg_content ']) itchat。发送(味精=文件,toUserName=癴ilehelper”) 操作系统。删除(rev_tmp_dir + old_msg [' msg_content ']) #删除字典旧消息 msg_dict.pop (old_msg_id) if __name__==癬_main__”: itchat.auto_login () itchat.get_QR itchat.run ()python实现文件助手中查看微信撤回消息