• Python3.6 QQBot 机器人 注册响应函数


    前面的章节,我们已经了解到了 QQBot 服务的搭建跟基础的使用,现在,我们就要使用 QQBot 来实现我们的机器人。

    首先,我们得先注册我们的响应函数,这个函数的功能很简单,只是监听好友给我们发的信息,并给予回复,现在我们看看程序:

    xiaoluo.py文件(这个文件的名字,没有特别的要求,按照自己的喜欢,这个是我随便取的名字,真正项目的时候,建议取名规范点):

     1 # -*- coding: utf-8 -*-
     2 
     3 # onQQMessage :必须的注册函数的函数名称
     4 # bot         :QQBot 对象,提供 List/SendTo/Stop/Restart 等接口
     5 # contact     :QContact 对象,消息的发送者,具有 ctype/qq/uin/nick/mark/card/name 等属性
     6 # member      :QContact 对象,仅当本消息为 群消息或讨论组消息 时有效,代表实际发消息的成员
     7 # content     :str 对象,消息内容
     8 
     9 def onQQMessage(bot, contact, member, content):
    10     if content == "-hello":
    11         bot.SendTo(contact, "你好,我是小罗机器人")
    12     elif content == '-stop':
    13         bot.SendTo(contact, "小罗机器人已关闭")
    14         bot.Stop()

    contact:代表消息发送者,其 ctype 属性可以为 buddy(好友)/ group(群组)/ discuss(讨论组),表示是好友消息、群组消息、讨论组消息。

    member:仅当本消息为群消息或者讨论组消息时有效,代表实际发消息的成员,它的 ctype 属性可以为 group-member / discuss-member,代表群成员 / 讨论组成员对象。如果本消息是好友消息时,则 member = None。

    contact 和 member 都是 QContact 对象,不同类型的 QContact 对象所具有的 属性含义见: qcontact-attr 。注意所有 QContact 对象都是 只读对象 ,只 能读取它的属性,不能设置它的属性,也不能向它添加额外的属性。

    可以调用 QQBot 对象的 SendTo 接口向 QContact 对象发送消息,但要注意: 只可以向 好友 / 群 / 讨论组 发消息, 不可以向 群成员 / 讨论组成员 发送消息  。也就是说,只可以调用 bot.SendTo(contact, 'xxx') , 不可以调用  bot.SendTo(member, 'xxx') 。

    将上边的文件放到 ~/.qqbot-tmp/plugins/ 目录下(这是基于 Linux 服务器的,我的 Windows 的目录是在 C:/Users/Administrator/.qqbot-tmp/plugins/,具体情况根据你的环境来看):

    1 cd ~/.qqbot-tmp/plugins/

    接下来我们就要注册这个响应函数了(我这里的文件是:xiaoluo.py):

    1 qq plug xiaoluo

    这样我们就已经成功的注册了这个响应函数了,接下来我们用另外一个 QQ 号对这个 QQ 号发送 -hello 和 -stop 这两条消息来测试下响应函数是否注册成功。

    如果出现以上界面,那么恭喜你,你的 QQ机器人 已经搭建成功了。接下来,就可以扩展你的机器人性能了。

    注意:

    1、响应函数的函数名称必须是:onQQMessage,函数参数也必须和上面的一致;

    2、要将注册函数的 .py 文件放在一下 ~/.qqbot-tmp/plugins/ 目录下,Windows 则一般是在 C:/用户/Administrator/.qqbot-tmp/plugins/ 这个文件夹下边,具体根据个人的情况而定。

    参考资料:

    git 项目地址:https://github.com/pandolia/qqbot/

  • 相关阅读:
    SynchronousQueue 的联想
    Spring Cache
    CSUOJ 1011 Counting Pixels
    CSUOJ 1973 给自己出题的小X DFS
    CSUOJ 1726 你经历过绝望吗?两次!BFS+优先队列
    CSUOJ 1900 锋芒不露
    CSUOJ 1808 地铁
    CSUOJ 1895 Apache is late again
    CSUOJ 1781 阶乘除法
    CSUOJ 1560 图书管理员的表白方式
  • 原文地址:https://www.cnblogs.com/kafeixiaoluo/p/8435039.html
Copyright © 2020-2023  润新知