用Python寫個了紅包提醒,再不怕錯過一個億了

又到了辭舊迎新的時候,羣裏的紅包也多起來了。然而大佬們老是喜歡趁我不在的時候發紅包,常常打開手機,發現紅包已被搶完,感受錯過了一個億。python

安卓上有很多紅包助手工具,但 iOS 彷佛沒有。並且就算有,這種須要很高權限的第三方插件工具總讓人不那麼放心。因此我仍是本身來作一個好了。若是要求不那麼高,只要在出現紅包的時候發出提醒,那麼實現起來並不複雜。git

先來看下效果(實際使用不須要打開手機,此處爲演示須要):github

實現代碼主要有兩個部分:算法

一、接收紅包消息

直接從手機端VX獲取數據比較麻煩,主流的方法都是經過VX網頁版來獲取。由於網頁版的消息接口能夠被抓包分析,比較容易獲取和使用。目前主流的包都是經過這個方式,使用比較多的庫有 itchatwxpy。這裏我用的是 itchat,經過 pip 便可安裝,以前我也寫過文章介紹:《Crossin:VX機器人進化指南》。編程

項目地址: ide

https://github.com/littlecodersh/ItChat 函數

核心代碼:工具

import itchat

@itchat.msg_register('Note', isGroupChat=True)
def get_note(msg):
    if '紅包' in msg['Text']:
        print('note:',msg['Text'])
        alarm()  # 自定義提醒

itchat.auto_login(hotReload=True)
itchat.run()
itchat.logout()

msg_register是註冊消息時間的響應函數,'Note'是紅包、轉帳等通知消息類型,isGroupChat=True包含了羣聊。當網頁版收到紅包後,會顯示「收到紅包,請在手機上查看」。因此判斷消息文本中包含「紅包」字樣時,就發出提醒。人工智能

因爲是基於網頁版運行,代碼運行後,須要用手機掃二維碼登陸spa

二、發通知

最簡單的通知方法就是發出聲音,在 Python 中有幾種不一樣實現:

def alarm():
    # Windows嗡鳴聲
    import winsound
    winsound.Beep(1000, 3000)

    # Mac語音
    import os
    os.system('say "有人發紅包了,趕忙去搶啊!"')

    # 播放MP3
    import pygame
    pygame.mixer.init()
    track = pygame.mixer.music.load('alarm.mp3')
    pygame.mixer.music.play()

發出聲音須要用到調用系統接口,WindowsMac 有不一樣的實現,或者也能夠經過 pygame 播放 MP3 文件。上面三種方法保留一種便可。

還嫌不夠的話,能夠彈個窗:

import tkinter.messagebox 
tkinter.messagebox.showinfo('重要提醒','有人發紅包啦!')

最終效果視頻演示:

pythonVX紅包提醒演示 https://www.zhihu.com/video/1073230800832622592

完整代碼就上面這兩段,若是你要下載也能夠在公*號(Crossin的編程教室)裏回覆關鍵字 紅包,裏面還包含了一篇關於紅包算法討論的舊文。

不過因爲大量自動化營銷機器人都在使用VX網頁版接口,如今網頁版的功能已被刪減許多,且剛註冊的新號已沒法登陸網頁版。有傳言說可能以後會取消網頁版,就像以前的 Web QQ。你在使用 itchat 的時候要注意:

  1. 不要頻率太高過快的發送消息,也是有很大機率被限制網頁版登陸
  2. 登陸狀態有可能掉線,並且掉線是不會有通知的
  3. 不支持領取紅包
  4. 切勿拿來作什麼很差的事情(憑如今的功能其實也作不了啥)

自動搶紅包實現起來就要複雜不少,須要從安卓 APP 層面入手。並且這自己也有風險,聽說搶得太快是有可能被系統識別限制帳號的紅包功能,因此請謹慎嘗試。我這裏也很少說了。

若是你真想自動搶,我給你指條明路:

不用謝!


════

其餘文章及回答:

如何自學Python | 新手引導 | 精選Python問答 | Python單詞表 | 人工智能 | 爬蟲 | 我用Python | requests | 計算機視覺 | 字符播放器 | 一圖學Python | 智能防擋彈幕

歡迎搜索及關注公*號:Crossin的編程教室

相關文章
相關標籤/搜索