Skip to main content

Yet another Bot implemented in pure Python.

Project description

MBot

https://img.shields.io/pypi/v/mbot.svg https://img.shields.io/travis/michaelkuty/mbot.svg Documentation Status Updates

Yet another Bot implemented in pure Python. Is designed to support multiple backends with global state machine which can store shortcuts for your commands and more. Support user permissions for actions.

Animation

Message Backends

  • Slack
  • MQTT (TODO)
  • RabbitMQ (TODO)

Storage Backends

  • Local file
  • S3 file
  • Support encryption in default
  • DB (TODO)

Middlewares

  • Slack
  • SQL
  • AirflowTrigger
  • Bash
  • Saltstack (pepper client)
  • Joker (say some joke)
  • History (list of your commands, save shortcuts)
  • Help

Features

  • Simple scheduler
  • User roles and permissions
  • Filebased config/state
  • Encrypted storage
  • Connections management
  • S3 storage
  • Dialogs
  • Auto installing of dependencies
  • Dynamic loading

Installation

pip install mbot

Usage

$ mbot run
Slack token: xoxb-46465446310727-654564564564654565456
Starting your BOT...
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): slack.com

Config

$ mbot config
{'core': {'backends': ['slack'],
          'config_path': '/Users/user/Library/Application '
                         'Support/mbot/mbot.conf',
          'data_path': '/Users/user/Library/Application '
                       'Support/mbot/state.db'},
 'logging': {'verbosity': 'INFO'},
 'slack': {'engine': 'mbot.backends.slack.Slack',
           'middlewares': ['mbot.contrib.system.Config',
                           'mbot.contrib.history.history',
                           'mbot.contrib.debug.Debug',
                           'mbot.contrib.bash.Bash',
                           'mbot.contrib.console.MBotConsole',
                           'mbot.contrib.python.Python',
                           'mbot.contrib.joker.Joker',
                           'mbot.contrib.hackernews.HackerNews',
                           'mbot.contrib.scheduler.Scheduler',
                           'mbot.contrib.salt.Salt',
                           'mbot.contrib.connections.Connections',
                           'mbot.contrib.dialogs.Dialogs',
                           'mbot.contrib.airflow.AirflowTrigger',
                           'mbot.contrib.sql.SQL',
                           'mbot.contrib.help.Help'],
           'token': 'xoxb-46465446310727-654564564564654565456'},
 'storage': {'encrypt': True,
             'engine': 'local',
             'fernet_token': 'oMdNGsFou566j4e3SL6cij3HR70D-xIqh58z30B2BAs='}}

Add user to admin group

mbot: users.all()
mbot: users.update("your_user_id", ["admin"], "groups")

TODO

  • Variables, management
  • Support Celery as executor
  • SSH
  • Use appdirs when data-path is not provied

History

0.1.0 (2017-02-09)

  • First release on PyPI.

Project details


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
mbot-0.0.2-py2.py3-none-any.whl (17.9 kB) Copy SHA256 hash SHA256 Wheel 3.5 Feb 12, 2017
mbot-0.0.2.tar.gz (18.2 MB) Copy SHA256 hash SHA256 Source None Feb 12, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page