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 hashes)

Uploaded Source

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