有没有办法让 Hubot 回复所有不存在命令的消息?

Is there a way to make Hubot reply to all messages that are not existing commands?

我正在第一次尝试 Hubot,我正在制作一个用于基本对话的对话脚本。我已经完成了很多可能性(我有很多问题和关键字在工作,)但是当用户问或说一些 Hubot 不认识的东西时,它会完全沉默。

我想在 Hubot 找不到现有命令或单词时添加一组默认答案(含糊不清的回复,如“这很有趣”或“告诉我更多信息”。)

有没有办法通过脚本来做到这一点?类似于:

robot.respond / * /, (msg) ->
    msg.send ArrayOfVagueReplies

其中 * 是 "everything else"。 "If commands... else..."?

使用robot.catchAll子句捕获所有不匹配的对话,可以参考https://www.npmjs.com/package/hubot-suggest

由于 hubot 的 robot.respond 方法采用正则表达式,您应该能够只提供 /.*/ 作为正则表达式,并让它匹配所有内容。

所以你有:

module.exports = (robot) ->
        robot.respond /.*/i, (msg) ->
            doSomething(msg)