后续更新记录2020.12.15
前段时间后来没来得及补充后续,最后这个问题是由于GXUOJ之前龙哥增加的自动忽略行尾空格,在更新判题结果的时逻辑错误导致的,已修复、更新image【但是还没提交到Github【逃
背景
本来今天又是快乐的Golang学习时间,既然被老师催了,那我们就来debug!
我粗粗看了一下QingDaoU和GXUOJ(从前者fork来的)的OnlineJudge的commit,我目测前者也存在这个问题,就是contest在OI模式下榜单异常【部分同学可能AC了,但是score却是0】
思路
第一步:想到了是榜单数据处理的问题
在进入查看榜单的页面之前,按F12,然后进榜单,就能看到前端获取榜单的请求,我们就显然可以知道,我们要去这个地方看源代码。
https://github.com/QingdaoU/OnlineJudge/tree/master/contest
从urls目录下的请求和处理该请求的映射下手找到,产生处理OI榜单数据的函数
在下图目录下
我截图只截了一部分代码,读完所有代码之后,我并没有发现什么问题
【呜呜呜,我太菜了太菜了,虽然事实证明确实也没啥问题
第二步:返回去分析获取榜单的请求
请求的response如下:
{
"error": null,
"data": {
"results": [
//此处省略了一堆意义不大的值
{
"id": 6436,
"user": {
"id": 2290,
"username": "\u8ba1\u7b97\u673a\u7c7b192_1736110101_\u5468\u66d9\u6960",
"real_name": null
},
"submission_number": 0,
"total_score": 50,
"submission_info": {
"914": 50
},
"contest": 198
},
{
"id": 6424,
"user": {
"id": 2382,
"username": "\u8ba1\u7b97\u673a\u7c7b195_1907310534_\u5e9e\u535c\u6d32",