Skip to main content

Simple and Clean Slack Chatbot

Project description

Limbo
=====

A `Slack <https://slack.com/>`__ chatbot
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. figure:: https://travis-ci.org/llimllib/limbo.svg?branch=master
:alt:

Installation
------------

1. Clone the repo
2. `Create a bot user <https://my.slack.com/services/new/bot>`__ if you
don't have one yet, and copy the API Token
3. export SLACK\_TOKEN="your-api-token"
4. ``make run`` (or ``make repl`` for local testing)
5. Invite Limbo into any channels you want it in, or just message it in
#general. Try typing ``!gif dubstep cat`` to test it out

.. figure:: http://i.imgur.com/xhmD6QO.png
:alt: kitten mittens

kitten mittens
Command Arguments
-----------------

- --test, -t: Enter command line mode to enter a limbo repl.
- --hook: Specify the hook to test. (Defaults to "message").
- -c: Run a single command.
- --database, -d: Where to store the limbo tinydb database. Defaults to
log.json.
- --pluginpath, -pp: The path where limbo should look to find its
plugins (defaults to /plugins).

Environment Variables
---------------------

- SLACK\_TOKEN: Slack API token. Required.
- LIMBO\_LOGLEVEL: The logging level. Defaults to INFO.
- LIMBO\_LOGFILE: File to log info to. Defaults to none.
- LIMBO\_LOGFORMAT: Format for log messages. Defaults to
``%(asctime)s:%(levelname)s:%(name)s:%(message)s``.
- LIMBO\_PLUGINS: Comma-delimited string of plugins to load. Defaults
to loading all plugins in the plugins directory (which defaults to
"/plugins")

Commands
--------

It's super easy to add your own commands! Just create a python file in
the plugins directory with an ``on_message`` function that returns a
string.

You can use the ``!help`` command to print out all available commands
and a brief help message about them. ``!help <plugin>`` will return just
the help for a particular plugin.

These are the current default plugins:

- `calc <https://github.com/llimllib/limbo/wiki/Calc-Plugin>`__
- `emoji <https://github.com/llimllib/limbo/wiki/Emoji-Plugin>`__
- `flip <https://github.com/llimllib/limbo/wiki/Flip-Plugin>`__
- `gif <https://github.com/llimllib/limbo/wiki/Gif-Plugin>`__
- `google <https://github.com/llimllib/limbo/wiki/Google-Plugin>`__
- `help <https://github.com/llimllib/limbo/wiki/Help-Plugin>`__
- `image <https://github.com/llimllib/limbo/wiki/Image-Plugin>`__
- `map <https://github.com/llimllib/limbo/wiki/Map-Plugin>`__
- `stock <https://github.com/llimllib/limbo/wiki/Stock-Plugin>`__
- `stockphoto <https://github.com/llimllib/limbo/wiki/Stock-Photo-Plugin>`__
- `urban <https://github.com/llimllib/limbo/wiki/Urban>`__
- `weather <https://github.com/llimllib/limbo/wiki/Weather-Plugin>`__
- `wiki <https://github.com/llimllib/limbo/wiki/Wiki-Plugin>`__
- `youtube <https://github.com/llimllib/limbo/wiki/Youtube-Plugin>`__

Docker
------

- How do I try out Limbo via docker?

- @PeterGrace maintains a public build of limbo, available from the
docker registry. Executing ``make docker_run`` will start the
default bot.
- ``make docker_stop`` will stop the bot

- When I start the docker container, I see an error about unable to
source limbo.env. Is this a problem?

- No. The limbo.env file only exists when using Kubernetes with the
included opaque secret recipe for storing your environment
variables.

- I'd like to develop plugins for Limbo, but would still like to use
Docker to run the bot. Is there a quick way to add plugins to the
bot?

- Yes! Use the included Dockerfile.dev as a template, and simply
build via ``make docker_build`` You'll then need to start the bot
with your new\_image\_name, for example
``docker run -d -e SLACK_TOKEN=<your_token> new_image_name``

Contributors
------------

- [@fsalum](https://github.com/fsalum)
- [@rodvodka](https://github.com/rodvodka)
- [@mattfora](https://github.com/mattfora)
- [@dguido](https://github.com/dguido)
- [@JoeGermuska](https://github.com/JoeGermuska)
- [@MathyV](https://github.com/MathyV)
- [@stopspazzing](https://github.com/stopspazzing)
- [@noise](https://github.com/noise)
- [@drewp](https://github.com/drewp)
- [@TetraEtc](https://github.com/TetraEtc)
- [@LivingInSyn](https://github.com/LivingInSyn)
- [@reversegremlin](https://github.com/reversegremlin)
- [@adamghill](https://github.com/adamghill)
- [@PeterGrace](https://github.com/PeterGrace)
- [@SkiftCreative](https://github.com/SkiftCreative)

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

limbo-4.2.0.tar.gz (29.1 kB view hashes)

Uploaded Source

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