DDNet 倒数荣耀榜 · 给成绩垫底的玩家办的颁奖典礼
这个站是纯静态的,不会去跑 3.78GB 的官方全量库。榜单由 rankings.py 扫描 dump 后产出的两个 JSON 驱动,页面按相对路径读取:
python3 rankings.py --url https://ddnet.org/stats/ddnet-sql.zip --top 100 --out web/rankings # 只出某个分类(Novice / Moderate / Expert / Brush / Training / Solo) python3 rankings.py --url https://ddnet.org/stats/ddnet-sql.zip --category Expert --top 100 --out web/rankings
产出 rankings_slowest.json / rankings_lastplace.json,放到本页同目录即可自动生效。数据放在别处时,用下面任意一种方式接入,不用改代码、不用重新部署:
· 目录前缀:rankings.html?data=https://你的地址/
· 单文件直连:rankings.html?slow=<URL>&last=<URL>
· 跨域被拦时页面会自动改走同源 /api/rankings 代理
手头已有 JSON?直接导入(存在本机浏览器里,只你自己可见):
record_race.Time 单位是百分之一秒(centiseconds),除以 100 才是秒。本页直接读生成脚本写出的 seconds 字段并按「分:秒.毫秒」显示,不存在 100 倍误差。36000000 cs(= 100 小时)这类规整哨兵/损坏值,单条 ≥ 1 小时一律剔除(MAX_FINISH_SEC = 3600)。--category 已支持分类出榜,暂未接进构建流水线。ddnet_together.py / ddnet_helper.py 的 fmt_time 把 Time 当秒用,差 100 倍。本页不受影响,那两个脚本按 IMA 项目说明标注为「用户暂未要求」,未改动。