2016-04-09 13 views
0

私はherokuで動いているhubotのインスタンスを持っています。私はデフォルトの動作(例えばhelpコマンド)は必要ありません。代わりに私は自分のコマンドを選んで、ユーザにコマンドを入力させてもらいたい。この場合、すべてのユーザー入力でpbを実行したいだけです。Hubot:すべての入力に対してsetコマンドを使用します

ユーザーがhelloを入力した場合、humbotをpb helloに実行したいと思います。あなたが「何を」聞きたいよう

私はmshishの提案をもとにしようとしているコードは/scripts/example.cofee

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

答えて

1

であるが鳴ります。レポのルートからnpm uninstall --save PACKAGE_NAMEを使用してそれらを削除し、.*

デフォルトのスクリプトをオフにするには、(あなたがやりたいだろう応答せず聞く)、すべてに一致する正規表現を使用Hubotのhear and respond機能を使用します。 PACKAGE_NAMEは、削除するスクリプトパッケージと一致する必要があります。package.jsonexternal-scripts.jsonhubot-scripts.jsonから手動でスクリプトを削除する必要がある場合もあります。

+0

を実行している任意のコードを実行することができます。私が間違っていることはまだ分かりません。 –

+0

@PhilipKirkbrideどこで 'pb'を定義しますか? – mshish

1

質問の最初の部分に答えて、必要のない部分を削除します。 package.jsonを編集して、必要のないコマンド行を削除してください。比較的自明、以下を削除しても安全でなければなりません:

  • "hubot-診断": "0.0.1"、
  • "hubot-グーグル・イメージ": "^ 0.1.2"、
  • "hubotヘルプ": "^ 0.1.1"、
  • "hubotマップ": "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]には、ユーザーがメッセージとして入力したものが含まれます。

EDIT:また、「external-scripts.json」からエントリを削除する必要があります。

+0

マッチ部分が正しい!シェルコマンドを実行するには、https://www.npmjs.com/package/shelljs – rick

+0

を使用してください。私の無料試用がありがたいです。別のアカウントを作って確認するスクリプトを実行しようとします。 –

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() 
関連する問題