電車の遅延情報をtmuxへ表示

「しかし うまく でてこない !」

とりあえず、情報を取得するために公式サイトでも見た方が良いかなーと思ったのだけど、どうやらhttps://twitter.com/odakyuline_infoという小田急線の公式Twitterアカウントが存在するもよう。

同様に、山手線とかも非公式だけど、情報を吐いているアカウントがあるのでそちらを利用することにした。http://train.16tons.org/

とりあえず実験のためにPythonで以下のようなスクリプトを書きなぐる

中身

http://api.twitter.com/1/statuses/user_timeline/<ユーザID>.<形式>?count=<取得したいツイートの数> みたいな感じでTwitterAPI? を叩けるらしいので、urllib2ライブラリを使ってjson形式のツイートを取得する。
あとは取得したjsonから欲しい情報を展開しているだけでござる。

一つ注意しないといけないのは、created_atで手に入る時刻はグリニッジ標準時刻? 的なアレなので、そこのところをうまくしてあげないと日本の時刻とずれててあれなことになります。適当にアレしましょう。

そして動かしてみる。ちゃんと表示された。

.tmux.confを設定しる

たぶん色々説明してくれているサイトがあるので割愛。
intervalの設定とか、どうしようって感じだけどとりあえずは動作をみるだけなので適当に。
さっきのスクリプトにはchmodで実行権限を与えておこう


と、表示され……ない……だと?
おかしいねェーー! 別のシェルスクリプトとかはうまく出てきてんだけどなー、なんかtmux側のルールがあるのかしらん?
printだからダメなのかと、sys.stdoutを使ってみたけど意味なし。あとわざわざべっこにシェルスクリプトを作り、そっからこれを叩くような感じにしても意味なし。漏れそう!!!!!!!

とりあえずここで飽きたので試合終了。

こんご

謎が解けたら表示させたい。会社上がって、帰りに遅延に巻き込まれるとか嫌だもんね。
っていうかcron的なのでGrowlをキックするんでも良いような気がすんだよなぁ。しかし会社はWindowsなので、tmuxもGrowlもないけどね。wxPythonでも使おうかしら。

あといちいちリクエスト飛ばすのはいけてないので、tmuxで使いたいなら適当なところに取得した情報をキャッシュしておいて時刻で照会してから動かすような形式にしたほうが良いのかな。

TwitterAPIって初めて触ったけど手軽で面白い。最近少しづつインターネットの仕組みを覚えて行っている僕なのでした。