Skip to content

指令模式

指令模式也是对话模式,使用 dialogues.txt 进行配置,示例 https://gitee.com/kkbt/obcsapi-go/blob/master/server/dialogues.txt

输入与匹配

该模式允许设置子字符串,包含子字符串的执行对应脚本或输出。以 I: O: 为标识,一个输入可以匹配多个输出。有多个输出时随机匹配。

运行与返回

当输出为 O: Command 开头时,可执行 Bash 脚本。如 O: Command echo "Hello,World!" 或者 O: Command bash sh/example.sh 。程序会收集标准输出并返回前端。 输出为 O: Lua 开头时,执行 lua 脚本。如 O: Lua script/hello.lua 。程序会使用内置解释器运行,可以使用一些内置参数,模块等等。必须返回一个字符串,程序会收集 return 的字符串,返回给前端。 其余情况,程序会将字符串内容直接返回前端。

返回字符串与渲染模块

指令模式可设置服务器运行脚本,返回字符串。

前端在返回 JSON 时会进行尝试渲染为更多模板。目前支持类型: message-tbb 。会渲染为为 一段文字,两个按钮。command 目前前端支持

  • @web-resend 重新发送指令
  • @web-save-memos 保存到 Memos

如果指令不以 @ 开头,则会将指令内容如同手动输入发送。如 "command": "#你好" ,类似指令发送界面输入 #你好 发送。

json
{
    "code": 200,
    "data": {
        "type": "message-tbb",
        "command": "#obcsapiv4-json 鹅鹅鹅是谁写的\n",
        "parts": [
            {
                "type": "md",
                "text": "\"obcsapiv4-json\"是由未知的作者编写的。\n"
            },
            {
                "type": "button",
                "text": "Resend",
                "command": "@web-resend"
            },
            {
                "type": "button",
                "text": "Save",
                "command": "@web-save-memos"
            }
        ]
    }
}

不过不能解析成功,前端会将返回字符串视为 markdown ,转为 HTML 进行显示。