https://github.com/hydro-dev/ccs-api
Contest Control System API support for ACM/ICPC contests in Hydro OJ
https://github.com/hydro-dev/ccs-api
Last synced: 22 days ago
JSON representation
Contest Control System API support for ACM/ICPC contests in Hydro OJ
- Host: GitHub
- URL: https://github.com/hydro-dev/ccs-api
- Owner: hydro-dev
- License: agpl-3.0
- Created: 2025-10-21T09:42:24.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-12-03T08:15:59.000Z (2 months ago)
- Last Synced: 2026-01-13T10:37:26.556Z (30 days ago)
- Language: TypeScript
- Homepage:
- Size: 423 KB
- Stars: 15
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ccs-api

为 Hydro OJ 中的 ACM/ICPC 赛制比赛添加部分 CCS(Contest Control System) API 支持
## 特别提醒
开源项目不提供任何技术支持,如有需要,请 [添加 Hydro 官方 QQ 群联系群主咨询](https://qm.qq.com/q/NsYu3dNXa2)
## 已支持
- `/api`
- `/api/contests`
- `/api/contests/`
- `/api/contests//state`
- `/api/contests//languages`
- `/api/contests//problems`
- `/api/contests//teams`
- `/api/contests//organizations`
- `/api/contests//groups`
- `/api/contests//judgement-types`
- `/api/contests//submissions`
- `/api/contests//judgements`
- `/api/contests//runs`
- `/api/contests//event-feed` (支持 `stream` 和 `since_token` 查询参数)
## 未支持
- `webhooks` 接口
- `scoreboard` 接口
- `Persons` 接口
## 未计划支持
- `Awards` 接口
- `Accounts` 接口
- `Commentary` 接口
- `Clarifications` 接口
- 部分 `POST` / `PUT` / `PATCH` 接口
## How to use
- 安装插件并重启 Hydro OJ
```bash
yarn global add @frexdeveloper/hydrooj-plugin-ccs
hydrooj addon add @frexdeveloper/hydrooj-plugin-ccs
pm2 restart hydrooj
```
- 创建好 ACM/ICPC 赛制比赛,并将时间、题目、队伍等等一系列赛前设置全部设置完善,保持在随时可以开始比赛的状态即可。
> [!CAUTION]
> 本插件只考虑正规 XCPC 比赛场景,即假设比赛中途不会改动任何有关比赛设置、队伍、题目等一系列赛前应该设置完善的数据。如果迫不得已需要改动,请联系管理员[重置比赛 CCS 数据并重新初始化](#注意事项)
>
> 如果比赛中途重新初始化比赛,请重置 CDS Event-Feed 缓存,否则 CDS 会出现数据混乱。
- 进入 “控制面板-配置管理” 修改 CCS 账户的默认密码:

- 确定以上所有比赛的赛前基本设置均已设置完毕且不再改变后,进入比赛详情页面,点击右侧菜单栏中的 “(CCS) 初始化比赛” 按钮对比赛数据初始化:

- 使用 ICPC Tools CDS 连接 CCS,CCS URL 格式为:
`http(s):///ccs/api/contests/`
- 如果你的比赛在特定的域中,那么预期的 URL 格式应为:
`http(s):///d//ccs/api/contests/`
- 若配置无误,CDS 将会按预期正常工作。

> [!TIP]
> 比赛 ID 就在你进入比赛详情页面后的 URL 里:
>
> 形如 `http(s)://xxxx/contest/68ead09f61ab6063d9fcd417`,比赛 ID 就是 `68ead09f61ab6063d9fcd417`
## 注意事项
在初始化后如果出现比赛数据混乱或改动了任何有关比赛设置、队伍、题目等赛前数据,进入比赛详情页面,点击 “(CCS) 重置比赛” 对比赛数据进行重置。随后再点击 “(CCS) 初始化比赛” 重新初始化比赛数据:
> [!CAUTION]
> 注意此操作会将此比赛的 CCS Events 以及数据全部清空,重新初始化后按预期会恢复目前比赛已有的所有事件。

## PRs welcome ~