近日,微信開始支持消息撤回功能,但是在一些情況下我們可能想要恢復已經被撤回的消息,此時就需要使用Python破解微信的撤回機制。
# 導入必要的庫 import itchat from itchat.content import * import re # 登錄微信 itchat.auto_login(hotReload=True) # 監聽微信消息 @itchat.msg_register([TEXT, PICTURE, RECORDING, ATTACHMENT, VIDEO]) def save_msg(msg): # 判斷消息類型是否是撤回類型 if msg['Type'] == 'Recall': # 獲取被撤回消息的ID old_msg_id = re.search("(.*?) ", msg['Content']).group(1) # 查找字典中是否存在該ID if old_msg_id in msg_dict.keys(): # 獲取被撤回的消息內容 old_msg = msg_dict[old_msg_id] # 回復被撤回的消息 itchat.send('%s你撤回了一條消息:\n%s' % (msg['ActualNickName'], old_msg), toUserName=msg['FromUserName']) # 刪除字典中的已存儲消息 del msg_dict[old_msg_id] else: # 否則,將消息存儲到字典中 msg_dict[msg['MsgId']] = msg['Text'] # 開始監聽消息 msg_dict = {} itchat.run()
上述代碼中,首先需要導入必要的庫。然后使用itchat庫自動登錄微信,監聽微信消息,并判斷消息是否為撤回類型。如果是撤回消息,則獲取被撤回消息的ID,查看字典中是否存在該ID,如果存在則發送被撤回的消息,刪除字典中已存儲的消息。如果不是撤回消息,則將消息存儲在字典中。
使用以上代碼,就可以破解微信撤回機制。