- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个树形问答机器人,用 hubot 提供支持服务,但我一直不知道如何做。我希望 Hubot 在有人进入房间时提出问题(使用 robots.enter),尽管这不适用于 Rocket.Chat,但我找到了解决方法。但是,如果我想问一个问题并等待用户回复以保存他们的回复并问他们另一个问题,我该怎么做?
我尝试嵌套 res.send,但它不允许我这样做,从而在 CoffeeScript 上出现索引错误
最佳答案
如果您想要预先构建的东西,有几个框架脚本可以提供此功能:
https://github.com/lmarkus/hubot-conversation https://www.npmjs.com/package/hubot-dynamic-conversation
hubot-conversation 更加 JavaScript 一点(讽刺的是,更加动态一点),而 hubot-dynamic-conversation 则以构建对话流的 JSON 模型为中心。
如果您不喜欢这些选项中的任何一个,您始终可以使用 robots.listen 的组合来实现自己的流程,以动态匹配消息,并使用 Brain 来跟踪状态。
示例(我尚未实际测试过,但应该给出正确的想法):
module.exports = (robot) ->
robot.respond /hello$/, (res) ->
res.reply 'Why hello there! How are you today?'
# Record that we are mid-conversation
convs = robot.brain.get('conversations')
convs = convs.push(message.user.name)
robot.brain.set('conversations', convs)
robot.listen(
# If we are mid-conversation, respond to whatever they say next
(message) -> message.user.name in robot.brain.get('conversations')
(response) ->
response.reply 'I hope you have a great rest of the day!'
# Record that we are done conversing
convs = robot.brain.get('conversations')
convs = convs.splice(convs.indexOf(message.user.name), 1)
robot.brain.set('conversations', convs)
)
关于javascript - Hubot 嵌套命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43600466/
我想为用户添加一个新角色,当他能够为 Hubot 提供正确的密码时。 这是我现在拥有的脚本: module.exports = (robot) -> robot.respond /PasswOrd
我已经设置了一个 hubot 服务器,版本 2.7.1。这是我的 package.json 的依赖项部分: "dependencies": { "hubot": ">= 2.6.0 = 2.5.0
我正在使用 hubot 和 hubot-fb 适配器开发一个 facebook Messenger 机器人。所有基本设置都已完成并且运行良好。但是,为了与机器人聊天,我需要使用所有命令添加 hubot
在尝试部署 hubot 时,npm 不断提示未满足的依赖项。该文档没有解释如何解决这个问题。 yum install npm --enablerepo=epel yum install nodejs
有没有办法为用户名(数字 xxxx_xxxxxx 或全名)找到 @mention 名称,反之亦然? 查看 msg.message 对象,有一个用户对象,其中包含消息来自的人的 id、jid 和姓名。我
我在开始使用 Hubot 时遇到了一些问题。我听说过很多关于这个工具的事,并且对我可以用它做的所有事情感到很有趣。因此,我的第一步是安装 hubot,看看它是如何工作的,并尝试构建一些解决方案。 但是
我已经在他们自己的实际网站上查看了 Hubot 上的信息,我已经尝试了所有方法,我在这个问题上花了将近一天半的时间。 我正在使用 Linux 的虚拟机 上安装 Hubot,我想让它与 Campfire
我想使用 hubot-test-helper 测试用 JavaScript 编写的 hubot 脚本。和 Jest 。但由于缺乏文档,这确实很困难。我正在寻找愿意分享工作测试的人? 最佳答案 我遇到了
我正在为我的 Hubot(充当 Slack 机器人)编写一个简单的测试,以检查我的机器人是否发送回复以响应触发器。我遵循了 docs 中显示的示例,但测试结果为 AssertionError(详情如下
我正在尝试为hubot制作一个功能,每5分钟向一个房间发送一条消息,无需任何命令,仅由他自己。 module.exports = (robot, scripts) -> setTimeout ()
如何设置基本用户权限,以使用户无法运行“Hubot die”或“Hubot show storage”之类的命令? 我可以看到有一个名为hubot-auth的脚本,但这似乎是在其他脚本中实现它而不控制
我想做某种别名,例如,hubot status应该调用hubot newrelic me和hubot gauges for today。 我试图做诸如“msg.send” hubot newrelic
我编写了如下 CoffeeScript 来使用 Hubot 在 Slack 上集成 mailchimp 和其他服务。 Hubot 确实听到了我和其他团队成员的评论,但不会听到 mailchimp 通知
我正在尝试为我的 hubot 代码设置一个简单的单元测试,但我没有收到回复。我已将其简化为: 测试.咖啡: Helper = require('hubot-test-helper') chai = r
我想创建一个树形问答机器人,用 hubot 提供支持服务,但我一直不知道如何做。我希望 Hubot 在有人进入房间时提出问题(使用 robots.enter),尽管这不适用于 Rocket.Chat,
我希望找到办法让 hubot 到达这里一个变量。例如 name = "Peter" module.exports = (robot) -> robot.hear /hello name/i, (
我使用 Hubot 已经有一段时间了,实际上时间太长了,但我在匹配数组中的字符串时遇到了困难。 replies 是一个包含一些回复的数组。 所以这是可行的: module.exports = (rob
背景 我和我的团队一直在使用 hubot 和 vmware pyvmomi 开发一个自动化项目。我一直试图修复的核心功能之一是创建虚拟机功能。作为一个团队,我们确定希望 hubot 询问用户一系列问题
我正在编写一个 Hubot 脚本来连接我们工作中的跟踪系统。它应该触发带有各种参数的 PHP 脚本,然后该脚本会将响应发送到房间。 我如何知道 Hubot 正在响应的消息来自哪个房间,以便我可以在我的
我最近刚刚开始使用 Hubot。 我想知道是否使用了某个命令,但尚未输入任何参数。 robot.respond(/dothis (.*)/i, function(res) { ... }; 如果没有输
我是一名优秀的程序员,十分优秀!