itchat群机器人的自动画实现

总体功能或思想
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://xiahunao.cn/news/252843.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Python(二十)itchat模块

一、相关概念 itchat :一个开源的微信个人号接口(唯一微信没有查封的),可以实现信息收发、获取好友列表等功能! 二、安装包的相关问题 安装包失败 原因:由于是在虚拟环境进行ssl的模块和python的编译安装,所以移植到…

itchat自动回复

最近打算换新手机——>诺基亚 但是考虑到微信会有人发送消息给我,所以还是得写个脚本自动回复一下别人 所以就有了下面这个脚本,自己的文件助手是控制端,发送on开启回复功能,发送off关闭回复功能 当朋友发微信给你的时候&…

python itchat库_用python【itchat】库获取群聊信息的正确姿势

我在《昆明单车骑行群体分析报告(2019版)》中曾用python的itchat模块抓取了我加入的昆明单车群信息,并做了简要分析。 在持续十来天抓取群数据的时候,我发现一个奇怪现象,就是有一个群神出鬼没,有时候能抓…

灵魂发问

序言 谬论之所以是谬论,因为是没有实际产生作用,每天挂在嘴边的,啊,我要减肥,骗鬼呢,鬼才信。。。灵魂已经枯萎。 学了那么多,记住了几个?认识那么多人,能认识多久&#…

崩坏3服务器维护多久,崩坏35月28日停服维护多久?4.0版本更新内容汇总[图]

崩坏3早已放出消息的4.0版本终于要来了,官方已经发布了更新的公告,将会在5月28日的时候停服,到时候玩家就不能登游戏了,那么本次更新的具体时间是什么时候?还有要持续多久?又有什么新的内容上线&#xff1f…

我的灵魂在哪里?

点击↑上方↑蓝色“编了个程”关注我~ 这是Yasin的第 81 篇原创文章 写在前面 很长一段时间以来,我的脑子里都会偶尔冒出一些问题:我是谁?这个世界是怎么构成的?是真实的吗?上帝存在吗?我为什么会有某某想法…

微信怎么传较大视频?微信怎么传特别大的视频?

微信怎么传较大视频?微信怎么传特别大的视频视频是我们在生活中不可或缺的一部分,随着制作视频的小伙伴越来越多,大家都想把制作好的视频上传到一些平台或传给别人,有时候我们会遇到视频内存过大的问题,今天我给大家介…

视频文件太大怎么发微信朋友?微信怎么发超大或过大的视频文件?

视频文件太大怎么发微信朋友?经常有朋友问我视频太大了怎么压缩,我也找了很多软件,但是都不怎么样好用,小编今天给小伙伴们介绍一个简单的方法视频压缩软件,我在这里介绍一个简单的方法来压缩视频体积: 搜索…

微信传送文件会经过服务器吗,微信可以传送大文件了

今天下午,腾讯微信团队宣布微信现已支持向朋友发送高清视频和图片,且不会被压缩,不过有几点注意事项。目前仅支持最大的文件不能超过200M,不像QQ那样可以支持上G的文件传输。暂未向安卓用户开放,仅在IOS系统上线&#…

微信QQ互传文件

一、QQ传到微信 QQ文件传到微信就比较麻烦了,不过我会详细步骤教大家如何操作的。 操作详解: 第一步:打开桌面上的文件管理,进入后,点击内部储存。 示例图 第二步:点击右上角的放大镜按钮,搜…

小程序上传大文件

目的 小程序 API wx.uploadFile 最大上传文件10M,如果需要上传大于 10M 文件,需要分片上传。 可以利用小程序组件 miniprogram-file-uploader 上传; 步骤 引入组件 进入小程序根目录,运行: npm init npm i miniprogr…

微信视频文件过大,无法传输?教你一招快速压缩文件!

我们都知道微信之间可以进行文件传输,但是有一定的限制,那就是文件需要在30M之内才可以,文件大小超过这个数值是不可以的,那么微信中的视频文件该如何传输呢?教你一招,快速解决! 一般来说&…

微信和QQ如何互传文件?其实方法很简单,手把手教你操作

工作中经常需要互传文件,而经常使用的工具就是微信和QQ。按方便快捷来说,肯定QQ互传文件要好一些。不过在工作中,一般都是加微信好友,QQ则是比较私人的,但是QQ处理文件更加方便?那微信和QQ如何互传文件呢&a…

微信文件过大不能上传?学会这几种方法,再大文件也能轻松发

微信文件过大不能上传?学会这几种方法,再大文件也能轻松发 微信已经逐渐成为办公必须,但微信不支持大文件的发送,那么遇到这种情况,很多小伙伴都会选择用QQ,其实微信也能发送大文件,只要方法用…

怎么远程传输大文件?

在日常工作中,我们常常会遇到将电脑的文件,特别是大文件资料进行传输,比如设计稿件,软件开发包,视频素材等等大文件资料进行传输发送。虽然网络通信技术不断发展,对大数据量,高频次,…

电脑与电脑之间快速传输大文件的方法

概览:传输大型文件 多数人是通过U盘或其他储存设备在计算机之间传输文件(象是转移一些500MB或700MB大小图片)。说实话,如果是传输小文件确实是很好用的办法;但如果今天要转移的是大文件(尤其那些占用大量磁…

HTTP 传输大文件的几种方案

在 JavaScript 中如何实现大文件并发上传? 和 JavaScript 中如何实现大文件并行下载?这两篇文章中,阿宝哥介绍了如何利用 async-pool 这个库来优化传输大文件的功能。本文将为大家介绍一下 HTTP 传输大文件的几种方案。不过在介绍具体的方案之…

如何进行大文件传输?

本文首发微信公众号:码上观世界 网络文件传输的应用场景很多,如网络聊天的点对点传输、文件同步网盘的上传与下载、文件上传到分布式文件存储器等,其传输速度主要受限于网络带宽、存储器大小、CPU处理速度以及磁盘读写速度,尤其是…

HTTP传输大文件

一 概述 早期网络传输的文件非常小,只是一些几K大小的文本和图片,随着网络技术的发展,传输的不仅有几M的图片,还有可以达到几G和几十G的视频。 在这些大文件传输的情况下,100M的光纤或者4G移动网络都会因为网络压力导致…

大文件传输有哪些方式可用?大文件传输有哪些方式?

大文件传输有哪些方式可用?大文件传输有哪些方式?互联网时代,速度决定效率。在企业生产过程中需要进行信息数据交换、搬运。这时就需要进行大文件传输。方方面面的行业都要涉及到大文件传输。例如影视行业需要每天进行视频素材的传输&#xf…