Dead simple bot framework.
Project description
Dead simple bot framework which is inspired by Ruby’s ruboty.
Why reinvent the wheel
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.
Architecture
Message flow.
+--[handler a]--+
| |
[chat service]-->[adapter]--+--[handler b]--+--[adapter]-->[chat service]
| |
+--[handler c]--+
Adapter
Adapter is interface of chat services receive message and send message to chat service.
Robo includes two adapters.
Handler
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.
Bootstrap
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)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
robo-0.5.6.tar.gz
(10.6 kB
view details)
File details
Details for the file robo-0.5.6.tar.gz
.
File metadata
- Download URL: robo-0.5.6.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21502ef55d3e03aecd04de27c1dd33f6fd7f7d3d886dd7ca49a1b919e59e6444 |
|
MD5 | 2a9cb73b887638e89f78567cee413312 |
|
BLAKE2b-256 | 0b1a37f6a0c6ed30b8af7f3e600dbc95540d03ceb962e4e00180e5f70535ecb8 |