Skip to content

Lanly109/icpc-resolver-from-domjudge

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

icpc-resolver-from-domjudge

A tools to generate xml file of icpc-resolver via domjudge RESTful API.

一键生成带有奖项信息的滚榜数据,适用于resolver

默认生成奖项:

  • 全场第一名(World Champion)
  • 正式队伍前三名
  • 金牌队伍
  • 银牌队伍
  • 铜牌队伍
  • 最佳女队奖
  • 正式队伍的一血奖
  • 顽强拼搏奖
  • 第一发WA奖

其中打星队伍会颁发金银铜,但不会占用总获奖名额。

在生成json的同时还会生成对应名字的csv,包含队伍的信息和奖项,方便制作获奖队伍PPT。

resolver源码阅读记录:滚榜程序Resolver源码阅读

Prerequisite

推荐 icpc-resolver 2.5.940icpc-resolver 2.5.1160

Usage

  1. setup config.json

config.json

{
  "url": <contest api url>,
  "username": <username whose role is api_reader>,
  "password": <password of the user>,
  "xml": <output xml file name>,
  "json": <output xml file name>,,
  "gold": <the number of gold medals>,
  "silver": <the number of silver medals>,
  "bronze": <the number of bronze medals>,
  "gold_show_list": true/false,
  "silver_show_list": true/false,
  "bronze_show_list": true/false,
  "honors_show_list": true/false,
  "no_occupy_award_categories": [<group_id1>, <group_id2>, ...],
  "award_best_girl": [<group_id1>]
}
  • 登录的user需为api_reader角色。

  • no_occupy_award_categories表示给位于牌区的打星队也能够展示图片(赋予Star Team的奖项)。

  • 打星选手不参与一血奖。

example

  "url": "https://www.example.com/api/v4/contests/{cid},
  "username": "cds",
  "password": "cds",
  "xml": "events.xml"
  "json": "event-feed",
  "gold": 16,
  "silver": 32,
  "bronze": 47,
  "gold_show_list": false,
  "silver_show_list": true,
  "bronze_show_list": true,
  "honors_show_list": true,
  "no_occupy_award_categories": ["18", "20"],
  "award_best_girl": ["11"]
  1. run main.py
python3 main.py

将生成的event-feed.json文件放入CDP格式的目录下,运行Resolver

./resolver.sh /path/to/cdp

tip

Resolver 2.5版的CDP目录格式如下:

.
├── contest
│   └── logo.png        // resolver主页面的图片&无照片队伍的默认照片
├── event-feed.json     // 上述python工具生成的json
├── organizations       // Affiliations照片,只要某Affiliations的队伍有logo,其他同Affiliations的队伍就都是该logo
│   ├── 2              // Affiliations的id
│   │   └── logo.png
└── teams               // 队伍照片
    ├── 3000            // 队伍的id
    │   └── photo.png   
    ├── 3001
    │   └── photo.png
    ├── 3009
    │   └── photo.png
    └── 3010
        └── photo.png

更新log

2025.05.11

适配PTA版本

2025.04.18

更新适应domjudge >= 8.2。PTA版本未测试!

7.0的请参考domjudge7分支。

提供一个CDP格式的demo文件夹,resolver的运行指令:

./resolver.sh ./demo

2023.05.14

新增适用于PTA平台的,CCPC Final评奖规则的类PTA_School。奖项用中文+Emoji表情,字体用的是Noto Sans CJK. 评奖规则:

  1. 按学校排名颁奖金银铜
  2. 本科组与专科组分开颁奖
  3. 非校内第一队伍按后续队伍的校排作为排名。

pta.json说明:

{
  "url": "https://pintia.cn/api/xcpc/problem-sets/<PID>/",
  "file":"",
  "username": <pta email>,
  "password": <pta password>,
  "xml": "events",
  "ben": {
      "group": [1],
      "gold": 10,
      "silver": 20,
      "bronze": 30,
      "first": 3,
      "suffix": ""
  },
  "zhuan": {
      "group": [2],
      "gold": 1,
      "silver": 2,
      "bronze": 3,
      "first": 3,
      "suffix": "(专科)"
  }
}
  • file指本地的eventfeed,若不为空则从本地文件读取,否则通过url获取。
  • ben即本科组奖项设置,zhuan即专科组奖项设置,group表示参与评奖的组别,然后是金银铜,以及冠亚季(前3),suffix表示奖项的后缀。(感觉应该放到一个medal列表更好)

2022.10.06

不用再获取Basic Authorization key,改为用账号登录的方式

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%