Twitterボットを作るのがひそかな趣味
プログラミングの勉強にと思ってTwitterボットを作ってみたら、ことあるごとに「あっ、これもボットになってたら便利そう」と思うようになってしまって、さらにいくつか作るという流れ。それなりに便利なのができると、ほっといてもフォロワーが増えていくのが楽しくなってしまう。今まで作ったボットのまとめ。
深田久弥bot @fukadakyuya_bot
TLでフォロワーのみなさまと盛り上がったのがきっかけで、初めて作ったTwitterボット。ボットをフォローしているユーザが深田久弥の著書「日本百名山 (新潮文庫)」に含まれる山名を含んだつぶやきをすると、同書の中からその山の特徴などを表した部分をリプライする。また、1日1回7:00にはランダムに抜粋をつぶやく。
@doublemarket 夕方、日本海に沈む太陽の余映を受けて、白山が薔薇色に染まるひと時は、美しいものの究極であった。みるみるうちに薄鼠に暮れて行くまでの、暫くの間の微妙な色彩の推移は、この世のものとは思われなかった。
— 深田久弥bot (@fukadakyuya_bot) 2014, 7月 27
最初はPHPで書いたのだがいつの間にかうまく動かなくなったりして、Rubyで書き換えた。ソースコードはGithubに上げてある。作った頃はRubyのエコシステムが良く分かってなくて、bundler使わずにやってたりして、自分でもどうやって動いてるのか理解してなかったなあw リプライする山名にどういう傾向があるのか気になったので、山名ごとにリプライ数を集計する仕組みも作ってみた。基本的に富士山がダントツに多いのだが、例えば最近だと吾妻山や蔵王山(火山活動活発化)、立山(アルペンルート開通)といったように、急にリプライ数が増えた山があると、大体そこでは何かあったということが分かって面白い。
山の天気 @yamatenki
毎朝7:30前後に、その週末に天気がいい(登山日和になりそうな)山を地域ごとにツイートする。 土曜と日曜それぞれ分けて判断するようになっている。祝日などの連休にも対応させたいが、めんどくさそうなので先送りしてしまっている。
【南アルプス】今週末、山に行くなら「甲斐駒ヶ岳」「仙丈岳」「鳳凰山」「北岳」「間ノ岳」、日曜日なら「塩見岳」「悪沢岳」「赤石岳」「聖岳」「光岳」の天気が良いようです。 http://t.co/YU8l9oRZUo — 山の天気 (@yamatenki) 2015, 5月 15
山名を含んだメンションを送ると、少し詳しい天気予報をリプライしてくれる。
@doublemarket【今週末の丹沢山】03/29土曜日は、くもり時々晴れ、降水確率は12時まで30%、18時まで30%。03/30日曜日は、くもり一時雨、降水確率は12時まで50%、18時まで50%。 (神奈川県西部) http://t.co/0Kh75x9Egg
— 山の天気 (@yamatenki) 2014, 3月 25
こちらも最初はPHPで作ったが今はRuby製。天気が一覧で見れるページも定期的に生成している。 深田久弥botと違ってうざくない作りなのもあってか、フォロワーが4600以上(2015年5月)もいて、自分の作ったボットの中では一番多い。
hatebu english @hatebu_e
はてなブックマークが一定数以上付いた日本語以外の(正確には、タイトルと本文に全角文字を含まない)記事をツイートする。Yakstという主に英語のブログ記事などを翻訳して公開するサイトを解説しているのだが、そのネタ探しの足しになるかと思って作った。
GitHub Engineering (3 users) http://t.co/xWxAkjVCZI http://t.co/aDzjTh7OfY — hatebu english (@hatebu_e) 2015, 5月 19
誰得なのかよく分からないボットなので、フォロワーは少ないw
AWS障害情報(全リージョン) @awsstatusjp_all
AWS障害情報(東京リージョン) @awsstatusjp
仕事でAWSを本格的に使い始めたので、手軽にAWSのステータス情報を知れる手段がないかと思ったのだが、いい感じのボットがなかったので作った。時刻を日本時間に直し、定型的な文言はなるべく日本語に翻訳するようにしている。GCPとかのボットもなければ作ってみようかな。
日本時間2015年05月19日(火) 07:46:53 EC2 (サンパウロ) お知らせ Network Connectivity http://t.co/LMkNfK2ZYm
— AWS障害情報(全リージョン) (@awsstatusjp_all) 2015, 5月 18
日本時間2015年05月16日(土) 00:36:27 EC2 (東京) 正常稼働中 [復旧済み] Network connectivity http://t.co/aq5bOVSJ4H
— AWS障害情報(東京リージョン) (@awsstatusjp) 2015, 5月 15
ちなみに、プロジェクトでHipchatやSlackなどのチャットツールを使っている場合、それぞれのTwitter連携機能を使ってこのボットのツイートを拾うようにすれば、AWSの障害情報が流れてくるようになって便利。
ボットを作ると、プログラミングの基礎もだが、Twitter APIやスクレイピングのテクニックなど、作るボットに応じて色々な技術が必要とされるので、新しい言語を覚える人とか、そもそもプログラミング初心者にはもってこいの課題になる。オススメです。