这个项目能做什么

NYRR 志愿者空位监视器是一个自动化脚本,旨在帮助志愿者在纽约路跑协会 (NYRR) 活动中抢占席位,特别是针对符合 '9+1' 计划的职位。该脚本运行在 GitHub Actions 上,无需本地机器,每 15 分钟执行一次。 工作原理: 1. 发现:使用无头 Chromium(Playwright)来抓取 NYRR 志愿者机会页面,收集无法通过普通 HTTP 请求获取的活动链接。 2. 可用性检查:通过简单的 GET 请求获取每个活动页面,判断职位状态(可用 vs. 已售罄),并识别是否带有 9+1 标签。 3. 通知:将当前状态与保存的状态(`state.json`)进行比较。如果检测到变化(例如,空位出现或新活动发布),则通过 ntfy.sh 向用户的手机发送推送通知。这样可以避免垃圾信息,因为通知只在状态转换时发送。 设置: - 在 iOS 或 Android 上安装 ntfy 应用,并订阅一个唯一的主题。 - 配置 GitHub 仓库,添加必要的脚本,并设置 `NTFY_TOPIC` 密钥。 - 手动运行工作流以初始化状态文件,并验证通知是否正常。 调整与限制: - 用户可以调整 cron 时间表,或禁用 9+1 过滤器以监控所有空位。 - 该工具监控的是匿名视图的活动页面,因此在提前预订窗口期间,为登录的 Member+ 账户保留的席位可能直到通用开放时才会被检测到。 - 它不会自动注册(这涉及 reCAPTCHA),只会提醒用户快速行动。