2011年6月19日日曜日

朝のリレーTwitterボットを作ったよ!

@morning_relay

世界の都市の日の出の時間につぶやく

名前でわかる通り、詩人の谷川俊太郎さんの「朝のリレー」に影響されて作りました。有名な「カムチャッカの若者が」という詩ですね。小学校くらいの教科書に載っていた記憶が鮮明に残ってます。

つぶやくタイミングは朝がリレーされた、都市が日の出を迎えたときです。
今登録している都市は、世界1574都市になります。すべての都市をつぶやいても数が多すぎてわからないので、その中から一日10都市をつぶやくようにしてます。

東の都市から、徐々に西の都市へ日の出が移動していくのが感じられると思います。


現地の公用語で「おはよう」

つぶやく内容は、現地の時刻での日の出の時間、国名、都市名、それと現地の公用語で「おはよう」の言葉です。実際の内容は下の画像の内容になります。

下のブルガリア語の例からもわかると思いますが、見る環境によっては「おはよう」部分は文字化けすることがあります。タイ語などはPCでは見れるけど、AndroidのTweetDeckだと文字化けしてしまうなどあるみたいです。どのように発音するのがわかればさらにいいんですけどね。

公用語というのはあくまで基本です。「おはよう」に関してはすべて手作業で国ごとに、Wikipediaで公用語を調べて翻訳して登録しています。公用語より英語の方が普及率が高いと英語にしてるかもしれません。Google翻訳で翻訳しているので、Google翻訳で翻訳できない言語は対象外です。

まだまだ、登録している「おはよう」も少ないので随時追加していきます。「おはよう」がない場合は、何も表示されません。


地図で確認出来る

それぞれのつぶやきに緯度経度の情報を付加しているので、地図を確認できるクライアントであればすぐにどこで日の出が起こっているかわかります。知らない都市でもすぐにわかるのがいいところですかね。

ズームの指定ができないようなので、もっと大きな範囲で見たいのに詳細に表示されてしまうのが難点でしょうか。改善方法があれば直したいポイントです。


その他

フォローをすると24時間以内にフォローを返します。
※2012/06/24 追記。
自動フォロー返しの動作を止めました。

今回の説明はボットの概要の説明だけなので、機会があればどうやって作ってるかとかも書けるといいですね。
利用しているものだけ羅列しておきます。
Python
Google App Engine
BeautifulSoup
EarthTool
Google Maps API WebService
こんな感じですかね。

アイコンは、イスタンブールのアジアサイドからヨーロッパサイドへ渡るときにマルマラ海から見た、夕日です。