このプロジェクトについて

NYRRボランティア・スロット・ウォッチャーは、New York Road Runners(NYRR)のイベントでボランティアの席を確保するのを助けるための自動化スクリプトです。特に「9+1」プログラムの対象となる役割に焦点を当てています。GitHub Actions上で動作するため、ローカルマシンに依存せず、15分ごとにボランティア機会をチェックします。 動作原理: 1. 発見:ヘッドレスのChromium(Playwright)を使用してNYRRのボランティア機会ページをスクレイピングし、単純なHTTPリクエストではアクセスできないイベントリンクを収集します。 2. 空き状況の確認:各イベントページをGETリクエストで取得し、役割のステータス(Available vs. Sold Out)を判断し、9+1タグが付いているかどうかを識別します。 3. 通知:現在のステータスを保存された状態(`state.json`)と比較します。変化が検出された場合(例えば、席が空いたり、新しいイベントがリストされたり)、ntfy.shを介してユーザーの携帯電話にプッシュ通知を送信します。これにより、状態遷移時のみ通知が送られ、スパムが防止されます。 セットアップ: - iOSまたはAndroidにntfyアプリをインストールし、ユニークなトピックを購読します。 - GitHubリポジトリに必要なスクリプトを設定し、`NTFY_TOPIC`シークレットを定義します。 - ワークフローを手動で実行して状態ファイルを初期化し、通知が正しく動作することを確認します。 調整と制限: - ユーザーはcronスケジュールを調整したり、9+1フィルターを無効にしてすべての空きを監視したりできます。 - このツールはイベントページの匿名ビューを監視するため、事前予約期間中にログインしたMember+アカウント用に確保されたスロットは、一般公開されるまで検出されない可能性があります。 - reCAPTCHAを含む登録を自動化するものではなく、ユーザーが迅速に行動するためのアラートのみを提供します。