python使用wxpy实现微信消息防撤回脚本

  

本文实例为大家分享了python实现微信消息防撤回的具体代码,供大家参考,具体内容如下

  

使用了sqlite3保存数据,当有人撤回消息时取出数据发送到文件传输助手。

  

文件的话会先保存到本地,语音会以文件的方式发送。

  

wxpy和itchat很久没更新了,有些功能没法用了,网络微信也不知道什么时候会凉。

  

帮助信息在注释里。

        # - * -编码:utf - 8 - *      #使用sqlite3保存信息,当有人撤回消息时在数据库中通过ID检索该消息是否存在,如果存在则将撤回的消息发送到文件助手里。   #目前只支持文本图共享录制视频附件类型的消息。      进口wxpy   进口sqlite3   进口操作系统   进口再保险         #准备工作   #创建附件目录用于存储图像,地图/位置,分享,语音、视频,文件   如果不是os.path.isdir(附件):   os.mkdir(“附件”)   attachment_path=os.path.join (os.getcwd(),“附件”)   机器人=wxpy.Bot ()   #用于获取味精ID   模式=re.compile (r \ d {19})   #测试wxpy能否正常工作   自己=bot.friends () [0]   myself.send(“你好# 63;”)      #创建数据库和信息表   试一试:   康涅狄格州=sqlite3.connect (“wxpy.db”)   光标=conn.cursor ()   #光标。执行(“删除表信息”)   游标。执行(““创建表(如果不存在消息id的整数主键自动增量,   msg_id整数非空,   msg_text文本,   create_time日期非空,   revoke_time日期,   attachment_path文本,   msg_sender文本非空,   msg_type文本非空,   msg_url文本,   msg_raw_data文本NOT NULL)”“”)   #打印(建立成功)   最后:   conn.commit ()   cursor.close ()   conn.close ()      #注册所有消息,在程序运行期间将插入所有支持的信息   @bot.register ()   def store_data(味精):   #打印(msg.raw)   #如果消息是支持的类型就将数据插入数据库   如果味精。在[wxpy类型。文本,wxpy。录音,wxpy。图片,wxpy。附件,wxpy。视频,wxpy。分享,wxpy.MAP]:   insert_data(味精)   #撤回的消息类型是音符   elif味精。类型==wxpy.NOTE:   send_revoke(味精)      #插入数据   def insert_data(味精):   试一试:   康涅狄格州=sqlite3.connect (“wxpy.db”)   光标=conn.cursor ()   如果味精。类型==wxpy.TEXT:   游标。执行(“插入消息(msg_id、msg_text create_time, msg_sender, msg_type, msg_raw_data) \   值(& # 63;& # 63;& # 63;,& # 63;,& # 63;,& # 63;)”,(味精。id、味精。文本、味精。create_time, str (msg.sender) [9: 1],   味精。类型,str (msg.raw)))      #将录音/图像/文件/视频下载到本地,插入保存路径。   elif味精。在[wxpy类型。录音,wxpy。图片,wxpy。附件,wxpy.VIDEO]:   save_path=os.path。加入(attachment_path msg.file_name)   msg.get_file (save_path)   游标。执行(“插入消息(msg_id、create_time attachment_path, msg_sender, msg_type, \   msg_raw_data)值(& # 63;& # 63;& # 63;,& # 63;,& # 63;,& # 63;)”,   (味精。id、味精。create_time save_path, str (msg.sender)[9: 1],味精。类型,str (msg.raw)))      #插入分享/位置链接   elif味精。在[wxpy类型。分享,wxpy.MAP]:   游标。执行(“插入消息(msg_id、msg_text create_time, msg_sender, msg_type, msg_url, \   msg_raw_data)值(& # 63;& # 63;& # 63;,& # 63;,& # 63;,& # 63;,& # 63;)”,   (味精。id、味精。文本、味精。create_time, str (msg.sender)[9: 1],味精。类型、str (msg.url) str (msg.raw)))   #打印(“成功插入数据”)      最后:   conn.commit ()   cursor.close ()   conn.close ()      #在数据库中检索消息是否存在,如果存在则将被撤回的消息发送到文件传输助手。   def send_revoke(信息):   msg_id=pattern.search (message.raw(“内容”)).group ()   试一试:   康涅狄格州=sqlite3.connect (“wxpy.db”)   光标=conn.cursor ()   游标。执行(“插入消息(msg_id、create_time msg_sender, msg_type, msg_raw_data) \   值(& # 63;& # 63;& # 63;,& # 63;,& # 63;)”,   (消息。id、消息。create_time, str (message.sender)[9: 1)消息。类型,str (message.raw)))   从消息msg_data=https://www.yisu.com/zixun/cursor.execute (' SELECT * msg_id=& # 63;”, (msg_id)) .fetchall ()   #打印(“成功取出数据”)   最后:   conn.commit ()   cursor.close ()   conn.close ()   如果msg_data[0][7]==拔谋尽?   msg_info='告诉你一个秘密{}在{}撤回了文本\ n {}”。格式(msg_data [0] [6], msg_data [0] [3], msg_data [0] [2])   bot.file_helper.send (msg_info)   其他:   send_revoke_nontext (msg_data)      #非文本信息发送   def send_revoke_nontext (msg_data):   如果msg_data[0][7]==罢掌?   如果msg_data [0] [5] [4:]==癵if”:   #现在wxpy,itchat发不了GIF了   bot.file_helper('很抱歉,暂时不支持表情(gif)的撤回重发。)   其他:   msg_info='告诉你一个秘密{}在{}撤回了图像的。格式(msg_data [0] [6], msg_data [0] [3])   bot.file_helper.send (msg_info)   bot.file_helper.send_image (msg_data [0] [5])   elif msg_data[0][7]==凹锹肌?   msg_info='告诉你一个秘密{}在{}撤回了语音”。格式(msg_data [0] [6], msg_data [0] [3])   bot.file_helper.send (msg_info)   bot.file_helper.send_file (msg_data [0] [5])   elif msg_data[0][7]==案郊?   msg_info='告诉你一个秘密{}在{}撤回了文件”。格式(msg_data [0] [6], msg_data [0] [3])   bot.file_helper.send (msg_info)   bot.file_helper.send_file (msg_data [0] [5])   elif msg_data[0][7]==笆悠怠?   msg_info='告诉你一个秘密{}在{}撤回了视频”。格式(msg_data [0] [6], msg_data [0] [3])   bot.file_helper.send (msg_info)   bot.file_helper.send_video (msg_data [0] [5])   elif msg_data[0][7]==胺窒怼?   msg_info='告诉你一个秘密{}在{}撤回了分享\ n \ n {} {}”。格式(msg_data [0] [6], msg_data [0] [3], msg_data [0] [2], \   msg_data [0] [8])   bot.file_helper.send (msg_info)   elif msg_data[0][7]==暗赝肌?   msg_info='告诉你一个秘密{}在{}撤回了位置\ n \ n {} {}”。格式(msg_data [0] [6], msg_data [0] [3], msg_data [0] [2], \   msg_data [0] [8])   bot.file_helper.send (msg_info)         wxpy.embed ()

python使用wxpy实现微信消息防撤回脚本