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)
- [@diceone](https://github.com/diceone)
=====
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)
- [@diceone](https://github.com/diceone)
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
limbo-5.3.0.tar.gz
(35.3 kB
view hashes)