Slack-Machine 的实用插件,性感、简单但功能强大且可扩展的 Slack 机器人
项目描述
松弛机器插件
Slack-Machine 的实用插件,性感、简单但功能强大且可扩展的 Slack 机器人。
pip install slack-machine-plugins
指挥官
Commander 提供了两个类Command和CommandArgument一个声明式的方式来定义聊天命令及其参数,用于用户的输入验证和错误反馈。特点包括:
- 聊天命令参数的类型和长度验证。
- 严格的选择。
- 自定义验证和错误消息。
- 用于用户反馈的使用和错误文本。
示例用法
取自测试用例,真实的例子。
# 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
查看哈希)
内置分布
关
slack_machine_plugins -0.1.1-py2.py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 923b1d00d983d743d8fccae11522acc422588e23e9cb2ab684420f398aa3deca |
|
| MD5 | 80ed8e20905968e485954e1754606db8 |
|
| 布莱克2-256 | 369f737042ed5e732498cb574012b2d1be489092ad0cd3e7dcae91cb07ab7d5c |