中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WechatPCAPI庫如何實現自動化回復

發布時間:2020-07-03 10:59:41 來源:億速云 閱讀:250 作者:清晨 欄目:編程語言

小編給大家分享一下WechatPCAPI庫如何實現自動化回復,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

目前有一個項目 WechatPCAPI 可以對微信進行操作,簡單來說它是直接操作 PC 版微信客戶端的,當然它有一定不足之處就是:PC 版微信客戶端和 Python 都需要使用指定版本的,本文我們使用的 Python 版本為 3.7.6 ,微信客戶端使用版本為 2.6.8.52 ,WechatPCAPI 的 GitHub 地址為: https://github.com/Mocha-L/WechatPCAPI。

獲取好友列表

WechatPCAPI 提供了方法 get_friends(),該方法返回信息包括:好友、群和公眾號的列表信息,信息內容主要包括:微信號、昵稱和自己設置的備注。

我們使用獲取的昵稱做個簡單的詞云展示,代碼實現如下所示:

logging.basicConfig(level=logging.INFO)

def on_message(message):
 pass

def get_friends():
 # 初始化微信實例
 wx_inst = WechatPCAPI(on_message=on_message, log=logging)
 # 啟動微信
 wx_inst.start_wechat(block=True)
 # 等待登陸成功,此時需要人為掃碼登錄微信
 while not wx_inst.get_myself():
  time.sleep(5)
 print('登陸成功')
 nicknames = []
 # 排除的詞
 remove = ['還是', '不會', '一些', '所以', '果然',
     '起來', '東西', '為什么', '真的', '這么',
     '但是', '怎么', '還是', '時候', '一個',
     '什么', '自己', '一切', '樣子', '一樣',
     '沒有', '不是', '一種', '這個', '為了'
   ]
 for key, value in wx_inst.get_friends().items():
  if key in ['fmessage', 'floatbottle', 'filehelper'] or 'chatroom' in key:
   continue
  nicknames.append(value['wx_nickname'])
 words = []
 for text in nicknames:
  if not text:
   continue
  for t in jieba.cut(text):
   if t in remove:
    continue
   words.append(t)
 global word_cloud
 # 用逗號隔開詞語
 word_cloud = ','.join(words)

def nk_cloud():
    # 打開詞云背景圖
    cloud_mask = np.array(Image.open('bg.png'))
    # 定義詞云的一些屬性
    wc = WordCloud(
        # 背景圖分割顏色為白色
        background_color='white',
        # 背景圖樣
        mask=cloud_mask,
        # 顯示最大詞數
        max_words=300,
        # 顯示中文
        font_path='./fonts/simkai.ttf',
        # 最大尺寸
        max_font_size=70
    )
    global word_cloud
    # 詞云函數
    x = wc.generate(word_cloud)
    # 生成詞云圖片
    image = x.to_image()
    # 展示詞云圖片
    image.show()
    # 保存詞云圖片
    wc.to_file('nk.png')

看一下效果:

消息防撤回

我們在使用微信和好友聊天時,對方有時會有撤回消息的情況,正常情況下,我們是不知道好友撤回的消息是什么的,通過 WechatPCAPI 就可以實現消息防撤回的功能。

我們知道通常撤回的消息是點擊撤回操作前一步發送的內容,當然也可能撤回的是前兩步、三步 ... 的消息,這里我們只對撤回前一步的消息做處理,基本思路是:我們將撤回前一步發送的消息存一下,當對方點擊撤回操作時,我們再將前一步的消息再次返回給自己。

下面看一下實現代碼:

logging.basicConfig(level=logging.INFO)
queue_recved_event = Queue()

def on_message(msg):
    queue_recved_event.put(msg)

def login():
    pre_msg = ''
    # 初始化微信實例
    wx_inst = WechatPCAPI(on_message=on_message, log=logging)
    # 啟動微信
    wx_inst.start_wechat(block=True)
    # 等待登陸成功,此時需要人為掃碼登錄微信
    while not wx_inst.get_myself():
        time.sleep(5)
    print('登陸成功')
    while True:
        msg = queue_recved_event.get()
        data = msg.get('data')
        sendinfo = data.get('sendinfo')
        data_type = str(data.get('data_type'))
        msgcontent = str(data.get('msgcontent'))
        is_recv = data.get('is_recv')
        print(msg)
        if data_type == '1' and 'revokemsg' not in msgcontent:
            pre_msg = msgcontent
        if sendinfo is not None and 'revokemsg' in msgcontent:
            user = str(sendinfo.get('wx_id_search'))
            recall = '撤回的消息:' + pre_msg
            wx_inst.send_text(to_user=user, msg=recall)

看一下操作

WechatPCAPI庫如何實現自動化回復


看完了這篇文章,相信你對WechatPCAPI庫如何實現自動化回復有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

城口县| 吴旗县| 六枝特区| 邵东县| 昂仁县| 永仁县| 枣强县| 长泰县| 江油市| 沂南县| 万年县| 鸡泽县| 汾西县| 兴城市| 桑日县| 郯城县| 伽师县| 揭西县| 四子王旗| 玉屏| 蕉岭县| 米脂县| 南宫市| 龙岩市| 彭山县| 本溪| 桦南县| 清丰县| 洪江市| 合山市| 榆林市| 伊通| 江孜县| 新营市| 晋城| 鹤岗市| 左权县| 曲麻莱县| 巨野县| 霍山县| 高平市|