注册一个支持 `shell_like` 解析参数的命令消息事件响应器。 与普通的 `on_command` 不同的是,在添加 `parser` 参数时, 响应器会自动处理消息。 可以通过 {ref}`nonebot.params.ShellCommandArgv` 获取原始参数列表, 通过 {ref}`nonebot.params.ShellCommandArgs` 获取解析后的参数字典。 参数: cmd: 指定命令内容 rule: 事件响应规则 aliases: 命令别名 parser: `
(
cmd: str | tuple[str, ...],
rule: Rule | T_RuleChecker | None = None,
aliases: set[str | tuple[str, ...]] | None = None,
parser: ArgumentParser | None = None,
_depth: int = 0,
**kwargs,
)
| 348 | |
| 349 | |
| 350 | def on_shell_command( |
| 351 | cmd: str | tuple[str, ...], |
| 352 | rule: Rule | T_RuleChecker | None = None, |
| 353 | aliases: set[str | tuple[str, ...]] | None = None, |
| 354 | parser: ArgumentParser | None = None, |
| 355 | _depth: int = 0, |
| 356 | **kwargs, |
| 357 | ) -> type[Matcher]: |
| 358 | """注册一个支持 `shell_like` 解析参数的命令消息事件响应器。 |
| 359 | |
| 360 | 与普通的 `on_command` 不同的是,在添加 `parser` 参数时, 响应器会自动处理消息。 |
| 361 | |
| 362 | 可以通过 {ref}`nonebot.params.ShellCommandArgv` 获取原始参数列表, |
| 363 | 通过 {ref}`nonebot.params.ShellCommandArgs` 获取解析后的参数字典。 |
| 364 | |
| 365 | 参数: |
| 366 | cmd: 指定命令内容 |
| 367 | rule: 事件响应规则 |
| 368 | aliases: 命令别名 |
| 369 | parser: `nonebot.rule.ArgumentParser` 对象 |
| 370 | permission: 事件响应权限 |
| 371 | handlers: 事件处理函数列表 |
| 372 | temp: 是否为临时事件响应器(仅执行一次) |
| 373 | expire_time: 事件响应器最终有效时间点,过时即被删除 |
| 374 | priority: 事件响应器优先级 |
| 375 | block: 是否阻止事件向更低优先级传递 |
| 376 | state: 默认 state |
| 377 | """ |
| 378 | |
| 379 | commands = {cmd} | (aliases or set()) |
| 380 | return on_message( |
| 381 | shell_command(*commands, parser=parser) & rule, |
| 382 | **kwargs, |
| 383 | _depth=_depth + 1, |
| 384 | ) |
| 385 | |
| 386 | |
| 387 | def on_regex( |
no test coverage detected