MORYLAB;

エンジニアの卵がソースコードやライフログを綴るブログ。

暴風警報をお知らせするスクリプト書いた。

暴風警報が出たらツイートするというクッソ簡単なスクリプトを書いてみました。

制作動機とか

先日の西日本豪雨の日。

福岡も大雨で大学周辺も避難勧告(後に避難指示へ)が出ていたのにもかかわらず、事務からの連絡がなかなか来ず、休講連絡が来たときにはバス通学の人たちはバスに乗ってしまっていたという事件がありまして。

弊学の休講連絡がいちいち遅い、と。

 

これでは市内の方から来ている人たちが可哀想すぎるので、休講規定に引っかかるイベントが発生したら僕のTwitterでお知らせするシステムを作ろうかな、と。

とりあえず今回はお試しということで、福岡/北九州/筑豊地方に暴風警報が出た場合にツイートするスクリプトを書いてみました。

 

書いてみよう

方針はこんな感じ。

・気象警報の一覧ページをスクレイピング
・該当地域に暴風警報が出たらツイート
暴風警報が出ていなければ何もしない(ログだけ取る)
・5:45  6:00  6:30  7:00  7:30にスケジュール実行

 

nokogiri使ってペペッとスクリプト書いて、簡単にTwitter連携してくれるgemを入れて、Heroku Schedulerでスケジュール実行すれば完璧では🤔

ということで、作ってみました。

めちゃくちゃ簡単につくれた。

 

デプロイしてみよう

いつもの git push heroku master でデプロイします。

今回はスケジュール実行をしたいので、Heroku Schedulerというアドオンのお世話になります。ちなみに、Herokuにクレジットカードを登録しないと使用できないので注意。

 

f:id:morrrry:20180717032452p:plain

 

Heroku Schedulerが追加できたら、OverViewページからHeroku Schedulerへ移動し、「Add new job」をクリック。

f:id:morrrry:20180717032714p:plain

ここから自動実行するコマンドと、その間隔を設定します。
時間設定の欄はUTCなので注意。

 

f:id:morrrry:20180717032954p:plain

設定できましたー 🎉🎉

これで、毎朝自動で暴風警報が出ていないかをチェックしてくれます。

 

 動かしてみた

このシステム、暴風警報が出ていなければ何もツイートしません。

稼働させてからずっと晴天続きで、次の台風が来ない限り暴風警報も出ないと思うのでしばらくは日の目を見ないでしょう...

ということで、うまく動けばこんな風になるはずです。

f:id:morrrry:20180717034206p:plain

 

交通機関の運行情報とかも簡単に取ってこれそうなので、暇な時にでも実装できたらなーと思ってます。