Hubot:对所有输入使用set命令

Hubot:对所有输入使用set命令,hubot,chatbot,pandorabots,Hubot,Chatbot,Pandorabots,我有一个hubot在heroku上运行的实例。我不需要任何默认行为(例如help命令)。相反,我想选择自己的命令,让用户用命令输入文本。在这种情况下,我只想对每个用户输入运行pb 因此,如果用户输入hello,我希望humbot运行pb hello 我根据mshish建议尝试的代码位于/scripts/example.cofee module.exports = (robot) -> robot.hear /.*/, (msg) -> pb msg 听起来你想听“任何事

我有一个hubot在heroku上运行的实例。我不需要任何默认行为(例如help命令)。相反,我想选择自己的命令,让用户用命令输入文本。在这种情况下,我只想对每个用户输入运行
pb

因此,如果用户输入
hello
,我希望humbot运行
pb hello

我根据mshish建议尝试的代码位于
/scripts/example.cofee

module.exports = (robot) ->
  robot.hear /.*/, (msg) ->
    pb msg

听起来你想听“任何事”。使用Hubot的功能(hear not Response将执行您想要的操作)并使用匹配所有内容的正则表达式,
*


要关闭默认脚本,请使用
npm uninstall--save PACKAGE_NAME
从repo的根目录中删除它们。PACKAGE\u NAME应该与要从
PACKAGE.json
中删除的脚本包匹配。您可能还需要手动从
external scripts.json
hubot scripts.json

中删除脚本。听起来您想听到“任何东西”。使用Hubot的功能(hear not Response将执行您想要的操作)并使用匹配所有内容的正则表达式,
*


要关闭默认脚本,请使用
npm uninstall--save PACKAGE_NAME
从repo的根目录中删除它们。PACKAGE\u NAME应该与要从
PACKAGE.json
中删除的脚本包匹配。您可能还需要手动从
external scripts.json
hubot scripts.json

中删除脚本,以便回答问题的第一部分,删除不需要的部分。只需编辑package.json并删除不需要的命令行。相对而言,删除以下内容应该是安全的:

  • “hubot诊断”:“0.0.1”
  • “hubot谷歌图片”:“^0.1.2”
  • “hubot帮助”:“^0.1.1”
  • “hubot地图”:“0.0.1”
  • “hubot pugme”:“^0.1.0”
  • “hubot规则”:“^0.1.0”
  • “hubot脚本”:“^2.5.16”
  • “hubot shipit”:“^0.1.1”
那么对于第二部分,你有一部分是对的

  robot.hear /.*/, (msg) ->
    pb msg
应采用以下格式:

  robot.hear /.*/, (msg) ->
    msg.send "pb #{msg.match[0]}"
msg.send是用于向聊天室发送消息的命令。和msg.match[0]包含用户作为其消息放置的任何内容


编辑:另外,需要删除“external scripts.json”中的条目。

因此要回答问题的第一部分,请删除不需要的部分。只需编辑package.json并删除不需要的命令行。相对而言,删除以下内容应该是安全的:

  • “hubot诊断”:“0.0.1”
  • “hubot谷歌图片”:“^0.1.2”
  • “hubot帮助”:“^0.1.1”
  • “hubot地图”:“0.0.1”
  • “hubot pugme”:“^0.1.0”
  • “hubot规则”:“^0.1.0”
  • “hubot脚本”:“^2.5.16”
  • “hubot shipit”:“^0.1.1”
那么对于第二部分,你有一部分是对的

  robot.hear /.*/, (msg) ->
    pb msg
应采用以下格式:

  robot.hear /.*/, (msg) ->
    msg.send "pb #{msg.match[0]}"
msg.send是用于向聊天室发送消息的命令。和msg.match[0]包含用户作为其消息放置的任何内容


编辑:另外,需要删除“externalscripts.json”中的条目。

您也可以使用中间件来完成此操作。我写这篇文章是为了记录任何人说过的每一条信息以及他们在哪里说的。但是你可以得到这个想法。你可以在我运行robot.logger.info的地方运行任何代码

module.exports = (robot) ->
robot.listenerMiddleware (context, next, done) ->
if context.listener.regex.source is /(.+)/i.source
  @robot.logger.info("#{context.response.message.user.name} said: \"#{context.response.message.text}\" in Channel: #{context.response.message.room}")
next()

您也可以使用中间件来实现这一点。我写这篇文章是为了记录任何人说过的每一条信息以及他们在哪里说的。但是你可以得到这个想法。你可以在我运行robot.logger.info的地方运行任何代码

module.exports = (robot) ->
robot.listenerMiddleware (context, next, done) ->
if context.listener.regex.source is /(.+)/i.source
  @robot.logger.info("#{context.response.message.user.name} said: \"#{context.response.message.text}\" in Channel: #{context.response.message.room}")
next()

根据你的建议,我更新了我的问题,以显示我现在在尝试什么。仍然不确定我做错了什么。@PhilipKirkbride你在哪里定义
pb
?我根据你的建议更新了我的问题,以显示我现在在尝试什么。仍然不确定我做错了什么。@PhilipKirkbride你在哪里定义
pb
?匹配部分是正确的!要执行shell命令,您可以使用此命令,感谢我的免费试用版。我将尝试创建另一个帐户并运行脚本进行确认。匹配部分是正确的!要执行shell命令,您可以使用此命令,感谢我的免费试用版。我将尝试创建另一个帐户并运行脚本进行确认。