完全简单的机器人框架。

robo的Python项目详细描述


https://travis-ci.org/heavenshell/py-robo.png?branch=master

完全简单的bot框架,其灵感来自ruby的ruboty

为什么要重新发明轮子

我喜欢python,不擅长node.js(hubot)、ruby(ruboty)。

Err是可插入的,但对我来说太复杂了。

brutal也是可插入的,但我不习惯编写配置文件。

所以我重新发明了轮子。

架构

消息流。

                            +--[handler a]--+
                            |               |
[chat service]-->[adapter]--+--[handler b]--+--[adapter]-->[chat service]
                            |               |
                            +--[handler c]--+

适配器

适配器是聊天服务接收消息和向聊天服务发送消息的接口。

机器人包括两个适配器。

处理程序

处理程序为您的机器人提供各种行为。

fromrobo.decoratorsimportcmdclassPing(object):@cmd(regex=r'^ping',description='')defpong(self,message,**kwargs):return'pong'

此处理程序匹配消息ping并返回pong到聊天服务。

引导

example/main.py是bootstrapingrobo的一个例子。

defmain(args=None):#: `name` is bot's name.#: This arg is trigger of handler.robot=Robot(name=args.name,logger=logger)#: `register_default_handlers()` register default handlers.#: Default handlers are `help`, `ping`, `echo`.robot.register_default_handlers()#: Load given adapter name.robot.load_adapter(args.adapter)#: Run robotrobot.run(args.adapter)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
HTTP标头的java InputStream未终止   java测试SpringWebListener   具有定义的替换编号Java的regex ReplaceAll   在java中使用contains()方法   java在选择查询中使用JoinColumn字段   具有用户的java Start-stop demon不是以给定用户启动   java glBufferData生成GL\u无效\u操作   java中循环代码的循环   Java位无符号移位(>>>>)会产生奇怪的结果   java HQL使用点分隔符从select获取结果   条纹、弹簧、玩耍(或?):使用哪种高性能Java框架?   广播接收机中的java停止服务   java回收器视图占据整个屏幕。不在上面显示我的UI元素   java使MySQL查询更快   java MappedByteBuffer查询   java递归算法问题