ICPC Tools+Resolver滚榜配置
博主运行环境
- 比赛OJ:DOMJudge V8.3.1.
- CDS(竞赛数据服务器):V2.6.1331
赛时大屏幕及滚榜属于 ICPC Tools 套件的一部分,其需通过 CDS 获取 DOMJudge 的数据。
注意CDS与ICPC-Tools必须为同一版本,否则可能无法运行!
配置CDS
-
CDS 通过 DOMJudge 的比赛 API 实时获取比赛数据。DOMJudge 的比赛 API 为
<DomServer IP>/api/contests/<Contest ID>。比赛 ID 可通过登陆管理员账号,在 Contests-All available contests 上查看。

-
CDS 的配置文件位于目录
cds/usr/servers/cds/config下,主要有 2 个配置文件:accounts.yaml:存储 CDS 预设各角色账密。cdsConfig.xml:CDS 的外部配置信息,包括与 DOMJudge 的对接信息。
-
编辑
cdsConfig.xml中的ccs标签:<ccs url="https://<DomServer IP>/api/contests/<Contest ID>" user="<CDS Username>" password="<CDS Password>" />url:DOMJudge 比赛 API,需修改<Contest ID>。user和password为已在 DOMJudge 上配置好的 CDS 专用账号,无需修改。
-
执行以下命令重启 CDS:
sudo systemctl restart cds。刷新 CDS 服务器首页,发现变为该场比赛即可。

大屏幕
大屏幕为 ICPC Tools 套件的一部分,分别为:
Presentation Admin:屏幕管理端,用于管理连接的屏幕、切换屏幕显示内容,在后台电脑上运行。Presentation Client:屏幕客户端,在现场大屏上运行,每一块屏幕都需运行一个客户端。
ICPC Tools 套件通过访问 CDS 的 API 获取数据。为保证可用性,所有 ICPC Tools 均需与 CDS 版本一致。
管理端
-
进入 Presentation Admin 文件夹,右键“在终端中打开”。

-
执行以下命令,程序运行时不要关闭终端!
./presAdmin.bat https://<CDS IP>:8443 <CDS Admin User> <CDS Admin Password>其中
<CDS Admin User>和<CDS Admin Password>为在 CDS 账密配置文件accounts.yaml中的管理员账号。 -
执行后,弹出管理窗口。左侧 Clients 为已连接的 Presentation Client,右侧为一些预设样式。

客户端
- 在大屏幕的机器上,进入 Presentation 文件夹,右键“在终端中打开”。

-
执行以下命令:
$env:ICPC_FONT="Microsoft Yahei"; ./client.bat https://<CDS Server IP>:8443/api/contests/<Contest ID> <CDS Username> <CDS User Password>- ICPC Tools 套件默认使用西洋字体,不支持显示中文,因此需手动指定一款中文字体。此处以微软雅黑(Microsoft Yahei)为例。
<CDS Username>和<CDS User Password>为在 CDS 账密配置文件accounts.yaml中的普通账户 (staff, analyst, public),不能以管理员账号运行!- 可选参数:
--name <name>:为客户端命名,便于在管理端中查看。--display <ID>:在第几块屏幕上显示。
-
启动后,屏幕弹出 ICPC Tools 的 Logo,管理端显示该屏幕上线。在右侧即可切换手动预设,点击下方“New”新建一套预设组合,用于自动轮播。


滚榜(Resolver)
滚榜流程:获取数据、生成奖项、滚榜。
Resolver 程序能接受的数据类型有很多,包括 CDS/CDP/event-feed 等,其中 json 为最简单的滚榜方式,缺点是无法显示队伍图片。本文档仅以此方式介绍。
-
通过 DOMJudge API 获取比赛的 event-feed:
http://<DOMServer IP>/api/v4/contests/<Contest ID>/event-feed?stream=false,通过管理员账密登录。下载后重命名为event-feed.ndjson。 -
进入 Resolver 文件夹,运行
awards.bat用于生成奖项。数据类型选择 event-feed 并加载。

- 等待解析数据,点击 Medal 设置奖牌个数。点击 Save event feed,其他人奖项设置为Others,并选择Show as list,重新保存为 event-feed.ndjson。


4. 进入 Resolver 文件夹,右键“在终端中打开”。

-
执行以下命令,进入滚榜:
$env:ICPC_FONT="Microsoft Yahei"; ./resolver.bat ./event-feed.ndjson可选参数:
--singleStep:跳过铁牌区,铁牌区以自动滚动的形式略过。--judgeQueue:跳过铁牌区,铁牌以评测队列形式略过。注意开启此项功能必须其他人奖项设置为Others,并选择Show as list。--test:若当前比赛未结束,强制进入测试模式滚榜--display_name "{team.display_name} ({org.formal_name})":在滚榜页面以队伍名(学校名)形式显示。

-
滚榜快捷键:
Ctrl-Q:退出滚榜Space/f:下一步r:上一步0:重新开始+/⬆:加速-/⬇:减速p:暂停

浙公网安备 33010602011771号