A bot that is also a responsive shell
Project description
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
Audit dynamically chat interactions
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
securitybot from the Dropbox team
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file shellbot-17.5.22.tar.gz
.
File metadata
- Download URL: shellbot-17.5.22.tar.gz
- Upload date:
- Size: 114.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea1d2679a885c595b9a31ccffcca95a63e66a0022503cc86519bf27578f0cc44 |
|
MD5 | 6354849df884785044423169f090367a |
|
BLAKE2b-256 | 53c31e71c50cc4b14608ecbbaebdb0de8e9c3495930dbfb37025c4e8811f815c |
File details
Details for the file shellbot-17.5.22-py2.py3-none-any.whl
.
File metadata
- Download URL: shellbot-17.5.22-py2.py3-none-any.whl
- Upload date:
- Size: 59.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf5775f86a32b38ae1b87629022077c6274b623e7d908658b43df200c52f092c |
|
MD5 | 377240c373c839da7fb4b25e895529ea |
|
BLAKE2b-256 | aa064730a6476b8b67e2441d5fc5feff031614c5fda6c2529398b513ee62c63a |