limbo


Namelimbo JSON
Version 9.1.0 PyPI version JSON
download
home_pagehttps://github.com/llimllib/limbo
SummarySimple and Clean Slack Chatbot
upload_time2024-03-09 23:26:32
maintainer
docs_urlNone
authorBill Mill
requires_python>=3.4
licenseMIT
keywords slack chatbot chat limbo
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Limbo
=====

A `Slack <https://slack.com/>`__ 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 <bill@billmill.org>`__ 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
------------

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

I recommend that you always run limbo in a
`virtualenv <http://docs.python-guide.org/en/latest/dev/virtualenvs/>`__
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:

-  `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>`__
-  `poll <https://github.com/llimllib/limbo/wiki/Poll-Plugin>`__
-  `weather <https://github.com/llimllib/limbo/wiki/Weather-Plugin>`__
-  `wiki <https://github.com/llimllib/limbo/wiki/Wiki-Plugin>`__

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>`__
-  `@rnagle <https://github.com/rnagle>`__
-  `@topher200 <https://github.com/topher200>`__
-  `@StewPoll <https://github.com/StewPoll>`__
-  `@eSoares <https://github.com/eSoares>`__
-  `@sweinstein89 <https://github.com/sweinstein89>`__
-  `@fenwar <https://github.com/fenwar>`__
-  `@rdimartino <https://github.com/rdimartino>`__

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/llimllib/limbo",
    "name": "limbo",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.4",
    "maintainer_email": "",
    "keywords": "slack chatbot chat limbo",
    "author": "Bill Mill",
    "author_email": "bill@billmill.org",
    "download_url": "https://files.pythonhosted.org/packages/f5/1f/7ab1a1d31fe801b2e4410b8d8a944c84d01852aadb6565fd0e0d8cebf149/limbo-9.1.0.tar.gz",
    "platform": null,
    "description": "Limbo\n=====\n\nA `Slack <https://slack.com/>`__ chatbot\n----------------------------------------\n\nStatus\n------\n\nAt the moment, I consider limbo to be feature complete, and the project\nis in maintenance mode. Every once in a while I come in and update the\ndependencies.\n\nContributions will be considered and may be accepted, you may want to\n`email me <bill@billmill.org>`__ because I might not notice your PR.\n\nPython Versions\n---------------\n\nAt the moment, this software only officially supports python >=3.10,\nbecause the test fixtures fail on older versions of python due to an\nurllib3 inconsistency I don\u2019t understand.\n\nIt should still run on other versions of python, but for the moment\nthey\u2019re unfortunately not tested.\n\nInstallation\n------------\n\n1. Clone the repo\n2. `Create a bot user <https://my.slack.com/services/new/bot>`__ if you\n   don\u2019t have one yet, and copy the API Token\n3. export SLACK_TOKEN=\u201cyour-api-token\u201d\n4. ``make run`` (or ``make repl`` for local testing)\n5. Invite Limbo into any channels you want it in, or just message it in\n   #general. Try typing ``!gif dubstep cat`` to test it out\n\n.. figure:: http://i.imgur.com/xhmD6QO.png\n   :alt: kitten mittens\n\n   kitten mittens\n\nI recommend that you always run limbo in a\n`virtualenv <http://docs.python-guide.org/en/latest/dev/virtualenvs/>`__\nso that you are running in a clean environment.\n\nCommand Arguments\n-----------------\n\n-  ``--test``, ``-t``: Enter command line mode to enter a limbo repl.\n-  ``--hook``: Specify the hook to test. (Defaults to \u201cmessage\u201d).\n-  ``-c``: Run a single command.\n-  ``--database``, ``-d``: Where to store the limbo sqlite3 database.\n   Defaults to limbo.sqlite3.\n-  ``--pluginpath``, ``-pp``: The path where limbo should look to find\n   its plugins (defaults to /plugins).\n-  ``--version``, ``-v``: Print a version number and exit\n\nEnvironment Variables\n---------------------\n\n-  SLACK_TOKEN: Slack API token. Required.\n-  LIMBO_LOGLEVEL: The logging level. Defaults to INFO.\n-  LIMBO_LOGFILE: File to log info to. Defaults to none.\n-  LIMBO_LOGFORMAT: Format for log messages. Defaults to\n   ``%(asctime)s:%(levelname)s:%(name)s:%(message)s``.\n-  LIMBO_PLUGINS: Comma-delimited string of plugins to load. Defaults to\n   loading all plugins in the plugins directory (which defaults to\n   \u201climbo/plugins\u201d)\n\nNote that if you are getting an error message about not seeing\nenvironment variables, you may be running limbo as ``sudo``, which will\nclear the environment. Use a virtualenv and always run limbo as a user\nprocess!\n\nCommands\n--------\n\nIt\u2019s super easy to add your own commands! Just create a python file in\nthe plugins directory with an ``on_message`` function that returns a\nstring.\n\nYou can use the ``!help`` command to print out all available commands\nand a brief help message about them. ``!help <plugin>`` will return just\nthe help for a particular plugin.\n\nBy default, plugins won\u2019t react to messages from other bots (just\nmessages from humans). Define an ``on_bot_message`` function to handle\nbot messages too. See the example plugins for an easy way to define\nthese functions.\n\nThese are the current default plugins:\n\n-  `emoji <https://github.com/llimllib/limbo/wiki/Emoji-Plugin>`__\n-  `flip <https://github.com/llimllib/limbo/wiki/Flip-Plugin>`__\n-  `gif <https://github.com/llimllib/limbo/wiki/Gif-Plugin>`__\n-  `google <https://github.com/llimllib/limbo/wiki/Google-Plugin>`__\n-  `help <https://github.com/llimllib/limbo/wiki/Help-Plugin>`__\n-  `image <https://github.com/llimllib/limbo/wiki/Image-Plugin>`__\n-  `map <https://github.com/llimllib/limbo/wiki/Map-Plugin>`__\n-  `poll <https://github.com/llimllib/limbo/wiki/Poll-Plugin>`__\n-  `weather <https://github.com/llimllib/limbo/wiki/Weather-Plugin>`__\n-  `wiki <https://github.com/llimllib/limbo/wiki/Wiki-Plugin>`__\n\nContributors\n------------\n\n-  `@fsalum <https://github.com/fsalum>`__\n-  `@rodvodka <https://github.com/rodvodka>`__\n-  `@mattfora <https://github.com/mattfora>`__\n-  `@dguido <https://github.com/dguido>`__\n-  `@JoeGermuska <https://github.com/JoeGermuska>`__\n-  `@MathyV <https://github.com/MathyV>`__\n-  `@stopspazzing <https://github.com/stopspazzing>`__\n-  `@noise <https://github.com/noise>`__\n-  `@drewp <https://github.com/drewp>`__\n-  `@TetraEtc <https://github.com/TetraEtc>`__\n-  `@LivingInSyn <https://github.com/LivingInSyn>`__\n-  `@reversegremlin <https://github.com/reversegremlin>`__\n-  `@adamghill <https://github.com/adamghill>`__\n-  `@PeterGrace <https://github.com/PeterGrace>`__\n-  `@SkiftCreative <https://github.com/SkiftCreative>`__\n-  `@diceone <https://github.com/diceone>`__\n-  `@rnagle <https://github.com/rnagle>`__\n-  `@topher200 <https://github.com/topher200>`__\n-  `@StewPoll <https://github.com/StewPoll>`__\n-  `@eSoares <https://github.com/eSoares>`__\n-  `@sweinstein89 <https://github.com/sweinstein89>`__\n-  `@fenwar <https://github.com/fenwar>`__\n-  `@rdimartino <https://github.com/rdimartino>`__\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Simple and Clean Slack Chatbot",
    "version": "9.1.0",
    "project_urls": {
        "Homepage": "https://github.com/llimllib/limbo"
    },
    "split_keywords": [
        "slack",
        "chatbot",
        "chat",
        "limbo"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a7416f00abe97531524a48d57dc9e8909230791040a67a98e6701e58b6ee1586",
                "md5": "3709b0016df4ecb229a4127f7966165e",
                "sha256": "0e889b45b1935ed196c452c7f498e185a4fabd59294d45e81cdbe0169ef25b9e"
            },
            "downloads": -1,
            "filename": "limbo-9.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3709b0016df4ecb229a4127f7966165e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.4",
            "size": 42958,
            "upload_time": "2024-03-09T23:26:30",
            "upload_time_iso_8601": "2024-03-09T23:26:30.555522Z",
            "url": "https://files.pythonhosted.org/packages/a7/41/6f00abe97531524a48d57dc9e8909230791040a67a98e6701e58b6ee1586/limbo-9.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f51f7ab1a1d31fe801b2e4410b8d8a944c84d01852aadb6565fd0e0d8cebf149",
                "md5": "d94ea6300e737bb27836f8e8720def6f",
                "sha256": "f8d162964754f1def407a28f1133e1c7203c996b43307173bee6e66a6a77b1e0"
            },
            "downloads": -1,
            "filename": "limbo-9.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "d94ea6300e737bb27836f8e8720def6f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.4",
            "size": 39727,
            "upload_time": "2024-03-09T23:26:32",
            "upload_time_iso_8601": "2024-03-09T23:26:32.816577Z",
            "url": "https://files.pythonhosted.org/packages/f5/1f/7ab1a1d31fe801b2e4410b8d8a944c84d01852aadb6565fd0e0d8cebf149/limbo-9.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-09 23:26:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "llimllib",
    "github_project": "limbo",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "limbo"
}
        
Elapsed time: 0.20431s