Skip to main content

Simple application for make slack bot

Project description

slack-bot

Build Status Pypi Cov

Application for easy make slack bot

Content:

Getting Started:

Installing:

pip install slack-bot

Usage:

Code for base slack bot:

# run.py

import os

from slack_bot import Application, Response


app = Application(token=os.getenv('SLACK_TOKEN'))


@app.route('hello')
def main(request):
    return Response(request=request, text=f'Hi! {request.user}')


@app.route('deploy {app:w}')
def deploy_staging(request):
    current_app = request.match_info["app"]
    # body for deploy staging ...
    return Response(request=request, text=f'Start deploy {current_app}')


if __name__ == '__main__':
    app.run()

Result:

chat example

Dockerfile example:

FROM python:3.7-alpine

WORKDIR app/

# This env variable by defauult equal 1
ENV RTM_READ_DELAY=1

# Run install your requirements
RUN pip install slack-bot

# Copy application modules to docker container
COPY . /app/

# Run module with intit application
CMD ['python', '/app/run.py']

Examples:

Many examples, how to use slack-bot

  • Adding handlers to app with @app.route decorator
import os

from slack_bot import Application, Response


TOKEN = os.getenv('SLACK_TOKEN')


app = Application(token=TOKEN)


@app.route('hello', channels=[], users=[])
def main(request):
    return Response(request=request, text=f'Hi! {request.user}')


if __name__ == '__main__':
    app.run()
  • Use routes table, for adding handlers to app
import os

from slack_bot import Application, Response, RoutersTable


table = RoutersTable()


@table.route('hello')
def say_hello(request):
    return Response(request=request, text=f'Hi! {request.user}')


if __name__ == '__main__':
    app = Application(token=os.getenv('SLACK_TOKEN'))
    app.run()
  • Adding all handlers to app
import os

from slack_bot import Application, Response, Route


def say_hello(request):
    return Response(request=request, text=f'Hi! {request.user}')


if __name__ == '__main__':
    app = Application(token=os.getenv('SLACK_TOKEN'))
    app.add_routes([
        Route(route='Hello', handler=say_hello),
    ])
    app.run()

Authors:

  • Denis Korytkin

License:

This project is licensed under the MIT License - see the LICENSE.md file for details

Dependencies:

base

pip==19.0.3
setuptools==41.0.0

application dependencies

slackclient==1.3.1
parse==1.12.0

slackclient dependencies

certifi==2019.3.9
chardet==3.0.4
idna==2.8
requests==2.21.0
six==1.12.0
urllib3==1.24.2
websocket-client==0.47.0

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

slack_bot-0.0.7.tar.gz (6.0 kB view details)

Uploaded Source

File details

Details for the file slack_bot-0.0.7.tar.gz.

File metadata

  • Download URL: slack_bot-0.0.7.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7

File hashes

Hashes for slack_bot-0.0.7.tar.gz
Algorithm Hash digest
SHA256 1298fe6c7a9d929128aa004a9cfb70343d38e6bad3a688b80a1c8d78b7fcc2aa
MD5 2b5f7c91a2b0f3f5e6cdda56d981e60f
BLAKE2b-256 d8c786dc3092691638f7f1a1a0fb0e98deae53fad2b6567d50173045ccdd7243

See more details on using hashes here.

Supported by

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