ruboty-echo_toというgemをつくりました

タイトル通りgemを作ったので宣伝です。

背景

うちのSlackには褒めチャンネルがあって、「〜〜 完了」とか「〜〜 だん」とかそういう発言に対してかわいい女の子*1がほめてくれます。
これはSlackに褒めチャンネルを作ることで成果を出すと嬉しくなって、成果の情報が可視化されるようにしてみるという記事に詳しいです。

f:id:hkdnet:20151124035537p:plain

kawaii

これ以外にbotも生息しています。
botも可愛いです。Ruboty*2を使っています。

f:id:hkdnet:20151124035744p:plain

f:id:hkdnet:20151124035754p:plain

このチャンネルの目的は みんなのやる気をあげること です。
そして我々のチャンネルにはかわいいbotがいます。

かわいいbotに褒めてもらいたいですよね?
できたら的確に褒めてもらいたいですよね?
でも発言させてる姿は見せたくないですよね?

つまり、 他チャンネルに任意の言葉を喋らせる機能 、欲しいですよね?
というわけで ruboty-echo_to というgemを作りました*3

ソース

https://github.com/hkdnet/ruboty-echo_to

※英語が間違ってたら教えて下さい。

紹介

インストール後の使い方は以下です。

@ruboty echo_to #channnel_name message...

注意事項

  • Slack限定です。
    • 他のadapterに対応してないのですが、gem名どうすればいいかよくわかりません……。
  • コマンドは $SLACK_ROOM に列挙されているチャンネル + DMで受け付けます。
    • たぶん他gemと変わりません
  • echoするチャンネルはrubotyがjoinしていれば $SLACK_ROOM に列挙されていなくても構いません。
    • なのでrubotyからrubotyにリプ送っても発動しないことがあります
    • ていうかそれで何回かハマりましたorz

例えば$SLACK_ROOM=channelA,channelBでrubotyはchannelA, channelB, channelXにいるとき。

  • channelAで@ruboty echo_to #channelB channelA -> channelB OK
    • 送信されます。
  • channelAで@ruboty echo_to #channelX channelA -> channelX OK
    • 送信されます。
  • channelXで@ruboty echo_to #channelX channelX -> ANY NG
    • 送信されません。
  • channelAで@ruboty echo_to #channelX @ruboty echo_to #channelB not reach to channelB
    • channelXには届きます
    • が、その後のchannelBへの発言はされません。

使用例

DMにて

f:id:hkdnet:20151124040713p:plain

特にコマンド打ってないのに喋ったように見える!

f:id:hkdnet:20151124040735p:plain

自然な会話!
miiraちゃんkawaii(大事なことなので何度も言っておきます)

参考

cnxt.jp

mixed.main.jp

github.com

*1:『マンガでわかるWebデザイン』の湊川あいさん作

*2:Rubotyはr7kamuraさん作のruby版hubotです。

*3:もし他gemでできる方法あったら教えて下さい