Skip to main content

A small event handling library on top of the Slack RTM API.

Project description

Unix build status on Travis CI Code coverage on Coveralls ISC Licensed Docs on Read the Docs Python Version Layabout on PyPI

Layabout is a small event handling library on top of the Slack RTM API.

from pprint import pprint
from layabout import Layabout

app = Layabout()


@app.handle('*')
def debug(slack, event):
    """ Pretty print every event seen by the app. """
    pprint(event)


@app.handle('message')
def echo(slack, event):
    """ Echo all messages seen by the app except our own. """
    if event.get('subtype') != 'bot_message':
        slack.rtm_send_message(event['channel'], event['text'])


def someone_leaves(events):
    """ Return False if a member leaves, otherwise True. """
    return not any(e.get('type') == 'member_left_channel'
                   for e in events)


if __name__ == '__main__':
    # Automatically load app token from $LAYABOUT_TOKEN and run!
    app.run(until=someone_leaves)
    print("Looks like someone left a channel!")

Installation

To install Layabout use pip and PyPI:

pip install layabout

What’s It Good For?

You can think of Layabout as a micro framework for building Slack bots. Since it wraps Slack’s RTM API it does best with tasks like interacting with users, responding to channel messages, and monitoring events. If you want more ideas on what you can do with it check out the examples.

Features

Not sold yet? Here’s a list of features to sweeten the deal.

  • Automatically load Slack API tokens from environment variables, provide them directly, or even bring your own SlackClient.

  • Register multiple event handlers for one event.

  • Register a single handler for multiple events by stacking decorators.

  • Configurable application shutdown.

  • Configurable retry logic in the event of lost connections.

  • Lightweight. Depends only on the official Python slackclient library.

Code of Conduct

Everyone interacting with the Layabout project’s codebase is expected to follow the Code of Conduct.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

layabout-1.0.0.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

layabout-1.0.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file layabout-1.0.0.tar.gz.

File metadata

  • Download URL: layabout-1.0.0.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for layabout-1.0.0.tar.gz
Algorithm Hash digest
SHA256 f5e37c73ccb9a386d7127cddaf6f8322d5f27ce956285215ff1a75778cd03c5d
MD5 b78a9bd980dad691e92f738c64f6c7fb
BLAKE2b-256 26f3cba4d92326f2fa2e80c1bfcd37d28718f6333d660a9ac6d6b43cdcea8f04

See more details on using hashes here.

File details

Details for the file layabout-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for layabout-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9545137ea40d60c734ec846b3597d1d8cd094afb70f53b3c81eb8ea34504ca87
MD5 4a6414ca70474a0e4e57e8c6ab1def05
BLAKE2b-256 d005c10ee72db87089e03a9288fefaf4fd6c1e31d83f341f7c5cfe1e5ce18993

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page