2016-10-31(月) [長年日記]
■ jpholidaypコマンドを使って平日だけ弁当を自動注文するようにした
職場で運用してる(自作の)たまご屋弁当の注文サービス、毎朝出社する前に自宅から注文していくようにしてるんだけど、今月は何度か忘れてしまって、こういう簡単な習慣すらも忘却してしまうのが老いなのか……とがっくりきているわけですが(←ただのうっかり者だろう)。
RTMに繰り返しタスクを入れておくのも良いが、せっかくサーバサイドをRestful APIで作ってあるんだから、自動化すればいいんである。
課題は2つ。
- 営業日のみ注文したい(土日と祝祭日は避ける)
- 弁当が不要な日には手動でキャンセルしたい
ふたつめの課題は単純で、注文したことを通知すればいい。以前作ったpushmeコマンドを使ってPushBulletに送りつけるようにした。意図しない注文がされたらすぐにキャンセルすれば良い。問題なければ無視するだけ。
ひとつめの課題は、日本の不規則な祝祭日を考慮するのが面倒なんだけど、k1LoW/holiday_jpというデータを使ったemasaka/jpholidaypというコマンド(要Python)があったのでありがたく利用*1。
こんな感じのコマンドを毎朝実行するcronで回せばよくなった*2:
#!/bin/sh if jpholidayp; then echo "週末なので弁当は注文しませんでした。" | pushme bento else charge={curl -s -d "date=`date +%Y%m%d`" https://example.jp/hoge` echo "弁当を注文しました。残金${charge}円です。" | pushme bento fi
あー、気が楽になった(←サービスがエラーになった場合を考慮してないぞ!!)。