微信,找回好友 群聊使用者撤回的訊息

2021-08-14 08:13:42 字數 4143 閱讀 9523

#coding=utf-8

import itchat

from itchat.content import text

from itchat.content import *

import sys

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,isgroupchat=true)

def receive_msg(msg):

global face_bug

msg_time_rec = time.strftime("%y-%m-%d %h:%m:%s", time.localtime()) #接收訊息的時間

if 'actualnickname' in msg:

from_user = msg['actualusername'] #群訊息的傳送者,使用者的唯一標識

msg_from = msg['actualnickname']#傳送者群內的暱稱

friends = itchat.get_friends(update=true)#獲取所有好友

for f in friends:

if from_user == f['username']: #如果群訊息是好友發的

if f['remarkname']: # 優先使用好友的備註名稱,沒有則使用暱稱

msg_from = f['remarkname']

else:

msg_from = f['nickname']

break

groups = itchat.get_chatrooms(update=true)#獲取所有的群

for g in groups:

if msg['fromusername'] == g['username']:#根據群訊息的fromusername匹配是哪個群

group_name = g['nickname']

group_menbers = g['membercount']

break

group_name = group_name + "(" + str(group_menbers) +")"

else:

if itchat.search_friends(username=msg['fromusername'])['remarkname']:#優先使用備註名稱

msg_from = itchat.search_friends(username=msg['fromusername'])['remarkname']

else:

msg_from = itchat.search_friends(username=msg['fromusername'])['nickname'] #在好友列表中查詢傳送資訊的好友暱稱

group_name = ""

msg_time = msg['createtime'] #資訊傳送的時間

msg_id = msg['msgid'] #每條資訊的id

msg_content = none #儲存資訊的內容

if msg['type'] == 'text' or msg['type'] == 'friends': #如果傳送的訊息是文字或者好友推薦

msg_content = msg['text']

elif msg['type'] == "attachment" or msg['type'] == "video" \

or msg['type'] == 'picture' \

or msg['type'] == 'recording':

msg_content = msg['filename'] #內容就是他們的檔名

elif msg['type'] == 'map': #如果訊息為分享的位置資訊

x, y, location = re.search(

"" + x.__str__() + " 經度->" + y.__str__() #內容為詳細的位址

else:

msg_content = r"" + location

elif msg['type'] == 'sharing': #如果訊息為分享的**或者文章,詳細的內容為文章的標題或者是分享的名字

msg_content = msg['text']

msg_share_url = msg['url'] #記錄分享的url

face_bug = msg_content

#將資訊儲存在字典中,每乙個msg_id對應一條資訊

time.sleep(2)

msg_information.update(})

del_info =

for k in msg_information:

m_time = msg_information[k]['msg_time'] #取得訊息時間

if int(time.time()) - m_time > 130: #如果訊息時間是130秒甚至更久之前的,則刪除。

if del_info:

for i in del_info:

msg_information.pop(i)

#監聽是否有訊息撤回

@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("\(.*?)\<\/msgid\>", msg['content']).group(1) #在返回的content查詢撤回的訊息的id

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['group_name'] + old_msg['msg_from'] +"\n" + old_msg['msg_time_rec'] \

+ "撤回了:" + "\n" + r"" + old_msg['msg_content']

#如果是分享的檔案被撤回了,那麼就將分享的url加在msg_body中傳送給檔案助手

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

msg_body += "\n鏈結是:" + old_msg.get('msg_share_url')

#print(msg_body)

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,enablecmdqr=1)

itchat.run()

itchat 監控微信好友撤回訊息

coding utf 8 import itchat from itchat.content import text from itchat.content import import sys import time import re import importlib import os impo...

itchat監聽微信撤回訊息

import itchat from itchat.content import import remsg infomation 監聽傳送訊息 itchat.msg register text defhandle receive msg msg print msg msg from itchat.s...

微信好友最新恢復攻略 微信刪除好友怎麼找回

微信好友最新恢復攻程式設計客棧略 微信刪除好友怎麼找回?微信是目前社會中最流行的交通工具,隨時隨地與人交談。超過九成微信使用者每天都會使用微信,半數使用者每www.cppcns.com天使用微信超過 1 小時。微信已經成為我們一種離不開的生活方式。一 紅包交易記錄 彼此之間如果有過紅包交易記錄,可以...