itchat群机器人的自动画实现

article/2025/8/30 10:11:47

总体功能或思想
1、根据 itchat文档 实现简单的聊天回复功能
2、添加敏感词汇过滤、添加一些日常对话的回答
3、获取群成员信息,收到消息后,如果是女同胞发言,则给出提示
4、接入图灵机器人,提升日常会话能力

软件安装:
pip install itchat
pip install itchat_uos

import itchat
import requests
import json
from itchat.content import *tuling = 1
daily_count = 32
flag = 0roomslist = []
ChatRoom = {}# 你要管理的群的列表
groupList = [
"tee22",
"ARM-Trustzone-TEE-ATF",
"None123"
]def auto_chat(text):data = {"perception": {"inputText": {"text": text}},"userInfo": {"apiKey": "xxxxxxxxxxxxxxx",  ## 你的图灵机器人KEY"userId": '123',}}req = json.dumps(data).encode('utf8')r = requests.post('http://openapi.tuling123.com/openapi/api/v2', data=req).textprint(r)r=json.loads(r)['results']for resutl in r:return resutl['values']['text']def lc():global ChatRoomprint('机器人HH在线')group  = itchat.get_chatrooms(update=True)for g in group:print(g['NickName'])if g['NickName'] in groupList:itchat.send("[机器人HH上线] -- Hello,我是进化版HH,你有什么问题,可以直接问我, 但记得要艾特我哦!", g['UserName'])for i in getchatrooms():roomslist.append(i['NickName'])for n in roomslist:if(n=="ARM-Trustzone-TEE-ATF"):#填你想要分析的群名字ChatRoom = itchat.update_chatroom(getroom_message(n), detailedMember=True)breakdef ec():print('机器人HH在线退出')def getroom_message(n):#获取群的username,对群成员进行分析需要用到itchat.dump_login_status() # 显示所有的群聊信息,默认是返回保存到通讯录中的群聊RoomList = itchat.search_chatrooms(name=n)if RoomList is None:print("%s group is not found!" % (name))else:return RoomList[0]['UserName']def getchatrooms():#获取群聊列表roomslist = itchat.get_chatrooms()return roomslistdef check_sensitive(message):global flagreplay = ""flag = 1if u'逼' in message:replay = u'含有敏感词汇,请注意言辞'elif u'卧槽' in message:replay = u'含有敏感词汇,请注意言辞'elif 'SB' in message:replay = u'含有敏感词汇,请注意言辞'elif 'sb' in message:replay = u'含有敏感词汇,请注意言辞'elif u'傻' in message:replay = u'含有敏感词汇,请注意言辞'elif u'草' in message:replay = u'含有敏感词汇,请注意言辞'elif u'妈' in message:replay = u'含有敏感词汇,请注意言辞'elif u'MD' in message:replay = u'含有敏感词汇,请注意言辞'elif u'辣鸡' in message:replay = u'含有敏感词汇,请注意言辞'elif u'垃圾' in message:replay = u'含有敏感词汇,请注意言辞'else:flag = 0return replay@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING, PICTURE, RECORDING, ATTACHMENT, VIDEO], isGroupChat=True)
def group_reply_text(msg):global flagglobal ChatRoomglobal tulingglobal daily_countprint("group_reply_text enter")message = msg['Text']    for i in ChatRoom['MemberList']:if msg['ActualNickName'] == i['NickName']:if i['Sex'] == 2:print("There's a girl")itchat.send("Hint : There is a girl appearing", msg['FromUserName'])replay = check_sensitive(message)if flag == 1:itchat.send(replay, msg['FromUserName'])returnif 'HH_rebot' not in message:returnif tuling == 1:replay = auto_chat(msg['Content'])# 用api得到回复内容itchat.send(replay, msg['FromUserName'])daily_count = daily_count +1if daily_count >= 99:itchat.send("[进化版HH 下线了] -- Sorry, 我今天聊的太多了,要去休息了!", g['UserName'])itchat.send("[机器人HH上线] -- Hello,进化版HH哥哥去睡觉了,接下来你有什么问题,我可以帮着回答, 但记得要艾特我哦!!", g['UserName'])tuling = 0;returnflag = 0if u'干什么' in message:replay = u'在忙呢'elif u'生气' in message:replay = u'生气对身体不好'elif u'?' in  message:replay = u'哈哈,我也不知道'elif u'不理你' in message:replay = u'乖,忙完给你买糖吃'elif u'涛' in message:replay = u'他是我主人'elif u'厉害' in message:replay = u'不不不,辣鸡一个'elif u'你好' in message:replay = u'你好哇'elif u'好吧' in message:replay = u'再见'elif u'博客' in message:replay = u'您是想看群主博客吗,可参考链接:\n https://blog.csdn.net/weixin_42135087/article/details/107037145'elif u'视频' in message:replay = u'您是想看群主哔哩哔哩吗,可参考链接:\n https://space.bilibili.com/482877928'elif u'你是谁' in message:replay = u'我是我们群的机器人啊'elif u'名字' in message:replay = u'你不会点开我的头像查看吗'elif u'叫什么' in message:replay = u'我叫HH_rebot'elif u'岁' in message:replay = u'年龄是我的隐私,不要调戏人家好不'else:flag = 1if flag == 1:replay = u'对不起,我还不能理解您说的什么。正在进化中....'itchat.send(replay, msg['FromUserName'])@itchat.msg_register('Text')
def text_reply(msg):message = msg['Text']print("11111111111111111111111:" + msg['FromUserName'])replay = u'[机器人自动回复]呵呵,您继续吹!'if u'干什么' in message:replay = u'在忙呢'elif u'逼' in message:replay = u'含有敏感词汇,请注意言辞'elif u'生气' in message:replay = u'生气对身体不好'elif u'?' in  message:replay = u'哈哈,我也不知道'elif u'不理你' in message:replay = u'乖,忙完给你买糖吃'elif u'涛' in message:replay = u'他是我主人'elif u'厉害' in message:replay = u'不不不,辣鸡一个'elif u'你好' in message:replay = u'你好哇'elif u'好吧' in message:replay = u'再见'#itchat.send("test",toUserName=msg['FromUserName'])return replayitchat.auto_login(loginCallback=lc, exitCallback=ec)
itchat.run()

在这里插入图片描述

参考
1、使用图灵机器人和itchat实现微信自动回复


http://chatgpt.dhexx.cn/article/2McgdDLC.shtml

相关文章

Python开发入门(三) | itchat实现微信机器人

前言: 如今微信已经成为了个人社交的很大一部分,无论生活,学习,还是工作,我们的社交已经离开不了微信~~ 接下来来了解itchat~~ itchat是一个开源的微信个人号api接口,通过使用python调用微信实现简单的微信机器人。 使用不到三十行的代码,你就…

再也不见,Itchat!

前言 本来想做一个利用微信自动回复的项目,查了很多有关这方面的资料。一开始,我百度搜索到的内容大多都是关于Itchat的。Itchat代码简单,也很容易上手。很轻松就写出了自己的demo。 Itchat 项目的介绍官方介绍如下: 项目介绍&a…

《伤寒杂病论》序——张仲景

后世医家孙思邈有《大医精诚》 张湛曰:夫经方之难精,由来尚矣。今病有内同而外异,亦有内异而外同,故五脏六腑之盈虚,血脉荣卫之通塞,固非耳目之所察,必先诊候以审之。 而寸口关尺有浮沉弦紧之乱…

2022年广西医院三基考试中医学综合训练题及答案

题库来源:优题宝公众号 2022年广西医院三基考试中医学综合训练题及答案,根据最新中医学大纲与历年真题汇总编写,包含中医学常考重点题型与知识点,有助于考生复习备考医院三基考试,取得好成绩。 1、 望诊面部呈青色时对…

【中医学】5 诊法

【第五章 诊法】 诊法,是中医诊察和收集病情资料的基本方法,它包括望、闻、问、切、四方面内容,故又称“四诊”。 通过“四诊”所收集到的临床资料,尤其是各种症状,是判断病种、辨别证候的主要依据。《难经六十一难》说:“望而知之谓之神,闻而知之谓之圣,问…

中医经络、睡眠

-拉足背 一位老中医的宝贵养生经验:把足背拉一拉,等于拉开4条经络,比经络按摩还有功效,为什么,看完下面的文章就明白了。 中医认为,经络决定人体健康,一旦经络出现堵塞,人体就会出现…

机器学习:基于Apriori算法对中医病症辩证关联规则分析

系列文章目录 作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习…

运动神经元中医认为?

运动神经元是一组散发或遗传的神经变性病。主要累及运动神经元,病程进展而死亡。该病选择性地损害皮质、脑干、脊髓的上和(或)下运动神经元,损害随意运动,出现不同组合的肌无力、萎缩,延髓麻痹和锥体束征。病理损害不同&#xff0…

每日一问-ChapGPT-20230416-中医基础-经络

文章目录 每日一问-ChapGPT系列起因每日一问-ChapGPT-20230416-中医基础-经络人体的经络有哪些,有什么规律,怎么记忆经络拓展-五运六气1# 五腧穴 与五运六气架构2# 五运六气 就在我们的经络中3#五运六气与子午流注 当日总结 每日一问-ChapGPT系列起因 近…

如何查看idea激活码的有效期

首先要在导航栏找到Help 点击选择Register(可以重新输入激活码)或者About(可以查看激活到期时间以及版本信息)即可 想要了解更多idea相关资讯,扫码关注公众号,欢迎大家一块交流学习。

Intellij IDEA 的激活方法

版本 2018.1.2 补丁下载:https://pan.baidu.com/s/1ydh2qQCLON4m0Lzk95ludA 版本 2018.3 补丁下载:http://idea.lanyus.com/jar/JetbrainsIdesCrack-3.4-release-enc.jar 将下载的文件放到安装IDEA路径的bin目录下 编辑 idea.exe.vmoptions 和 idea64…

IntelliJ IDEA Ultimate 安装激活

安装 先去官网 IntelliJ看一看,有两个版本: Community免费版可用于开发简单的J2SE项目,但对于J2EE,JS等就力不足了。Ultimate 版呢又是老套的30天试用,那怎么办呢?选择Community?我的回答是当然…

IDEA的使用:4.IntelliJ IDEA的激活

双击打开IDEA,如果是首次启动,会弹出如下的对话框: 如图所示,选择不导入已有的设置。 接着来到激活窗口: 接下来详细讲讲激活的方法。 对于2017版本的IDEA,可以尝试如下两种方法进行激活: 1.…

mac 中idea激活Jrebel

文章目录 mac 中idea激活Jrebel第一步:首先在idea中下载jrebel插件第二步:搭建服务器第三步:idea中激活jrebel mac 中idea激活Jrebel 第一步:首先在idea中下载jrebel插件 安装完成之后重新启动idea 第二步:搭建服务器…

Mac 安装IDEA以及激活方法

首先需要下载IDEA,选择适合自己的版本,这里是安装Mac版本,后缀名是.dmg的文件,下载好后,在路径:访达->下载,可以看到下载好的文件。 双击文件即可完成安装,安装过程中可能需要输…

[Intellij IDEA] 通过学生认证免费激活IDEA

IDEA是当前Java编程的热门编译器,但这是一款收费软件,它的售价真的很贵,而且30天的试用期对希望使用IDEA进行Java学习的同学来讲是远远不够的。但好在JetBrains为高校学生提供了学生认证以免费使用JetBrains全家桶,虽然每年都要进…

IntelliJ IDEA 2021 激活 实测OK 2022/2/24

IDEA 2021.3 安装教程_空-白_格的博客-CSDN博客_重装idea直接在idea下载最新的版本:IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains安装包下载后,安装直接下一步,下一步,完成。安装完了之后,不用急…

idea注册码获取方法

1、找到hosts文件(C:\Windows\System32\drivers\etc) 2、打开hosts文件,讲 0.0.0.0 account.jetbrains.com 添加到文件的末尾; 3、进入 http://idea.lanyus.com/ ,点获取注册码,拷贝注册码; 4、打开IDEA,点击用注册…

2018IDEA注册码

好久不用IDEA了,最近由于项目需要才吧IDEA重新拿起来,没想到小编打开的一瞬间惊呆了,过期了,需要注册码,赶紧百度了一波,小编亲测可用,希望大家可以试试。 大家只需要把http://active.chinap…