AFFGT
点滴价值

基于itchat项目写的微信机器人

#直接贴源码,格式需要调整。

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()

赞(0) 打赏
未经允许不得转载:EngineerSharing » 基于itchat项目写的微信机器人

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏