Add split_args decorator

This commit is contained in:
Richard Chien
2017-01-11 15:20:00 +08:00
parent 1040b600d6
commit 58a1352b19
4 changed files with 36 additions and 6 deletions

View File

@ -101,3 +101,16 @@ Source 表示命令的来源由谁发出Target 表示命令将对谁产
高级用户可以使用 `commands/scheduler.py` 里的命令来添加计划任务以定期执行某一个或一连串命令,但对普通用户来说可能较难使用,因此对于可能有需要定期执行的命令,可以编写相应的订阅命令来方便用户使用。
命令编写者只需要在后台帮用户把要执行的任务翻译成 `commands/scheduler.py` 能够处理的形式,并直接调用其中的函数即可,该文件中的命令一般接受一个 `internal` 参数来表示是否是命令间的内部调用,在调用时,指定该参数为 True 将不会对用户发送消息,并且在执行结束后会返回相应的返回值以便调用者知道命令执行是否成功等,具体可参见 `commands/scheduler.py` 的代码。
## 命令参数
命令的函数的第一个参数为命令参数,默认情况下,是一个字符串,即用户发送的消息中命令后面的内容,可以自行切割、分析。如果需要使用默认的命令参数分隔符,可以使用 `command.py` 中的 `split_args` 装饰器,使用之后,命令的函数接收到的第一个参数将变为命令参数列表,而不再是字符串。例如:
```python
@__registry__.register('test')
@__registry__.restrict(group_admin_only=True)
@split_args()
def test(args, ctx_msg):
if len(args) > 0:
print(args[0])
```