1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python查看微信撤回消息_python轻松实现查看微信撤回消息代码实例

python查看微信撤回消息_python轻松实现查看微信撤回消息代码实例

时间:2024-03-05 02:08:57

相关推荐

python查看微信撤回消息_python轻松实现查看微信撤回消息代码实例

收到微信消息被撤回,有没有心里一慌?今天给大家介绍一个基于python的微信开源库:itchat。只要几十行代码,轻松实现查看微信撤回消息,从此告别心慌慌!学起来吧!

思路流程:

1、监听微信消息接收,将收到的微信消息存储到文件中;

2、监听微信通知类消息接收,判断收到消息撤回的通知后,取出消息存储文件中的消息;

3、将取出的消息内容发送到我的个人微信文件传输助手。

实现代码

#!/usr/bin/envpython3

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

#authorRoc.Wong

#@Time:/7/2610:19

#@File:chehuixinxi.py

importos

importre

importtime

importitchat

fromitchat.contentimport*

#说明:可以撤回的有文本文字、语音、视频、图片、位置、名片、分享、附件

#{msg_id:(msg_from,msg_to,msg_time,msg_time_rec,msg_type,msg_content,msg_share_url)}

msg_dict={}

#文件存储临时目录

rev_tmp_dir=r"C:\PycharmProjects\mypros\weixin\revdir"

ifnotos.path.exists(rev_tmp_dir):os.mkdir(rev_tmp_dir)

#表情有一个问题|接受信息和接受note的msg_id不一致巧合解决方案

face_bug=None

#将接收到的消息存放在字典中,当接收到新消息时对字典中超时的消息进行清理|不接受不具有撤回功能的信息

#[TEXT,PICTURE,MAP,CARD,SHARING,RECORDING,ATTACHMENT,VIDEO,FRIENDS,NOTE]

@itchat.msg_register([TEXT,PICTURE,MAP,CARD,SHARING,RECORDING,ATTACHMENT,VIDEO])

defhandler_receive_msg(msg):

globalface_bug

#获取的是本地时间戳并格式化本地时间戳e:-04-2121:30:08

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

#消息ID

msg_id=msg['MsgId']

#消息时间

msg_time=msg['CreateTime']

#消息发送人昵称|这里也可以使用RemarkName备注但是自己或者没有备注的人为None

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

#消息内容

msg_content=None

#分享的链接

msg_share_url=None

ifmsg['Type']=='Text'\

ormsg['Type']=='Friends':

msg_content=msg['Text']

elifmsg['Type']=='Recording'\

ormsg['Type']=='Attachment'\

ormsg['Type']=='Video'\

ormsg['Type']=='Picture':

msg_content=r""+msg['FileName']

#保存文件

msg['Text'](rev_tmp_dir+msg['FileName'])

elifmsg['Type']=='Card':

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

elifmsg['Type']=='Map':

x,y,location=re.search(

""+x.__str__()+"经度->"+y.__str__()

else:

msg_content=r""+location

elifmsg['Type']=='Sharing':

msg_content=msg['Text']

msg_share_url=msg['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["Type"],

"msg_content":msg_content,"msg_share_url":msg_share_url

}

}

)

#收到note通知类消息,判断是不是撤回并进行相应操作

@itchat.msg_register([NOTE])

defsend_msg_helper(msg):

globalface_bug

ifre.search(r"\",msg['Content'])isnotNone:

#获取消息的id

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

old_msg=msg_dict.get(old_msg_id,{})

iflen(old_msg_id)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。