Gajulog


2021.02.26 [years ago today] edit

 jma_icon.rb

tDiaryのプラグインを作って、天気のアイコンを表示できるようにしてみた。

以前作ったLWWS用のお天気アイコンの改変で、データ取得先のURLとデータのフォーマットの違いに対応しただけ。 まあ他にも細かい違いはありますが。

基本的には日記のアップデート時に天気予報APIを叩いてJSONを取得し、JSONに記載された予報から必要なデータを抽出してローカルに保存。日記の表示時には保存したデータを見ています。

アイコン画像はデフォルトでは気象庁のURLを指定して表示しますが、全部ローカルにダウンロードして適当な場所に置き、そこを指定することも出来ます。

ただ、取得できるのは基本的に「天気予報」なので、当日に発表される天気予報(5時・11時・17時の3回)は、その時間以降のことしか書かれていません*1

これだとその日一日の天気の概況が分からないので、変な話ですが、当日の予報自体は使わず、前日に「明日の天気」として発表された予報を、当日の天気として使います(ややこしい言い方)。たとえ外れていたとしても(笑)。

つまり、日記の更新時にJSONを取得はするのですが、既に当日朝5時以降に発表された予報に更新されていたら、前回取得してキャッシュしておいたJSONから当日の予報を取得します。朝5時前にその日の日記を書くことはほぼ無いでしょうから、つまりは常に前回キャッシュしたJSONから取得することになるということです。今回取得したJSONは、次回の更新のために上書きでキャッシュしておきます。

なので、ほとんどの場合、使い始めの日は、日記を更新してもAPIを叩いてローカルにJSONを取ってくるだけ。翌日に日記を更新して初めてアイコンが表示されるようになります。 また、前回更新時に取得したJSONから当日の情報を取得するということは、日記を毎日更新しない人にとっては基本的に使い物にならない、ということです(笑)*2

日記の更新と関係なく毎日自動的に取得するスクリプトをバックグラウンドで走らせられる人はそのように改造するのもいいかと。

Tags: tDiary

*1 例えば5時発表の時点でその日の最低気温は空欄となるし、17時発表の天気予報は日中の天気が分からない

*2 実際には2日後の予報まで取れるので1日おきでも可。また、日記の日付と同じ日またはその翌日に更新しないと天気の取得は行いません

エースコック「スーパーカップ大盛り いか焼そば」復活、「いか天ふりかけ焼そば」新登場も

食品産業新聞社から。 え?ついこないだ販売終了発表したばっかりじゃん、と思ったら、

もう2年も経ってた。時の流れは速い。 とはいえ復刻企画でもこんなに早くないだろってぐらい早い復活ですね(笑)。 閉店セールを何年もやってる靴屋みたいな感じだ。