Skip to main content

Dead simple bot framework.

Project description

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

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)

Uploaded Source

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

Hashes for robo-0.5.6.tar.gz
Algorithm Hash digest
SHA256 21502ef55d3e03aecd04de27c1dd33f6fd7f7d3d886dd7ca49a1b919e59e6444
MD5 2a9cb73b887638e89f78567cee413312
BLAKE2b-256 0b1a37f6a0c6ed30b8af7f3e600dbc95540d03ceb962e4e00180e5f70535ecb8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page