ワタタツの日記
2016 年 1 月 15 日 (金)
☆ バルス祭にTwitter APIとRubyを使って「バルス」とつぶやいた人にメンションするアプリを作った
バルス祭と挑発するTwitter社
今夜は『金曜ロードSHOW!』にてスタジオジブリの名作映画『天空の城ラピュタ』が放送されました。 ここ数年は、その放送を見ながらTwitterで実況しつつ、滅びの呪文「バルス」に合わせてみんなで「バルス」とつぶやくというのが、Twitterのストレステストになりつつ、Twitterユーザの楽しみになるというのがすっかり定着しております。
そんな、放送のたびに大量の「バルス」に耐えたTwitter社が、今日に合わせて、 「バルス」歓迎? Twitter公式も「ぜひお楽しみください」「もしかするとサーバ遅くなるかも」 (ITmedia ニュース) という挑発的な声明を出しておりました。
開発
これは受けて立とうと思い、Twitterで「バルス」とつぶやいた人に「ナイスバルス」などとメンションを送ろう、すると世の中平和になるのではないかと思いましたので、 放送開始の21時ぐらいからプログラミングを開始しました。 Ruby の簡単さと、twitter gem, user_stream gem のおかげで、 21:43ぐらいにだいたいできました。 あとは少しずつ条件をよくしたりして改良していきました。
本番の状況
このようにたくさんの方へメンションを飛ばすことが出来ました。 Twitter側からBANされないか戦々恐々としましたけど(笑) ただ、条件を満たしているツイートでもメンションを飛ばしていないことがあったので、タイムラインからの取りこぼしがあったようです。 本体は落ちなくなったにしても、まだまだTwitterのシステムは改善の余地がありそうです。
そうこうしているうちに、次のように、多くの方から温かいお返事をいただけました!
とてもうれしかったです。 「世の中平和になる」と考えていた通りでした!
工夫したところ
自分なりに工夫したところを箇条書きにします。
- retweet にはひっかからないようにした。
- 自分のツイートが「ナイスバルス」などのために、自分のツイートはひっかからないようにする。(最初はひっかかっていて無限ループに入っていた(笑))
- 「バルス」がツイート全体の中で少ししかない場合は、(何かバルスに関する説明・意見などの可能性が高いので) 無視するようにした。
- 「ナイスバルス」だけでなく、いくつかのメッセージを用意した。
オープンソース
ソースは GitHub で公開しています。
是非ご覧ください。
反省点としては、またしてもテストを書かなかったということです。 今後はテストをちゃんと書くようにしたいと思います。
さて明日あさっては大学入試センター試験ですね。 受験される方、監督される方、頑張ってください! (←本エントリと全然関係ない)