用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的编程教室

相关文章
相关标签/搜索