日頃の行い

個人的な日頃の行いをつらつら書いてます\\\\ ٩( 'ω' )و ////

hubot-characterというpluginを使ってSlack上でレムと戯れる

この記事は Re:ゼロから始める Advent Calendar 2016 - Adventar の2日目として書かれています。
www.adventar.org

ネタバレを含むので見ていない方はamazon prime videoで見れるので是非見てください。
https://www.amazon.co.jp/dp/B01KZSGOCY

こんにちは ara_ta3 です。
リゼロ最高ですよね。
私は18話が好きです。

リゼロを見ながらはじめはエミリアたんマジ天使って思ってたんですが、今はこんな気持ちです。

レムがかわいくて生きるのがつらいです。

https://cdn-ak.f.st-hatena.com/images/fotolife/s/shanonim/20161201/20161201002434.gif

画像は 僕がリゼロを好きになった5つの理由 - shanon's note より引用させていただきました。
最高の記事でしたね…w

ところで、レムりんに レムは知っています って認められるのとても安心しますよね。
レムりんに何か言ってもらえると安心しますよね。
なので今回はhubot pluginを書いてレムに色々言ってもらえるようにしました。

概要

見終わった方はもう心の底からおわかりかと思いますが、
レムりんが最高ですよね!
異論は聞こえません。聞こえないので議論いたしかねます。

さて、アニメを見ていないとレムりんに会えないのでとても日々が辛くなってしまいます。
そこで、今回はbotを経由してslack上でレムりんから励ましてもらえるようにしようと思います。
今回使うbotはhubotで、hubot-characterというpluginを利用します。
自作です

github.com

www.npmjs.com

使い方

hubotの使い方は適宜調べて頂ければと・・・w
やること

  • install
    • npm install hubot-character
  • 定義ファイルの編集
  • 環境変数の設定
    • HUBOT_CHARACTER_CONFIG
      • ↑の定義ファイルへのPATHです
    • HUBOT_SLACK_TOKEN
      • SlackのpostMessageに利用します
      • 最近のSlackだとHUBOT_SLACK_TOKENでも問題なかったかと思います

定義ファイルの編集

下記のようなフォーマットを定義します。

  • 項目の説明
    • name: Slackのユーザ名に使います
    • icon: Slackのユーザアイコンに使います
    • respond: hubot hogehogeに対応する部分です。この場合 hubot rem に反応します。
    • messages: ランダムに返してくれるメッセージです。 {name} マクロが使えます。
{
    "characters": [{
        "name": "レム",
        "icon": ":rem:",
        "respond": "rem",
        "messages": [
            "今、一緒に逃げてしまったら、レムが一番好きな{name}さんを置き去りにしてしまうような気がしますから",
            "レムは知っています。{name}さんは未来を望む時、その未来を笑って話せる人だって知っています。",
            "レムは知っています。{name}さんが未来を、諦められない人だって、知っています。",
            "レムは知っています。{name}さんがどんなに先の見えない暗闇の中でも、手を伸ばしてくれる勇気がある人だってことを。",
            "諦めるのは簡単です。⋯でも、{name}さんには似合わない",
            "レムは信じています。どんなに辛く苦しいことがあって、{name}さんが負けそうになってしまっても……世界中の誰も{name}さんを信じなくなって、{name}さん自身が自分のことを信じられなくなっても、レムは信じています。",
            "{name}さんに頭をなでられるのが好きです。手のひらと髪の毛を通して、{name}さんと通じあっている気がするんです。",
            "{name}さんの声が好きです。言葉一つ聴くたびに、心が温かくなるのを感じるんです。",
            "{name}さんの目が好きです。普段は鋭いんですけど、誰かに優しくしようとしているとき、柔らかくなるその目が好きです。",
            "{name}さんの指が好きです。男の子なのに綺麗な指をしていて、でも握るとやっぱり男の子なんだって思わせてくれる、強くて細い指なんです。",
            "{name}さんの歩き方が好きです。一緒に隣を歩いていると、たまにちゃんとついてきているか確かめるみたいに振り向いてくれる、そんな歩き方が好きです。"
        ]
    }]
}

charactersは複数キャラクターに対応しているので実は他のキャラクターも定義できたりします。

結果

このように定義するとこんな感じに動作します。
hubotの名前が dark のため dark rem というコマンドになっています。

f:id:arata3da4:20161123225027p:plain

感想

  • hubot-character 便利
  • レムりんのかわいさ鬼がかってますね。
  • レムりんに癒やされながら生きていきましょう・・・