指令模式
指令模式也是对话模式,使用 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 进行显示。