• 基于itchat的微信群聊小助手基础开发(一)


    前段时间由于要管理微信群,基于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)

     

  • 相关阅读:
    深度学习时代的图模型,清华发文综述图网络
    深入解析CNN pooling 池化层原理及其作用
    如何理解线性回归中的“回归”,回归到哪里?
    线性回归中“回归”的含义
    深度学习基础——Epoch、Iteration、Batchsize
    手动清空微信PC客户端数据
    Mini-batch 和batch的区别
    Python中绘制场景热力图
    HSV颜色识别-HSV基本颜色分量范围
    Android拨打接听电话自动免提
  • 原文地址:https://www.cnblogs.com/jachin01/p/7215084.html
Copyright © 2020-2023  润新知