@MikeMirzayanov
I used codeforces's API system.It is strong,and has good quality.but I think it can become better. Here is my suggestions. 1.Standing of the problemset. http://mirror.codeforces.com/problemset/standings I would be happy to get informations about it,but I havn't find a way to do so. 2.Sending more datas than I need. Resently I was developing a module of a program,which provide active degree of users, and I use http://mirror.codeforces.com/api/user.status?handle=Xeno_Amess&from=1&count=1000000000 (for example) to get data from codeforces.All the data I need was creationTimeSeconds and verdict,but codeforces send me lots of data unuseful to me,like testset,id,author... Actually nearly 19/20 of the data I got was unuseful. This is not only a bad thing to me,but also to codeforces,cause bouth of us cost 19 times more webnetwork bandwidth... Well, for me, download 4M's data or 200k's data has no difference , but for such a big website like codeforces, who have so many users,it might be defferent. So here I suggest that may codeforces provide a grammar to reject some JSONObject? For example,when I use http://mirror.codeforces.com/api/user.status?handle=Xeno_Amess&from=1&count=1, what I get is :
{
"status": "OK",
"result": [
{
"id": 32479205,
"contestId": 894,
"creationTimeSeconds": 1511111995,
"relativeTimeSeconds": 2147483647,
"problem": {
"contestId": 894,
"index": "D",
"name": "Ralph And His Tour in Binary Country",
"type": "PROGRAMMING",
"points": 2000,
"tags": [
"data structures",
"trees"
]
},
"author": {
"contestId": 894,
"members": [
{
"handle": "Xeno_Amess"
}
],
"participantType": "PRACTICE",
"ghost": false,
"startTimeSeconds": 1511099700
},
"programmingLanguage": "GNU C++14",
"verdict": "OK",
"testset": "TESTS",
"passedTestCount": 44,
"timeConsumedMillis": 1091,
"memoryConsumedBytes": 355635200
}
]
}
And if I use http://mirror.codeforces.com/api/user.status?handle=Xeno_Amess&from=1&count=1&reject=id;contestId;relativeTimeSeconds;problem;author;programmingLanguage;testset;passedTestCount;timeConsumedMillis;memoryConsumedBytes I wish to get
{
"status": "OK",
"result": [
{
"creationTimeSeconds": 1511111995,
"verdict": "OK"
}
]
}
I suggest there be a grammar to do such thing.Ofcause,this is just a friendly suggestion.