python写的一个聊天机器人怎样把群聊和私聊区别开

好多余_ 2019-03-31 10:50:17
import itchat,time
from itchat.content import *
import requests
import re
KEY = '46653ff2f959407da57e9ada472ce4f0'
ME = '@2df4bb846987e4e401e7da93e4fa09131e4ffc38cdedbb951ae18b74721f769e'
def get_response(msg):
apiUrl = 'http://www.tuling123.com/openapi/api'
data = {
'key' :KEY,
'info' :msg,
'userid':'wechat-robot',
}
try:
r=requests.post(apiUrl,data=data).json()
return "机器人回复:"+r.get('text')
except:
return
@itchat.msg_register([TEXT,MAP,CARD,NOTE,SHARING])
def text_reply(msg):
print(msg['Text'])
defaultReply = 'I received:'+msg['Text']
reply = get_response(msg['Text'])
replymsg = reply or defaultReply
print(replymsg)
return replymsg

@itchat.msg_register([PICTURE,RECORDING,ATTACHMENT,VIDEO])
def download_files(msg):
msg.download(msg.fileName)
typeSymbol = {
PICTURE:'img',
VIDEO:'vid',}.get(msg.type,'fil')
return '@%s@%s'%(typeSymbol,msg.fileName)

@itchat.msg_register([TEXT,MAP,CARD,NOTE,SHARING])
def tuling_reply(msg):
if 'ActualNickName' in msg:
if '#' in msg['Text']:
reply=get_response(re.sub('#','',msg['Text']))
else:
reply=""
else:
reply=get_response(msg['Text'])
return reply

@itchat.msg_register(FRIENDS)
def add_friend(msg):
itchat.add_friend(**msg['Text'])
itchat.send('Nice to meet you!',msg['RecommendInfo']['UserName'])
@itchat.msg_register(TEXT,isGroupChat=True)
def text_reply(msg):
print(msg['Text'])
print("to",msg['ToUserName'])
print("from",msg['FromUserName'])
defaultReply = 'I received:'+msg['Text']
reply = get_response(msg['Text'])
replymsg = reply or defaultReply
print(replymsg)
return replymsg
itchat.auto_login(hotReload=True)
itchat.run(True)



参考了一个办法就是定义群聊的时候前面加#号才会自动回复,但现在的代码不知道哪里出了问题不能实现。。希望大家能不吝赐教,小弟谢过。
...全文
66 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧