limbo

A simple, clean, easy to modify Slack chatbot

https://github.com/llimllib/limbo

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.9%) to scientific vocabulary

Keywords

chatbot docker python slack
Last synced: 5 months ago · JSON representation

Repository

A simple, clean, easy to modify Slack chatbot

Basic Info
  • Host: GitHub
  • Owner: llimllib
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 9.97 MB
Statistics
  • Stars: 406
  • Watchers: 26
  • Forks: 159
  • Open Issues: 45
  • Releases: 1
Topics
chatbot docker python slack
Created almost 12 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License

README.md

Limbo

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

  1. Clone the repo
  2. Create a bot user 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

kitten mittens

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

Owner

  • Name: Bill Mill
  • Login: llimllib
  • Kind: user
  • Location: Portland, Maine

GitHub Events

Total
  • Watch event: 4
  • Issue comment event: 4
  • Pull request event: 1
Last Year
  • Watch event: 4
  • Issue comment event: 4
  • Pull request event: 1

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 401
  • Total Committers: 19
  • Avg Commits per committer: 21.105
  • Development Distribution Score (DDS): 0.085
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Bill Mill b****l@b****g 367
Topher Brown t****0@g****m 6
TetraEtc a****r@t****m 4
Adam Hill a****l@y****m 3
Rodney Hawkins r****s@g****m 3
Brandon Cruz 5****3 2
bret barker b****t@a****t 2
Matt Van Zant m****t@p****m 2
Mark Olson t****n@g****m 2
Bill Mill b****l@b****g 1
Peter Grace p****e@s****m 1
Felipe Salum f****m@g****m 1
Hugo h****k 1
Jeremy Zimm s****g 1
Joe Germuska j****e@g****m 1
Paul Fenney f****y@g****m 1
Peter Grace p****e@g****m 1
Shawn McElroy s****n@s****o 1
eSoares e****s 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 29
  • Total pull requests: 76
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 2 months
  • Total issue authors: 10
  • Total pull request authors: 11
  • Average comments per issue: 2.17
  • Average comments per pull request: 0.58
  • Merged pull requests: 51
  • Bot issues: 0
  • Bot pull requests: 3
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • llimllib (12)
  • topher200 (3)
  • StewPoll (3)
  • dannychapman (3)
  • eSoares (2)
  • appleshampooid (1)
  • erinrep (1)
  • Landsil (1)
  • tvernick (1)
  • davidchaiken (1)
Pull Request Authors
  • llimllib (47)
  • eSoares (12)
  • topher200 (5)
  • brandoncruz3 (3)
  • dependabot[bot] (3)
  • rstata (3)
  • rdimartino (1)
  • fenwar (1)
  • hugovk (1)
  • StewPoll (1)
  • appleshampooid (1)
Top Labels
Issue Labels
enhancement (7) bug (1)
Pull Request Labels
dependencies (3)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 664 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 4
    (may contain duplicates)
  • Total versions: 72
  • Total maintainers: 1
proxy.golang.org: github.com/llimllib/limbo
  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.7%
Dependent repos count: 5.9%
Last synced: 6 months ago
pypi.org: limbo

Simple and Clean Slack Chatbot

  • Versions: 68
  • Dependent Packages: 0
  • Dependent Repositories: 4
  • Downloads: 664 Last month
Rankings
Stargazers count: 3.2%
Forks count: 3.9%
Dependent repos count: 7.5%
Average: 9.0%
Dependent packages count: 10.0%
Downloads: 20.2%
Maintainers (1)
Last synced: 6 months ago

Dependencies

requirements-to-freeze.txt pypi
  • beautifulsoup4 *
  • certifi *
  • flake8 *
  • html5lib *
  • pyfiglet *
  • pytest *
  • pytest-cov *
  • requests *
  • tox *
  • vcrpy *
  • websocket-client *
requirements.txt pypi
  • PyYAML ==6.0
  • attrs ==21.4.0
  • beautifulsoup4 ==4.10.0
  • certifi ==2021.10.8
  • charset-normalizer ==2.0.12
  • coverage ==6.3.2
  • distlib ==0.3.4
  • filelock ==3.6.0
  • flake8 ==4.0.1
  • html5lib ==1.1
  • idna ==3.3
  • importlib-metadata ==4.2.0
  • iniconfig ==1.1.1
  • mccabe ==0.6.1
  • multidict ==6.0.2
  • packaging ==21.3
  • platformdirs ==2.5.1
  • pluggy ==1.0.0
  • py ==1.11.0
  • pycodestyle ==2.8.0
  • pyfiglet ==0.8.post1
  • pyflakes ==2.4.0
  • pyparsing ==3.0.7
  • pytest ==7.0.1
  • pytest-cov ==3.0.0
  • requests ==2.27.1
  • six ==1.16.0
  • soupsieve ==2.3.1
  • toml ==0.10.2
  • tomli ==2.0.1
  • tox ==3.24.5
  • typing-extensions ==4.1.1
  • urllib3 ==1.26.8
  • vcrpy ==4.1.1
  • virtualenv ==20.13.1
  • webencodings ==0.5.1
  • websocket-client ==1.2.3
  • wrapt ==1.13.3
  • yarl ==1.7.2
  • zipp ==3.7.0
.github/workflows/ci.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
setup.py pypi