Simple and Clean Slack Chatbot
Project description
A Slack chatbot
Status
At the moment, I consider limbo to be feature complete, and the project is in maintenance mode. Every once in a while I come in and update the dependencies.
Contributions will be considered and may be accepted, you may want to email me because I might not notice your PR.
Python Versions
At the moment, this software only officially supports python >=3.10, because the test fixtures fail on older versions of python due to an urllib3 inconsistency I don’t understand.
It should still run on other versions of python, but for the moment they’re unfortunately not tested.
Installation
Clone the repo
Create a bot user if you don’t have one yet, and copy the API Token
export SLACK_TOKEN=“your-api-token”
make run (or make repl for local testing)
Invite Limbo into any channels you want it in, or just message it in #general. Try typing !gif dubstep cat to test it out
I recommend that you always run limbo in a virtualenv so that you are running in a clean environment.
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 sqlite3 database. Defaults to limbo.sqlite3.
--pluginpath, -pp: The path where limbo should look to find its plugins (defaults to /plugins).
--version, -v: Print a version number and exit
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 “limbo/plugins”)
Note that if you are getting an error message about not seeing environment variables, you may be running limbo as sudo, which will clear the environment. Use a virtualenv and always run limbo as a user process!
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.
By default, plugins won’t react to messages from other bots (just messages from humans). Define an on_bot_message function to handle bot messages too. See the example plugins for an easy way to define these functions.
These are the current default plugins:
Contributors
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 limbo-9.1.0.tar.gz
.
File metadata
- Download URL: limbo-9.1.0.tar.gz
- Upload date:
- Size: 39.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8d162964754f1def407a28f1133e1c7203c996b43307173bee6e66a6a77b1e0 |
|
MD5 | d94ea6300e737bb27836f8e8720def6f |
|
BLAKE2b-256 | f51f7ab1a1d31fe801b2e4410b8d8a944c84d01852aadb6565fd0e0d8cebf149 |
File details
Details for the file limbo-9.1.0-py3-none-any.whl
.
File metadata
- Download URL: limbo-9.1.0-py3-none-any.whl
- Upload date:
- Size: 43.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e889b45b1935ed196c452c7f498e185a4fabd59294d45e81cdbe0169ef25b9e |
|
MD5 | 3709b0016df4ecb229a4127f7966165e |
|
BLAKE2b-256 | a7416f00abe97531524a48d57dc9e8909230791040a67a98e6701e58b6ee1586 |