用途:运行并验证 WSC 赛程数据的两阶段 CLI 流水线,保持赛程与赛果数据最新。第一阶段 crawl 用 Playwright 抓取 fv.dribl.com 并保存原始 JSON 分块;第二阶段 sync 将原始分块转换、合并并校验为 data/matches/{team}.json。
主要能力:抓取赛程与赛果、按轮次合并去重、Zod 校验输出结构、提供验证清单(轮次连续、总数一致、已赛有比分、未赛无比分、无重复)。
使用方式: 第一阶段:npm run crawl:fixtures -- -t "<team-slug>" -l "<league-name>" -s <year> -c "<competition>" 第二阶段:npm run sync:fixtures -- -t "<team-slug>" 其中 -t 与 -l 必填,-s 默认当年,-c 默认 FFV。sync 的 -t 必须与 crawl 输出目录一致。
输出结构:原始分块存于 data/external/fixtures/{team}/ 与 data/external/results/{team}/(gitignored),最终合并文件为 data/matches/{team}.json(提交)。合并时结果优先,去重键为 round-homeTeamId-awayTeamId。
适用场景:WSC 各队(如 seniors-mens、reserves-mens、state-league-2-men-s-north-west 等)赛程数据更新;赛季初无赛果时可用测试队(如 green-gully-seniors)端到端验证,但不要提交其数据。
限制:需安装 Chrome(npx playwright install --with-deps chrome);联赛名须与 Dribl 下拉框文本完全一致,否则报错;API 结构变化会触发 Zod 校验错误;资料未提供收费、平台支持范围等信息。