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".