Madoka Madoka
首页
  • 文档 v4
  • 旧版文档 v3
  • 开发文档 v4
  • 旧版开发文档 v3
更新日志
加入QQ群 (opens new window)
GitHub (opens new window)
首页
  • 文档 v4
  • 旧版文档 v3
  • 开发文档 v4
  • 旧版开发文档 v3
更新日志
加入QQ群 (opens new window)
GitHub (opens new window)
  • 插件开发文档

    • 开始
    • 创建一个新的插件
    • 命令解析器
      • 引入
      • 注册命令
        • 参数解析
      • 模块化处理命令
        • 匹配指定内容
        • 无匹配内容
        • 公共参数解析
      • 命令解析结果
    • 消息队列 & 消息发送器
    • 计划任务
    • 数据表配置
  • API列表
  • 其他语言SDK
  • developer-v4
  • 插件开发文档
MadokaProject
2022-03-20
目录

命令解析器

这里我们详细介绍一下命令解析器 Commander。

Commander 对 Alconna 进行了部分封装,简化了命令的注册过程,并提供了模块化的子命令处理等功能。

# 引入

from app.util.alconna import Commander

# 注册命令

提示

由于部分原因,现暂不支持单插件注册多个命令。

command = Commander(...)

# 参数解析

为了减少学习成本,Commander 的参数解析与 Alconna 基本一致。

  • entry: 主命令(必填)
  • brief_help: 命令简介(必填)
  • *args: 命令选项,与 Alconna 一致,可由命令参数(Args)、选项(Option)、子命令(Subcommand)组成。
  • command: 真正的主命令(默认为entry)。主要用于解决主命令为正则表达式时,无法对其进行的一些其它操作。
  • help_text: 命令帮助文本(可选),默认为brief_help
  • enable: 插件开关(可选),默认为True
  • hidded: 是否隐藏插件(可选),默认为False
  • friend_limit: 用户频率限制(可选),若配置文件未填写该配置,默认为0。作用域:整个插件
  • group_limit: 群组频率限制(可选),若配置文件未填写该配置,默认为0。作用域:整个插件

# 模块化处理命令

# 匹配指定内容

注意

不可重复

Commander 提供了 parse 装饰器用于匹配指定内容。

@command.parse(<name>, ...)
def ...(...):
    ...
  • name: 需要匹配的内容 - str | list[str]

# 无匹配内容

Commander 提供了 no_match 装饰器用于指定无匹配内容时执行的内容。

未使用该装饰器时,默认将返回帮助菜单。

# 公共参数解析

这里列出它们的相同参数解析

  • events: 消息事件过滤器(默认不过滤) - 类型:list
    • FriendMessage: 好友消息 app.util.grala.FriendMessage
    • GroupMessage: 群消息 app.util.grala.GroupMessage
    • TempMessage: 临时消息 app.util.grala.TempMessage
    • StrageMessage: 陌生人消息 app.util.grala.StrageMessage (暂不支持处理)
  • permission: 权限控制(默认允许除黑名单以外的所有用户) - 类型:app.util.control.Permission
  • friend_limit: 用户频率限制(默认不限制) - 类型:float 作用域:该匹配器
  • group_limit: 群组频率限制(默认不限制) - 类型:float 作用域:该匹配器

# 命令解析结果

Commander 会将 Alconna 封装的解析结果 Arpamar 原封不动的返回。如需或许解析结果,你只需在函数参数中添加一个 Arpamar 类型的参数即可。

@command(...)
def ...(..., cmd: Arpamar):
    ...
上次更新: 2022/11/22, 00:08:13
创建一个新的插件
消息队列 & 消息发送器

← 创建一个新的插件 消息队列 & 消息发送器→

Theme by Vdoing | Copyright © 2021-2022 Madoka Project
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式