关于图灵机器人和微信群聊昵称格式修改提示

前段时间由于要管理微信群,基于itchat开发了一个简单的微信机器人

主要功能有:

  1. 图灵机器人功能
  2. 群聊昵称格式修改提示
  3. 消息防撤回功能
  4. 斗图功能

 

 

要开发一个基于itchat的最基本的聊天机器人,在github上作者已经给出基本的操作,本博文只对附加的功能进行说明总结。

确保已经了解itchat的基本操作,先对功能1和功能2进行说明:

1.图灵机器人功能

该功能也是最基础的功能之一,itchat的基础案例也有相关例子。

图灵机器人简单而言就是以一定的规则给图灵的服务器发送数据包,图灵的服务器会以一定的规则给你返回数据包,就可以实现对话了。

首先先要去 图灵机器人 注册一个key,来告诉图灵服务器你有权和他对话

 

以下是代码:

 1 def get_response(msg):
 2     apiUrl = \'http://www.tuling123.com/openapi/api\'
 3     data = {
 4         \'key\'    : KEY,#这里是你申请的key
 5         \'info\'   : msg,
 6         \'userid\' : \'wechat-robot\',
 7     }
 8     try:
 9         r = requests.post(apiUrl, data=data).json()
10         #return r.get(\'text\')
11         code = r[\'code\']
12         if code == 100000:
13             reply = r[\'text\']
14         elif code == 200000:
15             reply = r[\'text\'] + r[\'url\']
16         elif code == 302000:
17             list = r[\'list\']
18             reply = r[\'text\']
19             for i in list:
20                 reply = reply + \'  ,\' + i[\'article\'] + i[\'detailurl\'] + \'\n\'
21         return reply
22     except:
23         return

 

 

2.微信群昵称格式修改提示

首先,先写一个判断函数,用正则表达式匹配你想要的格式。

如果不符合此格式,则返回一条  “ @不符合格式的昵称 请尽快按照如:16-xx-XXX的格式修改备注,谢谢合作”    

‘@%s\u2005’  中的 ‘\u2005’ 是微信@的固定格式

1 def groupNameIsOK(name,msg):
2     str=u\'请尽快按照如:16-xx-XXX的格式修改备注,谢谢合作\'
3     if re.search(ur"\d\d(\-|\-|)\S*(\-|\-|)\S*",name)==None:
4         msg.user.send(u\'@%s\u2005%s\' % (
5             msg.actualNickName, str))

 

返回一条信息肯定要有 @那个昵称不符的吧?那接下来就要找到这个昵称,也是用正则去匹配,然后返回他的昵称

1 def groupPeople(msg):
2     T=re.search("\@\@(.*?)",msg[\'FromUserName\'])
3     if T!=None:
4         return msg[\'ActualNickName\']
5     else:
6         return None

 

最后把它们整合,第二个功能搞定

1     if groupPeople(msg)!=None:
2         msg_from=groupPeople(msg)
3         groupNameIsOK(msg_from,msg)

 

 

 

版权声明:本文为jachin01原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jachin01/p/7215084.html