#直接贴源码,格式需要调整。
from itchat.content import *
import requests
import json
import itchat
def tuling(info):
#将appkey换成自己的图灵机器人key,利用图灵机器人获取对话内容回复给发送者
appkey = “fb6e29e460dc4f46b5f4cadc7b841402”
url = “http://www.tuling123.com/openapi/api?key=%s&info=%s”%(appkey,info)
req = requests.get(url)
content = req.text
data = json.loads(content)
answer = data[‘text’]
return answer
def group_id(name):
df = itchat.search_chatrooms(name=name)
return df[0][‘UserName’]
# 处理文本类消息
# 包括文本、位置、名片、通知、分享
@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING])
def text_reply(msg):
# msg[‘FromUserName’]就是发送者的ID
# 将AI消息返回给发送者,[AI]:可以去除
itchat.send(‘[AI]:%s’ % tuling(msg[‘Text’]),msg[‘FromUserName’])
# 处理多媒体类消息
# 包括图片、录音、文件、视频
@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])
def download_files(msg):
# msg[‘Text’]是一个文件下载函数
# 传入文件名,将文件下载下来
msg[‘Text’](msg[‘FileName’])
# 把下载好的文件再发回给发送者
return ‘@%[email protected]%s’ % ({‘Picture’: ‘img’, ‘Video’: ‘vid’}.get(msg[‘Type’], ‘fil’), msg[‘FileName’])
# 处理群聊消息
@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING], isGroupChat=True)
def text_reply(msg):
#group_id为群名,可以设置多个。
item = group_id(‘机器人测试’)
if msg[‘isAt’] and msg[‘FromUserName’] == item:
itchat.send(‘@%s\u2005,%s’ % (msg[‘ActualNickName’], tuling(msg[‘Text’])), item)
# 在auto_login()里面提供一个True,即hotReload=True,enableCmdQR=2:输出二维码是以适当比例输出,不会过大。
# 即可保留登陆状态
# 即使程序关闭,一定时间内重新开启也可以不用重新扫码
itchat.auto_login(enableCmdQR=2)
itchat.run()