成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

78行Python代碼幫你復現微信撤回消息!

移動開發 移動應用 后端
Python曾經對我說:"時日不多,趕緊用Python"。于是看到了一個基于python的微信開源庫:itchat,玩了一天,做了一個程序,把私聊撤回的信息可以收集起來并發送到個人微信的文件傳輸助手。

Python曾經對我說:"時日不多,趕緊用Python"。于是看到了一個基于python的微信開源庫:itchat,玩了一天,做了一個程序,把私聊撤回的信息可以收集起來并發送到個人微信的文件傳輸助手,包括:

  • who :誰發送的
  • when :什么時候發送的消息
  • what:什么信息
  • which:哪一類信息,包括:文本、圖片、語音、視頻、分享、位置、附件...

01 代碼實現 

  1. # -*-encoding:utf-8-*- 
  2. import os 
  3. import re 
  4. import shutil 
  5. import time 
  6. import itchat 
  7. from itchat.content import * 
  8.  
  9. # 說明:可以撤回的有文本文字、語音、視頻、圖片、位置、名片、分享、附件 
  10.  
  11. # {msg_id:(msg_from,msg_to,msg_time,msg_time_rec,msg_type,msg_content,msg_share_url)} 
  12. msg_dict = {} 
  13.  
  14. # 文件存儲臨時目錄 
  15. rev_tmp_dir = "/home/alic/RevDir/" 
  16. if not os.path.exists(rev_tmp_dir): os.mkdir(rev_tmp_dir) 
  17.  
  18. # 表情有一個問題 | 接受信息和接受note的msg_id不一致 巧合解決方案 
  19. face_bug = None 
  20.  
  21. # 將接收到的消息存放在字典中,當接收到新消息時對字典中超時的消息進行清理 | 不接受不具有撤回功能的信息 
  22.  
  23. # [TEXT, PICTURE, MAP, CARD, SHARING, RECORDING, ATTACHMENT, VIDEO, FRIENDS, NOTE] 
  24. @itchat.msg_register([TEXT, PICTURE, MAP, CARD, SHARING, RECORDING, ATTACHMENT, VIDEO]) 
  25. def handler_receive_msg(msg): 
  26.     global face_bug 
  27.     # 獲取的是本地時間戳并格式化本地時間戳 e: 2017-04-21 21:30:08 
  28.     msg_time_rec = time.strftime("%Y-%m-%d %H:%M:%S"time.localtime()) 
  29.     # 消息ID 
  30.     msg_id = msg['MsgId'
  31.     # 消息時間 
  32.     msg_time = msg['CreateTime'
  33.     # 消息發送人昵稱 | 這里也可以使用RemarkName備注 但是自己或者沒有備注的人為None 
  34.     msg_from = (itchat.search_friends(userName=msg['FromUserName']))["NickName"
  35.     # 消息內容 
  36.     msg_content = None 
  37.     # 分享的鏈接 
  38.     msg_share_url = None 
  39.     if msg['Type'] == 'Text' \ 
  40.             or msg['Type'] == 'Friends'
  41.         msg_content = msg['Text'
  42.     elif msg['Type'] == 'Recording' \ 
  43.             or msg['Type'] == 'Attachment' \ 
  44.             or msg['Type'] == 'Video' \ 
  45.             or msg['Type'] == 'Picture'
  46.         msg_content = r"" + msg['FileName'
  47.         # 保存文件 
  48.         msg['Text'](rev_tmp_dir + msg['FileName']) 
  49.     elif msg['Type'] == 'Card'
  50.         msg_content = msg['RecommendInfo']['NickName'] + r" 的名片" 
  51.     elif msg['Type'] == 'Map'
  52.         x, y, location = re.search( 
  53.             "<location x=\"(.*?)\" y=\"(.*?)\".*label=\"(.*?)\".*", msg['OriContent']).group(1, 2, 3) 
  54.         if location is None: 
  55.             msg_content = r"緯度->" + x.__str__() + " 經度->" + y.__str__() 
  56.         else
  57.             msg_content = r"" + location 
  58.     elif msg['Type'] == 'Sharing'
  59.         msg_content = msg['Text'
  60.         msg_share_url = msg['Url'
  61.     face_bug = msg_content 
  62.     # 更新字典 
  63.     msg_dict.update
  64.         { 
  65.             msg_id: { 
  66.                 "msg_from": msg_from, "msg_time": msg_time, "msg_time_rec": msg_time_rec, 
  67.                 "msg_type": msg["Type"], 
  68.                 "msg_content": msg_content, "msg_share_url": msg_share_url 
  69.             } 
  70.         } 
  71.     ) 
  72.  
  73. # 收到note通知類消息,判斷是不是撤回并進行相應操作 
  74.  
  75. @itchat.msg_register([NOTE]) 
  76. def send_msg_helper(msg): 
  77.     global face_bug 
  78.     if re.search(r"\<\!\[CDATA\[.*撤回了一條消息\]\]\>", msg['Content']) is not None: 
  79.         # 獲取消息的id 
  80.         old_msg_id = re.search("\<msgid\>(.*?)\<\/msgid\>", msg['Content']).group(1) 
  81.         old_msg = msg_dict.get(old_msg_id, {}) 
  82.         if len(old_msg_id) < 11: 
  83.             itchat.send_file(rev_tmp_dir + face_bug, toUserName='filehelper'
  84.             os.remove(rev_tmp_dir + face_bug) 
  85.         else
  86.             msg_body = "告訴你一個秘密~" + "\n" \ 
  87.                        + old_msg.get('msg_from') + " 撤回了 " + old_msg.get("msg_type") + " 消息" + "\n" \ 
  88.                        + old_msg.get('msg_time_rec') + "\n" \ 
  89.                        + "撤回了什么 ⇣" + "\n" \ 
  90.                        + r"" + old_msg.get('msg_content'
  91.             # 如果是分享存在鏈接 
  92.             if old_msg['msg_type'] == "Sharing": msg_body += "\n就是這個鏈接➣ " + old_msg.get('msg_share_url'
  93.  
  94.             # 將撤回消息發送到文件助手 
  95.             itchat.send(msg_body, toUserName='filehelper'
  96.             # 有文件的話也要將文件發送回去 
  97.             if old_msg["msg_type"] == "Picture" \ 
  98.                     or old_msg["msg_type"] == "Recording" \ 
  99.                     or old_msg["msg_type"] == "Video" \ 
  100.                     or old_msg["msg_type"] == "Attachment"
  101.                 file = '@fil@%s' % (rev_tmp_dir + old_msg['msg_content']) 
  102.                 itchat.send(msg=file, toUserName='filehelper'
  103.                 os.remove(rev_tmp_dir + old_msg['msg_content']) 
  104.             # 刪除字典舊消息 
  105.             msg_dict.pop(old_msg_id) 
  106.  
  107. if __name__ == '__main__'
  108.     itchat.auto_login(hotReload=True,enableCmdQR=2) 
  109.     itchat.run() 

該程序可以直接在終端運行,在終端掃碼成功夠即可登錄成功,同時也可以打包在window系統運行(注意修改一下路徑,推薦使用相對路徑)。

  1. ➜  ~ python wx.py 
  2. Getting uuid of QR code. 
  3. Downloading QR code. 
  4. Please scan the QR code to log in
  5. Please press confirm on your phone. 
  6. Loading the contact, this may take a little while. 
  7. �[3;J 
  8. Login successfully as AlicFeng 
  9. Start auto replying. 

02 效果圖

78行Python代碼幫你復現微信撤回消息!

03 itchat

上面都是編程邏輯的小事,我還是記錄一下itchat微信這個開源庫。

1. 簡介

itchat是一個開源的微信個人號接口,使用python調用微信變得非常簡單。簡單是用itchat代碼即可構建一個基于微信的即時通訊,更不錯的體現在于方便擴展個人微信的在其他平臺的更多通訊功能。

2. 安裝

pip3 install itchat

3. itchat - Helloworld

僅僅三行代碼發送一條信息給文件傳輸助手。

  1. import itchat 
  2. itchat.auto_login(hotReload=True
  3. itchat.send('Hello AlicFeng', toUserName='filehelper'

4. 查看客戶端

[[237838]]

學習最重要的還是API說明手冊:

Github for itchat:

  • https://github.com/liduanwei/ItChat

中文API:

  • http://itchat.readthedocs.io/zh/latest/
責任編輯:未麗燕 來源: 簡書
相關推薦

2018-06-20 14:42:42

微信撤回的消息Python

2018-07-13 16:26:46

編程語言Python微信

2020-09-21 14:37:09

Python代碼微信

2018-12-14 14:58:04

Python微信消息

2017-03-17 15:10:52

微信消息撤回功能

2018-03-02 11:03:19

微信消息撤回

2017-10-26 11:36:46

微信撤回消息

2020-09-05 16:07:00

微信騰訊移動應用

2023-04-07 18:37:46

2019-09-25 08:26:20

Python微信頭像

2019-11-14 09:08:06

微信WindowsRevokeMsgPa

2015-06-04 09:26:23

微信推送模板PHP代碼

2019-10-17 21:37:28

微信飛機大戰Python

2020-08-14 13:00:02

微信拍一拍移動應用

2024-12-19 10:00:00

Python發送消息編程

2025-03-31 10:49:16

2020-11-30 09:31:28

微信代碼程序員

2017-08-01 17:02:19

代碼Python數據

2016-11-02 13:12:31

微信離線消息

2021-08-24 17:14:53

騰訊企業微信
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 三级成人片 | 日韩欧美不卡 | h视频在线观看免费 | 国产91av视频在线观看 | 色姑娘综合网 | 欧美一区二区三区在线观看 | 亚洲日本中文字幕在线 | 精品自拍视频在线观看 | 中文字幕蜜臀 | 成人欧美一区二区三区黑人孕妇 | 亚洲精品久久久久avwww潮水 | 亚洲欧美中文日韩在线v日本 | 久久亚洲一区二区 | 中文字幕 在线观看 | 超碰8 | 一区二区三区在线 | 欧美一区二区三区在线播放 | 精品久久久久久一区二区 | 国产丝袜一区二区三区免费视频 | 国产精品色 | 日韩视频精品在线 | 亚洲精品99999| 中日韩毛片 | 亚洲国产欧美在线 | 黄色片网站在线观看 | 91一区二区三区 | 国产成人精品一区二区三区在线 | 欧美专区在线 | 日韩久久久久 | 久久久久久久综合色一本 | 亚洲一区二区在线播放 | 欧美精品中文字幕久久二区 | 国产精品亚洲精品 | 在线免费观看a级片 | 亚洲女人的天堂 | 精品自拍视频在线观看 | 日韩午夜一区二区三区 | 国产高清视频一区二区 | 91久久看片 | 国产一区二区三区高清 | 高清av电影 |