Dead simple bot framework which is inspired by Ruby's ruboty.
I Love Python and I'm not good at Node.js(hubot), Ruby(Ruboty).
Err is pluggable but it's too complex for me.
brutal is also pluggable but I don't wont to write config file.
So I reinvent the wheel.
Message flow.
+--[handler a]--+
| |
[chat service]-->[adapter]--+--[handler b]--+--[adapter]-->[chat service]
| |
+--[handler c]--+
Adapter is interface of chat services receive message and send message to chat service.
Robo includes two adapters.
Handler provides various behaviors to your robot.
from robo.decorators import cmd
class Ping(object):
@cmd(regex=r'^ping', description='')
def pong(self, message, **kwargs):
return 'pong'
This handler matches message ping and return pong to chat service.
example/main.py is a example of bootstraping robo.
def main(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 robot
robot.run(args.adapter)