Codeforces API 查询分析
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_e267c873/codeforces-api。
技能介绍
解决什么
当你需要分析某位选手的 rating 变化曲线、批量拉取某场比赛的提交状态,或按标签筛选特定难度的题库时,通常要手动翻页点击 Codeforces 网页。这个过程在自动化脚本中极易卡壳,原因在于官方 API 有独立的 base path,且认证请求涉及 SHA512 签名与 apiSig 参数计算。本技能将这 18 个端点的调用逻辑(含 16 个公开端点与 2 个需认证的端点)封装为标准化工作流。
工作原理
技能通过分层逻辑处理请求:
- 公开端点:默认使用 WebFetch 直接请求,如
contest.standings或user.rating,无需编写额外脚本。 - 认证端点:涉及
user.friends或group.isManager时,触发scripts/cf_api.py,自动计算签名并拼接参数。 - 领域解读:拉取到的原始数据会被自动翻译为开发者友好的格式,例如将
creationTimeSeconds转为YYYY-MM-DD HH:MM,或者根据 Ratings 分段(灰-绿-青-蓝-紫-橙-红)标注用户水平。 - 限流适配:针对 API 每 2 秒 1 次的限制,技能会在连续请求间自动插入等待逻辑,并在遇到 HTTP 429 时执行退避重试。
适用边界与注意点
- 本技能专注于 Codeforces 官方 API,不适用于 AtCoder、洛谷或 LeetCode 等其他平台。
- 在 Claude Code 环境中,若
claude.ai预检查域名被网络策略拦截,WebFetch 可能无法访问codeforces.com,此时可切换至curl兜底方案。 - 认证功能需持有有效的
apiKey与apiSecret,建议通过命令行参数传入而非硬编码,避免安全风险。
使用场景
- 分析师需要在季度复盘时,拉取主力选手近期的rating变化曲线,以评估竞技状态的起伏与训练效果。
- 助教在赛后统计时,需要批量拉取整场比赛的提交记录,以快速分析常见错误原因和班级的整体正确率。
- 选手在备赛期间,希望根据特定标签和rating范围筛选题目,从而有针对性地进行专项弱点突破训练。
- 社区运营在核实管理员身份时,需要调用接口查询某位用户是否具备特定的群组管理权限和好友关系。
适合人员
- 竞赛教练,需要批量拉取比赛榜单与提交状态来快速生成赛后复盘报告。
- 算法竞赛选手,希望按难度和标签快速检索题库并追踪个人rating历史曲线。
- 在线评测系统开发者,需要集成官方认证接口来同步Codeforces的用户好友列表与权限数据。