我有一个在heroku上运行的hubot实例。我不需要任何默认行为(例如help命令)。相反,我想选择自己的命令,让用户输入带有命令的文本。在这种情况下,我只想在每个用户输入时运行pb
。
因此,如果用户输入hello
我希望humbot运行pb hello
。
我根据mshish建议尝试的代码在/scripts/example.cofee
module.exports = (robot) ->
robot.hear /.*/, (msg) ->
pb msg
答案 0 :(得分:1)
听起来你想听到“任何东西”。使用Hubot的hear and respond功能(听不回应会做你想做的事)并使用匹配所有内容的正则表达式.*
要关闭默认脚本,请使用repo根目录中的npm uninstall --save PACKAGE_NAME
删除它们。 PACKAGE_NAME应与您要从package.json
删除的脚本包相匹配。您可能还需要从external-scripts.json
和hubot-scripts.json
手动删除脚本。
答案 1 :(得分:1)
因此,要回答问题的第一部分,请删除您不需要的部分。只需编辑package.json并删除不需要的命令行。相对自我解释,应该安全删除以下内容:
然后对于第二部分,你有部分正确。
robot.hear /.*/, (msg) ->
pb msg
应采用以下格式:
robot.hear /.*/, (msg) ->
msg.send "pb #{msg.match[0]}"
msg.send是用于实际向聊天室发送消息的命令。和msg.match [0]包含用户放置的任何信息。
编辑:另外,需要从" external-scripts.json"中删除条目。
答案 2 :(得分:1)
你也可以用中间件做到这一点。我写这篇文章来记录任何人曾经说过的每条消息以及他们说的话。但你可以得到这个想法。您可以运行我运行@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()