免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

python如何使用wxpy輕松實現微信防撤回-創新互聯

這篇文章將為大家詳細講解有關python如何使用wxpy輕松實現微信防撤回,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

為澄海等地區用戶提供了全套網頁設計制作服務,及澄海網站建設行業解決方案。主營業務為成都網站設計、網站建設、澄海網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

實現的代碼:

import wxpy
import re
 
# 實例化微信對象
bot = wxpy.Bot(cache_path=True)
 
# 啟用puid 并指定puid所需映射數據保存的路徑
bot.enable_puid(path='wxpy_puid.pkl')
 
# 用于存放每個用戶最近發送的消息
msgs = dict()
 
# 信息的類型
msg_types = {
 'Text': '文本',
 'Map': '位置',
 'Picture': '圖片',
 'Video': '視頻',
 'Attachment': '文件',
 'Sharing': '分享',
 'Card': '名片',
 'Recording': '語音',
}
 
 
@bot.register()
def handle_receive_msg(msg):
 """
 監聽消息
 :param msg: 接收到的消息
 :return:
 """
 # 原信息數據
 raw = msg.raw
 
 # 如果消息的狀態碼是4 即撤回消息
 if raw.get('Status') == 4:
  # 如果是群消息
  if isinstance(msg.chat, wxpy.api.chats.group.Group):
   # 獲取群成員的puid
   puid = msg.member.puid
   # 獲取發送者的昵稱
   name = msg.member.nick_name
  # 如果是好友消息
  elif isinstance(msg.chat, wxpy.api.chats.friend.Friend):
   # 獲取好友的puid
   puid = msg.chat.puid
   # 獲取好友的昵稱
   name = msg.chat.nick_name
  else:
   puid = None
   name = None
  if puid:
   # 被撤回消息的msgid的匹配規則
   msg_id_regex = re.compile('<msgid>(\d+)</msgid>')
   # 獲取被撤回消息的msgid
   old_msg_id = msg_id_regex.findall(raw.get('Content'))[0]
   # 獲取該發送者的最后5次的消息記錄
   chat_msgs = msgs.get(puid)
   # 遍歷消息記錄
   for chat_msg in chat_msgs[::-1]:
    # 跳過不是被撤回的信息
    if str(chat_msg.id) != old_msg_id:
     continue
    chat = chat_msg.chat
    # 如果被撤回的信息是文本信息
    if chat_msg.type == "Text":
     # 如果消息長度過長 則不予處理
     if len(chat_msg.text) >= 150:
      warning = "【您撤回的消息過長,有炸群嫌疑,不予處理!!!】"
      bot.file_helper.send('%s撤回了一條文本消息--【%s】'.decode('utf-8') % (name, warning))
      break
     # 將此消息轉發出來
     chat_msg.forward(chat, prefix='%s撤回了一條文本消息,消息內容為:'.decode('utf-8') % name)
    # 如果被撤回的是位置信息
    elif chat_msg.type == "Map":
     # 位置信息的匹配規則
     map_regex = re.compile(r'label="(.+?)"')
     # 獲取位置信息中的位置
     map = map_regex.findall(chat_msg.raw.get("OriContent"))[0]
     # 將位置信息發出來
     msg.reply('%s撤回了一條位置消息,位置信息為:【%s】'.decode('utf-8') % (name, map))
    else:
     # 獲取信息的類型
     msg_type = msg_types.get(chat_msg.type).decode('utf-8')
     # 將信息轉發出來
     chat_msg.forward(chat, prefix='%s撤回了一條%s消息, 消息內容為:'.decode('utf-8') % (name, msg_type))
    break
 else:
  # 如果是群消息
  if isinstance(msg.chat, wxpy.api.chats.group.Group):
   # 獲取群成員的puid
   puid = msg.member.puid
  # 如果是好友消息
  elif isinstance(msg.chat, wxpy.api.chats.friend.Friend):
   # 獲取好友的puid
   puid = msg.chat.puid
  else:
   puid = None
  if puid:
   # 記錄消息
   msgs.setdefault(puid, []).append(msg)
   # 截取消息 保留大5條記錄
   msgs[puid] = msg[puid][-5:]
 
# 使機器人后臺運行,并進入交互模式
wxpy.embed()

也未做過多的測試和優化,測試了文本、圖片、語音、位置信息,視頻、名片、分享、文件消息未做測試

ps:這里語音消息撤回后發出來的是語音文件,位置信息發出來的是地址的文本

======================割======================

如果想要添加聊天機器人 可以加入:

# 指定一個好友
friend = bot.friends().search('您對朋友的備注')
# 指定一個群
group = bot.groups().search('群名')
 
# 實例化圖靈機器人 免費申請圖靈機器人: http://www.tuling123.com/
tu_ling = wxpy.Tuling(api_key="自行注冊")
# chats指定對哪些用戶起作用, 如果chats=None(默認值)對所有用戶起作用
@bot.register(chats=[friend, group]) 
def reply_msg(msg):
 """
 自動回復消息
 :param msg: 接收到的信息數據
 :return: 回復文本
 """
 # do_reply會自動回復消息并返回消息文本
 tu_ling.do_reply(msg)

關于“python如何使用wxpy輕松實現微信防撤回”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

本文標題:python如何使用wxpy輕松實現微信防撤回-創新互聯
網頁網址:http://m.newbst.com/article24/cogsje.html

成都網站建設公司_創新互聯,為您提供品牌網站建設網站策劃ChatGPT移動網站建設用戶體驗靜態網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作