Python实现微信中找回好友,群聊用户撤回的消息功能示例

  

本文实例讲述了Python实现微信中找回好友,群聊用户撤回的消息功能。分享给大家供大家参考,具体如下:

  

还在好奇好友撤回了什么消息吗?群里撤回了什么消息?下面的代码实现了:即使群,好友撤回了文本消息,表情,图片等消息,自己也能知道撤回的什么。

        #=utf - 8编码   进口itchat   从itchat。内容导入文本   从itchat。内容导入*   导入系统   导入的时间   进口再保险   进口操作系统   msg_information={}   face_bug=#针没有对表情包的内容   @itchat.msg_register([文本、图片、朋友、卡、地图、分享、记录、附件、视频),isFriendChat=True, isGroupChat=True)   def receive_msg(味精):   全球face_bug   msg_time_rec= strftime (“% - % - % d % H: % m: % S”, time.localtime()) #接收消息的时间   如果“ActualNickName”味精:   from_user=味精[' ActualUserName '] #群消息的发送者,用户的唯一标识   msg_from=味精[' ActualNickName '] #发送者群内的昵称   朋友=itchat.get_friends(更新=True) #获取所有好友   f的朋友:   如果from_user==f(“用户名”):#如果群消息是好友发的   如果f [' RemarkName ']: #优先使用好友的备注名称,没有则使用昵称   msg_from=f (“RemarkName”)   其他:   msg_from=f(“昵称”)   打破   组=itchat.get_chatrooms(更新=True) #获取所有的群   在g组:   如果味精(“FromUserName”)==g(“用户名”):#根据群消息的FromUserName匹配是哪个群   group_name=g(“昵称”)   group_menbers=g (“MemberCount”)   打破   group_name=group_name +”(“+ str (group_menbers) +”)”   其他:   如果itchat.search_friends(用户名=味精[' FromUserName ']) [' RemarkName ']: #优先使用备注名称   msg_from=itchat.search_friends(用户名=味精[' FromUserName ']) (“RemarkName”)   其他:   msg_from=itchat.search_friends(用户名=味精[' FromUserName '])(“昵称”)#在好友列表中查询发送信息的好友昵称   group_name=" "   msg_time=味精[' CreateTime '] #信息发送的时间   msg_id=味精(“是否”)#每条信息的id   msg_content=没有#储存信息的内容   msg_share_url=没有#储存分享的链接,比如分享的文章和音乐   如果味精('类型']==谋尽蛭毒?'类型']=='朋友的:#如果发送的消息是文本或者好友推荐   msg_content=味精(“文本”)   #如果发送的消息是附件,视频,图片,语音   elif味精('类型']==案郊被蛭毒?'类型']==\“视频”   或味精['类型']==\“照片”   或味精['类型']==凹锹肌?   msg_content=味精(“文件名”)#内容就是他们的文件名   味精(“文本”)(str (msg_content)) #下载文件   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”) #记录分享的Url   face_bug=msg_content   #将信息存储在字典中,每一个msg_id对应一条信息   time . sleep (2)   msg_information.update (   {   msg_id: {   “msg_from”: msg_from,   “msg_time”: msg_time,   “msg_time_rec”: msg_time_rec,   “msg_type”:味精(“类型”),   “msg_content”: msg_content,   “msg_share_url”: msg_share_url,   “group_name”: group_name   }   }   )   del_info=[]   在msg_information k:   m_time=msg_information [k] [' msg_time '] #取得消息时间   如果int (time.time ()) - m_time比;130:#如果消息时间是130秒甚至更久之前的,则删除。   del_info.append (k)   如果del_info:   因为我在del_info:   msg_information.pop(我)   #监听是否有消息撤回   @itchat.msg_register(注意,isFriendChat=True, isGroupChat=True, isMpChat=True)   def信息(味精):   #如果这里的味精(“内容”)中包含消息撤回和id,就执行下面的语句   如果“撤回了一条消息的味精(“内容”):   old_msg_id=re.search (“\ & lt;是否\祝辞(* & # 63;)\ & lt; \/是否\祝辞”,味精(“内容”)).group(1) #在返回查的内容找撤回的消息的id   old_msg=msg_information.get (old_msg_id) #获取到消息原文,类型:字典   打印(old_msg)   如果len (old_msg_id) & lt; 11: #如果发送的是表情包   itchat.send_file (face_bug toUserName=癴ilehelper”)   其他:#发送撤回的提示给文件助手   msg_body=old_msg [' group_name '] + old_msg (“msg_from”) +“\ n”+ old_msg \“msg_time_rec”   + "撤回了:" + " \ n " + r " + old_msg (“msg_content”)   #如果是分享的文件被撤回了,那么就将分享的url加在msg_body中发送给文件助手   如果old_msg msg_type”==肮蚕怼?   msg_body +=" \ n链接是:”+ old_msg.get (“msg_share_url”)   #打印(msg_body)   itchat。send_msg (msg_body toUserName=filehelper) #将撤回消息发给文件助手   #有文件的话也要将文件发送回去   如果old_msg“msg_type”==\“照片”   (“msg_type”)或old_msg==\“记录”   (“msg_type”)或old_msg==\“视频”   (“msg_type”)或old_msg==案郊?   文件=' @fil@ % s % (old_msg [' msg_content '])   itchat。发送(味精=文件,toUserName=癴ilehelper”)   os.remove (old_msg [' msg_content '])   msg_information.pop (old_msg_id) #删除字典旧消息   itchat.auto_login (hotReload=True, enableCmdQR=1)   itchat.run ()      

Python实现微信中找回好友,群聊用户撤回的消息功能示例