Package: limbo
ASlackchatbotStatusAt 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 toemail mebecause I might not notice your PR.InstallationClone the repoCreate a bot userif you
don’t have one yet, and copy the API Tokenexport SLACK_TOKEN=“your-api-token”make run(ormake replfor local testing)Invite Limbo into any channels you want it in, or just message it in
#general. Try typing!gif dubstep catto test it outkitten mittensI recommend that you always run limbo in avirtualenvso 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 exitEnvironment VariablesSLACK_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 assudo, which will
clear the environment. Use a virtualenv and always run limbo as a user
process!CommandsIt’s super easy to add your own commands! Just create a python file in
the plugins directory with anon_messagefunction that returns a
string.You can use the!helpcommand 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 anon_bot_messagefunction to handle
bot messages too. See the example plugins for an easy way to define
these functions.These are the current default plugins:calcemojiflipgifgooglehelpimagemappollstockstockphotoweatherwikiyoutubeDockerHow do I try out Limbo via docker?@PeterGrace maintains a public build of limbo, available from the
docker registry. Executingmake docker_runwill start the
default bot.make docker_stopwill stop the botWhen 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 viamake docker_buildYou’ll then need to start the bot
with your new_image_name, for exampledocker run-d-eSLACK_TOKEN=<your_token>new_image_nameContributors@fsalum@rodvodka@mattfora@dguido@JoeGermuska@MathyV@stopspazzing@noise@drewp@TetraEtc@LivingInSyn@reversegremlin@adamghill@PeterGrace@SkiftCreative@diceone@rnagle@topher200@StewPoll@eSoares@sweinstein89@fenwar@rdimartino