Skip to main content

未提供项目描述

项目描述

slacktools 命令

一个使用 Slack 斜杠命令的简单框架 ( https://api.slack.com/interactivity/slash-commands )。

使用注册您的自定义Command类, ComandFactory当您收到来自 Slack 的命令请求时,只需从工厂获取命令实例并执行它。

安装

pip install slacktools-commands

基本用法

定义你的命令:

from commands import register_command, Command, CommandValidationError

from myproject import get_status, post_status


@register_command("/status")
class StatusCommand(Command):
    def _validate(self):
        if not get_status(id=self.payload.text):
            raise CommandValidationError("Not a valid id.")

    def _execute(self):
        post_status(id=self.payload.text)

处理 Slack 命令请求:

from rest_framework.views import APIView
from rest_framework.response import Response

from commands import CommandFactory

class CommandsView(APIView):
    def post(self, request):
        command = CommandFactory.make_commmand(request.data)
        command.execute()
        return Response()

动作命令

操作命令允许您从单个 Slack 命令执行许多不同的操作。命令后面的文本用于确定应执行的操作。文本由空格分隔,第一个字符集确定操作,其余字符集作为选项/参数传递给操作。

例子

以下类定义将处理以下命令:/status service api

from commands import ActionCommand, Action, CommandValidationError, register_command

from myproject import post_status_msg


class ServiceStatus(Action):
    def validate(self):
        if len(self.options) == 0:
            CommandValidationError(self.payload, "Missing service name")

    def execute(self):
        post_status_msg(self.options[0])


@register_command("/status")
class StatusCommand(ActionCommand):
    ACTIONS = {
        "service": ServiceStatus
    }

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

slacktools-commands-1.0.0.tar.gz (6.0 kB 查看哈希

已上传 source

内置分布

slacktools_commands-1.0.0-py3-none-any.whl (9.0 kB 查看哈希

已上传 py3