Hubot: использовать команду set для всего ввода

У меня есть экземпляр Hubot, работающий на героку. Мне не нужно поведение по умолчанию (например, команда справки). Вместо этого я хотел бы выбрать свои собственные команды и просто попросить пользователей вводить текст с помощью команд. В этом случае я просто хочу запустить pb с каждым пользовательским вводом.

Так что, если пользователь вводит hello Я хотел бы бегать по кругу pb hello,

Код, который я пытаюсь основать на предложении mshish, находится в /scripts/example.cofee

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

3 ответа

Вы также можете сделать это с промежуточным программным обеспечением. Я написал это, чтобы регистрировать каждое сообщение, которое кто-либо когда-либо говорил и где они сказали это. но вы можете понять идею. Вы можете запустить любой код, где я запускаю @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()

Похоже, вы хотите услышать "что-нибудь". Используйте функцию Hubot " слышать и отвечать" (функция "слышать, а не отвечать" будет делать то, что вы хотите) и использовать регулярное выражение, соответствующее всему, .*

Чтобы отключить сценарии по умолчанию, удалите их, используя npm uninstall --save PACKAGE_NAME из корня репо. PACKAGE_NAME должен соответствовать пакетам скриптов, из которых вы хотите удалить package.json, Вам также может понадобиться вручную удалить скрипт из external-scripts.json а также hubot-scripts.json,

Таким образом, чтобы ответить на первую часть вашего вопроса, удалив части, которые вам не нужны. Просто отредактируйте свой package.json и удалите строки для команд, которые вам не нужны. Относительно самоочевидно, должно быть безопасно удалить следующее:

  • "hubot-диагностика": "0.0.1",
  • "hubot-google-images": "^ 0.1.2",
  • "hubot-help": "^ 0.1.1",
  • "hubot-maps": "0.0.1",
  • "hubot-pugme": "^ 0.1.0",
  • "hubot-rules": "^ 0.1.0",
  • "hubot-scripts": "^ 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".

Другие вопросы по тегам