キャンプ場のWEB予約をキャンセル待ちするスクリプトを書いた

福岡近郊のキャンプ場でWEB予約出来るキャンプ場が僕が知る限り、五箇山のモンベルと波戸岬キャンプ場で、WEB予約だからか、とりあえず予約カレンダーがでたら片っ端から抑えて、行かなければキャンセルみたいな使い方をしている人たちが多いっぽくて、常に予約カレンダーは埋まっている。

大体見てると予定日の一週間前くらいにキャンセルがぽつぽつで始めるのでそのタイミングで予約すればいいのだが、こちとらも予約できる確証がないので予定が立てづらい。そこで正月休みのリハビリがてら、カレンダーの空き状況をRubyで取得できるコードを書いてた。

こいつを使って、下記のようなコードをcronで回している。

require 'camp'
require 'fileutils'
date="2021/1/16"

lockfile="/tmp/lock-#{date.gsub(/\//, '-')}"
sites=Camp.can_reserve_sites(Date.parse(date))
token="xxxxxxxxxxxxxxxxxxxxxxxx"
if !File.exists?(lockfile) && sites && sites.size > 0
    `curl -X POST -H 'Authorization: Bearer #{token}' -F 'message=#{date} #{sites.join("\n")}' https://notify-api.line.me/api/notify`
      FileUtils.touch(lockfile)
end

通知はLINE Notifyをピッっとcurlで実行しているだけで、下記のような通知が来る。

こういう日頃の自分の悩み事をシュッとコード書くの結構大事に思うから今後も続けたい。

ちなみに実行環境は熊野さんが教えてくれた、GCPの無料インスタンスで、次はここでNature Remoのアンド条件スクリプトでも書いて動かそうかな。