Skip to main content

A bot that is also a responsive shell

Project description

https://readthedocs.org/projects/shellbot-for-cisco-spark/badge/?version=latest https://img.shields.io/pypi/v/shellbot.svg https://img.shields.io/travis/bernard357/shellbot.svg https://img.shields.io/pypi/pyversions/shellbot.svg?maxAge=2592000 https://img.shields.io/badge/License-Apache%202.0-blue.svg

Fast, simple and lightweight micro bot-framework for Python.

Features

  • Comprehensive set of examples is included

  • Create powerful state machines for mastering bot-human interactions

  • Create the exact set of shell commands needed for your application

  • Either respond interactively, or pipeline long-lasting commands

  • Native support of Cisco Spark

  • Local disconnected mode of operation for development and tests

  • Bottle is included for easy interactions over the web

  • Test coverage exceeds 90%

  • Made for python 2.7 and for python 3.x

  • Documentation: Shellbot at ReadTheDocs

  • Python package: Shellbot at PyPi

  • Source code: Shellbot at GitHub

  • Free software: Apache License (2.0)

The Batman example

from shellbot import ShellBot, Context, Command

# create a bot and load commands
#

class Batman(Command):
    keyword = 'whoareyou'
    information_message = u"I'm Batman!"

class Batcave(Command):
    keyword = 'cave'
    information_message = u"The Batcave is silent..."

    def execute(self, arguments=None):
        if arguments:
            self.bot.say(u"The Batcave echoes, '{0}'".format(arguments))
        else:
            self.bot.say(self.information_message)

class Batsignal(Command):
    keyword = 'signal'
    information_message = u"NANA NANA NANA NANA"
    information_file = "https://upload.wikimedia.org/wikipedia/en/c/c6/Bat-signal_1989_film.jpg"

    def execute(self, arguments=None):
        self.bot.say(self.information_message,
                     file=self.information_file)

class Batsuicide(Command):
    keyword = 'suicide'
    information_message = u"Go back to Hell"
    is_interactive = False

    def execute(self, arguments=None):
        time.sleep(3)
        self.bot.say(self.information_message)
        self.bot.stop()


bot = ShellBot(commands=[Batman(), Batcave(), Batsignal(), Batsuicide()])

# load configuration
#
os.environ['BOT_ON_START'] = 'You can now chat with Batman'
os.environ['BOT_ON_STOP'] = 'Batman is now quitting the room, bye'
os.environ['CHAT_ROOM_TITLE'] = 'Chat with Batman'
bot.configure()

# initialise a chat room
#
bot.bond(reset=True)

# run the bot
#
bot.run()

# delete the chat room when the bot is stopped
#
bot.dispose()

Quick installation

To install the shellbot package, type:

$ pip install shellbot

Or, if you prefer to download the full project including examples and documentation, and install it, do the following:

$ git clone https://github.com/bernard357/shellbot.git
$ cd shellbot
$ pip install -e .

Credits

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shellbot-17.5.16.tar.gz (107.7 kB view details)

Uploaded Source

Built Distribution

shellbot-17.5.16-py2.py3-none-any.whl (55.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file shellbot-17.5.16.tar.gz.

File metadata

  • Download URL: shellbot-17.5.16.tar.gz
  • Upload date:
  • Size: 107.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for shellbot-17.5.16.tar.gz
Algorithm Hash digest
SHA256 bf81ad1471bb80181f5cd6899400773710a1de67d29ab5fe2f601fd4800b85cd
MD5 379ec926fa37af11b1bac412daaa2a3f
BLAKE2b-256 a69fc56a5461eb1ea8d49bd21572faa36fa2073680b254955f4b62a0ecef150f

See more details on using hashes here.

File details

Details for the file shellbot-17.5.16-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for shellbot-17.5.16-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c4998b16944d581b96c34ed35db40f64b4a44eeccece03c2250c87a4e6bff7ea
MD5 2216a2ec684cf51090d8b383f95fb58a
BLAKE2b-256 8eb5c9cd21ccc5b05cf3264ba010aa9bdfbc80db89ab7407698a25e27be4a20a

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