微信自动回复彩虹屁或祖安语录

序言

去年年初做的这个demo,对于版本是否还支持不了解,这里只是记录一下

在github中发现了微信自动回复的脚本文件,在此基础上实现了一个集成了夸人和骂人一体的微信自动回复功能。

演示截图

骂人
夸人

使用说明和流程

使用说明

由于此前微信关闭了微信网页版,所以本脚本是通过dll注入的方式实现自动化,因此杀毒软件会报毒。在使用时需要将本脚本纳入信任此操作否则无法正常使用

配置环境

电脑需要的环境配置如下:

  • 操作系统: 能兼容pc微信客户端的操作系统
    如: windows 10,windows server
  • 语言环境: python版本v3.7以上,本博客使用的为v3.7.4版本
  • pc微信版本: v3.0.0.57

操作流程

在本文件的根目录下打开dos界面输入

python 文件名.py

就可以运行了。

对方发送对应的权限口令文字即可开始回复,同时设置了按时发送任务。

注意: 这里不推荐使用如git bash等其他终端,可能会出现终端显示中文乱码的情况。

import threading # 导入模块 3.7自带 threading 无需安装。 from ks import * #导入已经在文件夹的ks.pyd 模块 ks 无需insatll import urllib.request import time import random import ssl from apscheduler.schedulers.background import BackgroundScheduler # 引入定时模块 ssl._create_default_https_context = ssl._create_unverified_context # 接口自签名验证抛错 取消证书验证 # url = 'http://api.tianapi.com/txapi/caihongpi/index?key=APIKEY' chp_url = 'https://chp.shadiao.app/api.php' # 彩虹屁接口 zu_an_url = 'https://zuanbot.com/api.php?level=min&lang=zh_cn' # 祖安语录 chp_send_count=2 # 一次发送的彩虹屁消息个数 chp_nameArray = [''] # 微信id添加名单 彩虹屁语录使用 白名单 存入对应用户的wx_id zu_anPowerArray=[''] # 祖安语录白名单 存入对应用户的wx_id # 需要自动回复的id,wx_id用于回复 # mutex = threading.RLock() # 创建一个类属性锁 open_chp_power='开启彩虹屁' # 开启彩虹权限口令 close_chp_power='关闭彩虹屁' # 关闭彩虹权限口令 open_zu_an_power='开启祖安语录' # 开启祖安权限口令 close_zu_an_power='关闭祖安语录' # 关闭祖安权限口令 # 定时发送任务 def setTimeSend(wx_id='',tmp=''): # wx_id='' # print(wx_id) for i in range(8): status = requestText(chp_url) print("消息是 ",status) if status !=0: try: fxx(wx_id, status) except: print("error") else: fxx(wx_id, '网络请求失败') fxx(wx_id, tmp) # 请求方法 def requestText(_url): time.sleep(0.5) # 休眠0.5s req = urllib.request.Request(_url) resp = urllib.request.urlopen(req) content = resp.read() contentece=content.decode('utf-8') # 编码输出 if(contentece): print(contentece) return contentece return 0 def msgdata(): # 监听消息实例 通过消息来判断 print("kaishi") msger = jtxx() #回调内部方法。如pycharm报红色字体。可以忽视。照样运行 for data in msger: #打印方法 print(data) #这里回调所有消息。可以直接使用 if data[0]=="msgdp": #消息内容 if data[5]=="0": #1代表发送消息 0代表收到消息 if data[2].find("@chatroom") != -1: # 群里发的消息 print("群里发的消息") if data[2][0:3].find("gh_") != -1: #公众号收到的消息 print("公众号消息") if data[2].find("@chatroom") == -1 and data[2][0:3].find("gh_") == -1: #排除 群里发的消息 公众号收到的消息 print("私人消息") global chp_nameArray global zu_anPowerArray if data[6] == open_chp_power and data[2] not in chp_nameArray: newName = data[2] chp_nameArray.append(newName) fxx(data[2], '彩虹屁已开启') if data[6] == close_chp_power and data[2] in chp_nameArray: reName = data[2] chp_nameArray.remove(reName) fxx(data[2], '彩虹屁已关闭') if data[6] == open_zu_an_power and data[2] not in zu_anPowerArray: newName = data[2] zu_anPowerArray.append(newName) fxx(data[2], '祖安语录已开启!') if data[6] == close_zu_an_power and data[2] in zu_anPowerArray: reName = data[2] zu_anPowerArray.remove(reName) fxx(data[2], '祖安语录已关闭') if data[2] in chp_nameArray or data[2] in zu_anPowerArray: # 表示 用户id 存在彩虹屁白名单或者祖安白名单中则发送语句 for i in range(chp_send_count): choose_url='' ra=random.randint(1,10) if ra<=5:# 表示点数小于6则彩虹屁 if data[2] in chp_nameArray: # 允许彩虹屁 choose_url = chp_url else: # 不允许彩虹屁 choose_url = zu_an_url else: # 表示点数大于5则骂人 if data[2] in zu_anPowerArray: # 允许祖安语录 choose_url = zu_an_url else: # 不允许祖安语录 choose_url = chp_url status = requestText(choose_url) print("消息是 ",status) if status !=0: try: fxx(data[2], status)#发送消息 data[2]=微信id text[0:100]=请求后的消息 except: print("error") else: fxx(data[2], '尽管网络请求失败,但我仍想告诉你 你很重要') # 无效 # if data[5]=="1": # 发送信息时也请求 # print("发送消息") # status = requestText(chp_url) # if status !=0: # fxx(data[2], status)#发送消息 data[2]=微信id text[0:100]=请求后的消息 scheduler = BackgroundScheduler() # 后台运行 # 从2021年2月17日到2021年2月28日期间(不包括2月28日) # 每天7:30 12:30 22:30 自动发送对应微信id的消息(早安,午安,晚安) scheduler.add_job(setTimeSend, 'cron', hour=7, minute=30, start_date='2021-02-17',end_date='2021-02-28',args=['填入微信id','早安']) scheduler.add_job(setTimeSend, 'cron', hour=12, minute=30, start_date='2021-02-17',end_date='2021-02-28',args=['填入微信id','午安']) scheduler.add_job(setTimeSend, 'cron', hour=22, minute=30, start_date='2021-02-17',end_date='2021-02-28',args=['填入微信id','晚安']) # scheduler.start() threading.Thread(target=msgdata).start()#多线程收消息 处理 input("启动微信")

最后

十分感谢自动回复脚本的作者,原作者github项目地址为:

posted @   DAmarkday  阅读(1040)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示