課題
猟銃等講習会(初心者)とは銃砲等所持許可を得るためにクリアしないといけない一番最初のステップになっていて一般人が銃で狩猟したいとなると避けては通れない。
そして東京都の猟銃等講習会(初心者)を予約するには警視庁の予約サイトから申し込み仮予約を勝ち取りその後に本予約をするということをする必要がある。この仮予約というのが厄介で毎回募集が開始された直後には、少なくとも募集開始1時間30分後には埋まってしまうみたいな状況でなかなか申し込みができない。
私は1回受講して考査に落ちてしまい、再度チャレンジするためにまた仮予約をとる必要があったのだが新しい募集が始まっていると気づいたときには枠は埋まってしまって困っていた。 前回の仮予約は運良くキャンセルがでてそこに潜り込めたという経緯だったので、募集直後も継続して狙っていくとともにキャンセル枠もなにかしらの手段で監視して狙っていこうと決めた。
キャンセル枠を検知するための対策
さくらのVPSでセルフホストにしているn8nというワークフローツールを有効活用できてなかったこともあり、n8nを使ってキャンセル枠がでたら個人のSlackに通知するというワークフローを組んだ。
ワークフローは以下の図のような感じ。

ステップを雑に説明すると以下のようになっている。
- scheduleTriggerで5分に1回起動*1
- 予約サイトにGETリクエストを飛ばす
- レスポンスをAI Agentに投げる
- AI AgentがOpen AI ChatGPT APIを叩いて予約可能か予約不可か返す
- もし予約可能であればSlackに通知
プロンプトは以下のように雑になげてしまった。*2
{{ $json.data }}の/html/body/form/main/div/div[2]/div[4]/div[2]/div[2]/tableを見て予約可能になっている日時があれば"予約可能"と日時が無ければ"予約不可"とだけ返してください。
結果
運良く2時間の監視で枠が空いているのを検知し仮予約をすることができた。


次は考査に落ちないようにしっかり勉強していきたい。