Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@tamanugi

デカい!血管うねうねマスクメロン!と叫んでくるSlack Botを作った💪

More than 1 year has passed since last update.

Slack Advent Calendar 2018 - Qiita の15日目の記事です。

遅刻して申し訳ございません :bow:

概要

みなさんはボディビル大会でのかけ声という文化をご存知でしょうか。

辛く苦しいトレーニングを乗り越え、自分だけの肉体を作り上げてきた選手たち。ステージにたどり着くまでに、どれほどの努力を積み重ねてきたのか。そのバックボーンへの感動と賛美の声が自然と声に出てしまう。それがボディビル大会における"かけ声"の正体。
--- スモール出版 「ボディビルのかけ声辞典」 より引用

最近ではテレビなどでもよく特集されているので、ご存知の方も多いと思います。
(自分もネットで話題になっていて知りました)

とても個性的で面白いかけ声が多く、会社でも一部のメンバーがよく使っていたりまします

エンジニア> このコントローラー、厚みがあってデカい!
エンジニア> (JSファイルが500KBを)切れてる!切れてる!

というわけで、かけ声をランダムに発言してくれるBotを作ってみました💪

作成したもの

スクリーンショット 2018-12-16 09.43.05.png

:muscle: が最後につくか,emoji reaction で :muscle: がつけられたときに反応します🏋️‍♂️

実装

実装は Elixir で行いました。
Slackへの連携部分は Elixir-Slackというライブラリがあったのでそちらを使用しています。

  def handle_event(message = %{type: "reaction_added", reaction: "muscle" <> _}, slack, state) do
    %{item: %{channel: channel}, item_user: user_id} = message
    shout(user_id, slack, channel)
    {:ok, state}
  end

  def handle_event(message = %{type: "message"}, slack, state) do
    %{text: text} = message
    if text |> String.ends_with?(":muscle:") do
      shout(message.user, slack, message.channel)
    end
   {:ok, state}
  end

SlackからのRTMをパターンマッチして処理をかけるので、とても実装が楽でした。

かけ声は ボディビルのかけ声辞典とネットでまとめられたものを載せています。

みなさんもよかったら使ってみてください💪
(個人的には そこまで仕上げるために眠れない夜もあっただろうに が好きです。デプロイした人に言ってあげたい)

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
tamanugi

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?