TSGのSlackbot「pocky」
この記事はTSG Advent Calendar 2017の8日目の記事として書かれました。
今年もいつの間にかアドベントカレンダーの季節になりました。というわけで1年ぶり(!)にブログを更新します。
TSGのSlackでは部員が作ったボットが動くための#sandboxチャンネルがあり、そこで動いているボットの1つであるpockyというのを作ったのでそれをこの記事で紹介します。
pockyの仕様は大まかにいって次のような感じです。
- #sandboxで?か?で終わる発言を拾う
- その発言に続くうまい返しを考えて、発言者へのメンションを付けて投稿する
- うまい返しが思いつかなかった場合は :wakarazu: と返す
こんな感じです。
それで、「うまい返しを考える」というのをどう実現しているかというと、(まあpockyのアイコンからすぐに分かるかもしれませんが)Googleサジェストを利用しています。末尾の「?」を取り除いた部分をGoogleサジェストに投げて、返ってきた候補から“うまい返し”の部分を切り出してきて返しています。
ソースコード:https://github.com/tsg-ut/slackbot/blob/master/pocky/index.js
以下実例を交えて見ていきます。
末尾の?を増やすと次の候補を返してくれます。
絵文字にも対応。(たとえば :exclamation: は ❗ に置換してからGoogleサジェストに投げています)
過剰に反応している例。
寿司botとの華麗な連携プレー。