Skip to main content

Slack-Machine 的实用插件,性感、简单但功能强大且可扩展的 Slack 机器人

项目描述

松弛机器插件

Slack-Machine 的实用插件,性感、简单但功能强大且可扩展的 Slack 机器人。

pip install slack-machine-plugins

指挥官

Commander 提供了两个类CommandCommandArgument一个声明式的方式来定义聊天命令及其参数,用于用户的输入验证和错误反馈。特点包括:

  • 聊天命令参数的类型和长度验证。
  • 严格的选择。
  • 自定义验证和错误消息。
  • 用于用户反馈的使用和错误文本。

示例用法

取自测试用例,真实的例子。

# command definition
####################
from machine_plugins.commander import Command, CommandArgument

scale_cmd = Command(
    name='scale',
    description='Scale a deployment.',
    arguments=[
        CommandArgument(
            name='namespace',
            target_type=str,
            choices=['default', 'dev'],
            description='Namespace of the deployment.',
        ),
        CommandArgument(
            name='deployment',
            validation=(lambda d: d.startswith('deployment-prefix-'),),
            description='Name of the deployment.',
        ),
        CommandArgument(
            name='replicas',
            target_type=int,
            validation=(lambda r: 2 <= int(r) <= 10, 'You can not scale under 2 or above 10 replicas.'),
        ),
    ],
)

# command usage in slack-machine
################################
from machine.plugins.base import MachineBasePlugin
from machine.plugins.decorators import respond_to


class DeploymentPlugin(MachineBasePlugin):

    @respond_to(regex=r'^scale ?(?P<args>.*)$')
    def scale(self, msg, args):
        errs = scale_cmd.errors(args)
        if errs:
            resp = '\n'.join(errs)
            msg.say(f'```{resp}```')
            return
        # input validation complete, do your thing e.g `scale(*args.split())`

项目详情


下载文件

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

源分布

slack-machine-plugins-0.1.1.tar.gz (6.7 kB 查看哈希

已上传 source

内置分布

slack_machine_plugins-0.1.1-py2.py3-none-any.whl (7.3 kB 查看哈希

已上传 py2 py3