ossan-arrow

Lust und Liebe zu einem Ding macht alle Mühe und Arbeit gering.

GeekToolで天気が表示されない問題

東京に帰って来てみると、サブディスプレイに表示している天気の画像や温度・湿度が表示されなくなっていたので確認してみると、案の定Yahoo!天気の仕様が変更されていました。

今までは他の人が公開されていたものを使用させていただいていたのですが、仕様変更から日も浅く、情報が無かったので自分で作ることにしました。シェルスクリプトを書くのは初めてなものですから少し苦労しましたが、とりあえず暫定的に動くものが出来上がったので、メモも兼ねてここに書いておきたいと思います。

まずは気温から。ここで使っているのは私の住む寮が有る狛江市の天気なので、アドレスは適宜変更する必要があります。

curl --silent "http://weather.yahoo.com/japan/tokyo-prefecture/komae-shi-15015479/" | grep "<span class=\"c\">" | sed -e "s/\<span class=\"c\"\>\<span class=\"num\"\>//g" | sed -e "s/\<\/span\>\<span class=\"deg\"\>\&deg;\<\/span\>\<\/span\>/℃/g" | sed -e "s/x//" | sed -e "s/\<span class=\"c\"\>C\<\/span\>//g"

次に湿度。こちらも先程と同様アドレスは変更してください。

curl --silent "http://weather.yahoo.com/japan/tokyo-prefecture/komae-shi-15015479/" | grep "<span class=\"value\">" | sed -e "s/\<span class=\"value\"\>//" | sed -e "s/%\<\/span\>/%/"

で、問題だったのが天気のアイコン。Yahoo!天気のアイコンが変更されてフラットな感じのものに変わってしまったので、Skeuomorphicな(?)ものを探すことに。東京大学大学院学際情報学府准教授であるJason G. Karlin氏から助言をいただいて、AccuWeatherというサイトのものを使うことにしました。この場をお借りしてお礼申し上げます。

curl --silent "http://www.accuweather.com/ja/jp/tokyo/226396/current-weather/226396" | grep "\-xl\"" | sed "s/\<div class=\"icon i\-/http\:\/\/vortex.accuweather.com\/adc2010\/images\/icons\-numbered\//" | sed "s/\"\>\<\/div\>/.png/" | xargs curl --silent -o /Users/ossanarrow/Documents/Desktop/weather.png

一番最後の部分はコンピュータのどの領域に画像を保存しておくかを指定するものなので、これもそれぞれの環境に合わせて変更する必要が有ります。Yahoo!天気のスクリプトを使用されていた方はtmpフォルダに入れていらっしゃる方が多いと思います。

恐らくこれで正常に動作するとは思うのですが、リファレンスを横目に見よう見まねで書いたものなので、文法的な間違い等有りましたらお知らせいただけると勉強になるのでありがたいです。

※追記:改正版が出来ています! http://ossan-arrow.hatenablog.jp/entry/2013/10/01/204911