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.

Source Distribution

mbot-0.0.2.tar.gz (18.2 MB view details)

Uploaded Source

Built Distribution

mbot-0.0.2-py2.py3-none-any.whl (17.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file mbot-0.0.2.tar.gz.

File metadata

  • Download URL: mbot-0.0.2.tar.gz
  • Upload date:
  • Size: 18.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for mbot-0.0.2.tar.gz
Algorithm Hash digest
SHA256 89f1a69cbff19b382df32f68e27ee5333d37312f5046d328b0c751ccb589d672
MD5 143b865685a0f34e7b0e3e5075c863a4
BLAKE2b-256 66e034a54fe5e650e24dc506e26fd02fd4777308edfdf2742b32d7b01b465147

See more details on using hashes here.

File details

Details for the file mbot-0.0.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for mbot-0.0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 77a1306f44ec0d426da1aea77064ce24082b207804db007da4adb2c6c4cc6f69
MD5 cce05e269abad0b50e6a836a9b80cf26
BLAKE2b-256 4ddaa8aff7b30b7403963e302bb09f2a11d0dde60e268a970eb002772ddbeb93

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