ICPC Tools+Resolver滚榜配置

博主运行环境

  • 比赛OJ:DOMJudge V8.3.1.
  • CDS(竞赛数据服务器):V2.6.1331

赛时大屏幕及滚榜属于 ICPC Tools 套件的一部分,其需通过 CDS 获取 DOMJudge 的数据。

注意CDS与ICPC-Tools必须为同一版本,否则可能无法运行!

配置CDS

  1. CDS 通过 DOMJudge 的比赛 API 实时获取比赛数据。DOMJudge 的比赛 API 为 <DomServer IP>/api/contests/<Contest ID>。比赛 ID 可通过登陆管理员账号,在 Contests-All available contests 上查看。
    在这里插入图片描述

  2. CDS 的配置文件位于目录 cds/usr/servers/cds/config 下,主要有 2 个配置文件:

    • accounts.yaml:存储 CDS 预设各角色账密。
    • cdsConfig.xml:CDS 的外部配置信息,包括与 DOMJudge 的对接信息。
  3. 编辑 cdsConfig.xml 中的 ccs 标签:

    <ccs url="https://<DomServer IP>/api/contests/<Contest ID>" user="<CDS Username>" password="<CDS Password>" />
    
    • url:DOMJudge 比赛 API,需修改<Contest ID>
    • userpassword 为已在 DOMJudge 上配置好的 CDS 专用账号,无需修改。
  4. 执行以下命令重启 CDS:sudo systemctl restart cds。刷新 CDS 服务器首页,发现变为该场比赛即可。

在这里插入图片描述

大屏幕

大屏幕为 ICPC Tools 套件的一部分,分别为:

  • Presentation Admin:屏幕管理端,用于管理连接的屏幕、切换屏幕显示内容,在后台电脑上运行。
  • Presentation Client:屏幕客户端,在现场大屏上运行,每一块屏幕都需运行一个客户端。

ICPC Tools 套件通过访问 CDS 的 API 获取数据。为保证可用性,所有 ICPC Tools 均需与 CDS 版本一致。

管理端

  1. 进入 Presentation Admin 文件夹,右键“在终端中打开”。

    在这里插入图片描述

  2. 执行以下命令,程序运行时不要关闭终端!

    ./presAdmin.bat https://<CDS IP>:8443 <CDS Admin User> <CDS Admin Password>
    

    其中 <CDS Admin User><CDS Admin Password> 为在 CDS 账密配置文件 accounts.yaml 中的管理员账号。

  3. 执行后,弹出管理窗口。左侧 Clients 为已连接的 Presentation Client,右侧为一些预设样式。

在这里插入图片描述

客户端

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

在这里插入图片描述

  1. 执行以下命令:

    $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>:在第几块屏幕上显示。
  2. 启动后,屏幕弹出 ICPC Tools 的 Logo,管理端显示该屏幕上线。在右侧即可切换手动预设,点击下方“New”新建一套预设组合,用于自动轮播。

在这里插入图片描述
在这里插入图片描述

滚榜(Resolver)

滚榜流程:获取数据、生成奖项、滚榜。

Resolver 程序能接受的数据类型有很多,包括 CDS/CDP/event-feed 等,其中 json 为最简单的滚榜方式,缺点是无法显示队伍图片。本文档仅以此方式介绍。

  1. 通过 DOMJudge API 获取比赛的 event-feed:http://<DOMServer IP>/api/v4/contests/<Contest ID>/event-feed?stream=false,通过管理员账密登录。下载后重命名为 event-feed.ndjson

  2. 进入 Resolver 文件夹,运行 awards.bat 用于生成奖项。数据类型选择 event-feed 并加载。

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
4. 进入 Resolver 文件夹,右键“在终端中打开”。

在这里插入图片描述

  1. 执行以下命令,进入滚榜:

    $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})":在滚榜页面以 队伍名(学校名)形式显示。

在这里插入图片描述

  1. 滚榜快捷键:

    • Ctrl-Q:退出滚榜
    • Space/f:下一步
    • r:上一步
    • 0:重新开始
    • +/:加速
    • -/:减速
    • p:暂停
posted @ 2026-03-14 12:53  椰萝Yerosius  阅读(3)  评论(0)    收藏  举报