Python 微信红包提醒脚本

# -*- coding:utf-8 -*-
# author:021王掌柜

import itchat
import pygame
from tkinter import messagebox
from itchat.content import *
import time


def alarm():
    """播放mp3提示"""
    # pygame详解:music 模块
    # https://blog.csdn.net/qq_41556318/article/details/86305046
    pygame.mixer.init()  # 初始化
    pygame.mixer.music.load('./提示音.mp3')  # 加载音乐
    pygame.mixer.music.play()  # 播放
    # messagebox.showinfo('抢红包了', message='有人发红包了、快抢!')  # 弹框提示


@itchat.msg_register([NOTE, TEXT], isFriendChat=False)  # 检测系统注册(类型:Note通知、 isFriendChat=False:个人)
def get_note(msg):
    """监测个人发红包"""
    if msg['Text'] is None:
        return
    friend_name = friend_dict.get(msg['FromUserName'], '自己')
    if '收到红包' in msg['Text']:
        print(friend_name, '************:', msg['Text'], time.strftime("%Y-%m-%d %H:%M:%S %p"))
        alarm()
    # if '已存入零钱' in msg['Text']:
    #     pygame.mixer.music.stop()
    else:
        print(friend_name, '个人消息:', msg['Text'], time.strftime("%Y-%m-%d %X"))


@itchat.msg_register([NOTE, TEXT], isGroupChat=True)  # 检测系统注册(类型:Note通知、 群)
def get_note(msg):
    """监测群发红包"""
    if msg['Text'] is None:
        return
    group_name = member_dict.get(msg['FromUserName'], '自己')  # 获取信息群昵称
    if '收到红包' in msg['Text']:
        print(group_name, '群************:', msg['Text'], time.strftime("%Y-%m-%d %H:%M:%S %p"))
        alarm()
    else:
        print(group_name, '群消息:', msg['Text'], time.strftime("%H:%M:%S %p"))
        # pygame.mixer.music.stop()  # 结束播放音乐


# 登录
itchat.auto_login(hotReload=True)

# 获取好友列表
friends = itchat.get_friends(update=True)[1:]  # 从1开始,就是去除自己一个
# print(friend)
print('好友数:', len(friends))
friend_dict = {}  # 好友id:昵称、的字典
for f in friends:
    friend_dict[f['UserName']] = f['NickName']

# 保存好友头像
"""
for friend in friends:
    img = itchat.get_head_img(userName=friend['UserName'])
    path = r'F:\Python\马哥Python\itchat\imgs\\' + friend["NickName"] + '.jpg'
    try:
        with open(path, 'wb') as f:
            f.write(img)
            print(f'{friend["NickName"]}:的头像已保存')
    except Exception as e:
        print(e)
"""
groups = itchat.get_chatrooms(update=True)  # 获取所有的群
print('加入群数:', len(groups))
member_dict = {}  # 群id:昵称、的字典
for g in groups:
    member_dict[g['UserName']] = g['NickName']

itchat.run()  # 启动监听


一个帮助你在微信红包时战无不胜的Android应用。自动检测并且拆开红包,速度超乎你的想象。 支持中英文。前往Release下载最新版本。已下载用户可直接在设置里面更新。 特性 监视选项任意组合,满足多样化的使用需求[?] 提供了系统通知/聊天列表/聊天页面三档选项,无论是想要谨慎不被察觉,还是想要高效志在必得,这个插件如你所愿。 不仅快人一步,红包识别更加智能 多种特征标识,聊天时不再重复点击红包。智能过滤红包关键字[?],避免落入“专属红包”、“抢到翻倍”的陷阱。还可以设置延时抢红包和自动回复感谢语[?]。 紧跟微信更新 第一时间适配最新版本微信,应用内即可一键更新。 轻量、安全、值得信赖 安装包仅1M,无需ROOT,下载即用。代码公开透明,活跃的社区讨论,数万用户下载,值得你的信赖。 使用方法 打开『微信红包』应用,开启插件。 做你想做的事。 坐等红包进账。 实现原理 请见技术文档,注意文档描述的是dev分支(已弃用)的具体实现,而不是stable分支。若有疑问,请在ISSUES中提出。 更新日志 完整的更新日志请见CHANGELOG。 版权及免责声明 本项目源自小米去年秋季发布会时演示的MIUI 7抢红包测试代码。 插件可能会在一定程度上改变微信的交互方式。使用本项目中包含的代码及其生成物时,使用者自行承担随之而来的各种风险,包括但不限于“禁用红包功能”、“微信封号”。 本项目使用MIT许可证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值