| @技術/プログラミング
以前は電車の本数多いところに住んでたので帰りの電車の時間とか気にしたことなかったけど、いまは郊外に住んでるので電車の本数少なくて、一本乗り遅れると駅で 20 分待たされたりする。特に遅くまで仕事...

以前は電車の本数多いところに住んでたので帰りの電車の時間とか気にしたことなかったけど、いまは郊外に住んでるので電車の本数少なくて、一本乗り遅れると駅で 20 分待たされたりする。特に遅くまで仕事してたりすると電車の本数がみるみる少なくなる。なので乗るべき電車に乗り遅れないように Yahoo! 乗換案内の通勤タイマーをよく使ってる。家まで帰る電車の発車時刻まであと何分かがカウントダウン表示されて便利。

ただ iPhone のウィジェットで見るとちょっともっさりしててだるい。 Pebble とかでサクッと確認できないかと思っているけど Pebble 入手して 10 ヶ月以上経つにもかかわらず Pebble 用のソフトを自分で作るという機運が高まらず今日に至る。

ある晩ふと、これって BitBar でできるんじゃねと思った。 BitBar は Mac のメニューバーに CLI で出力される情報を表示されることができるソフトで、 Netatmo Weather Station の計測値を表示するのに使っている。 Mac のメニューバーから二酸化炭素濃度や湿度確認できて便利。こんな感じ。これの通勤タイマー版が欲しい。

取り急ぎ時刻表の情報必要だけどちょっと探した感じでは簡単に時刻表取れるような API なかった。ので Yahoo! 乗換案内の時刻表をダウンロードして pup というコマンドラインの HTML パーサーで JSON 化し、それを jq に食わせて整形して良い感じの JSON にするという風にした。

# curl して HTML 取得
curl -s http://transit.yahoo.co.jp/station/time/28236/?gid=6400 | \
# HTML から必要な情報取り出して JSON 化
pup 'table.tblDiaDetail [id*="hh_"] json{}' | \
# JSON を良い感じに整形
jq '[.[] | { hour: .children[0].text, minutes: [.children[1].children[].children[].children[].children[].children | map(.text) | join(" ") ] }]'

得られる JSON はこんなのになる。(福岡市地下鉄空港線天神駅の姪浜方面の時刻一覧)

[
  {
    "hour": "5",
    "minutes": [
      "36",
      "42",
      "56 筑"
    ]
  },
  {
    "hour": "6",
    "minutes": [
      "8",
      "12 筑",
      "17",
      "26 筑",
      "34",
      "39",
      "43 筑",
      "56 筑"
    ]
  },
  ...,
  {
    "hour": "24",
    "minutes": [
      "6",
      "12 筑"
    ]
  }
]

これをコマンドラインで良い感じに表示するスクリプトを Ruby なり Shell Script なりで書いて BitBar に登録すればメニューバーから次の電車を確認できるようになり便利。

この記事を参照している記事

  • 77e567a44e73ed4e21530b5962f70a9e
    BitBar で私家版通勤タイマー (1) - portal shit! の続き。JSON から情報を読み取って出力する奴は Ruby で書こうかなと思っていたんだけど、先日新しい上司と 1 on 1 をしていてどんな言語を使えるかの話になっ...

この記事に似ている記事

  • 1067 bitbar jikoku
    BitBar で私家版通勤タイマー (2) - portal shit! の続き。時刻表を JSON 化した奴を食わせて 60 分以内(まえの記事では 30 分以内にしてるけど 60 分以内に変えた。パラメーターで調整できるようにすると良さそ...
  • 77e567a44e73ed4e21530b5962f70a9e
    BitBar で私家版通勤タイマー (1) - portal shit! の続き。JSON から情報を読み取って出力する奴は Ruby で書こうかなと思っていたんだけど、先日新しい上司と 1 on 1 をしていてどんな言語を使えるかの話になっ...
  • Netatmo Weather Station December 28, 2015
    1044 netatmo weather station
    Netatmo Weather Station皆さん、部屋に温度計とか湿度計置いてますか。僕は置いてます。置いてない人は温度とか湿度気になりませんか? 僕は気になります。エアコンとか何度くらいになったらつければよいのだろうとか思いませんか? ...
  • カレ主失格 December 04, 2016
    30583862784 892078bff4 h
    アドベントカレンダー、去年は自分で一個作ってみた。 できる Mac OS X Advent Calendar 2015 - Adventar ![](https://dl.dropb...
  • Screenshot
    Google Analyticsにログインしたら、急にアクセスが40%も増えててビックリ。何事かと思ったらYahoo!ニュースからリンクされてたようでした。 http://dailynews....
  • Screenshot
    最近、映画の感想を書くときはなるべくMicroformatsのhReviewで書くようにしてます。検索ロボットにもっと僕の映画評読んでもらいたいと思って。Googleの映画検索はとても便利なんですけど、レビューの点数拾ってきてるのは映画生活と...

Comments


(Option)

(Option)