Hello, CodeForces!
Recently I was working on a Java library that implements interaction with Polygon API. It is very useful for some my tasks and it's cool that Polygon provides an API. But I discovered that is's kinda outdated. There are some new features in Polygon for which theres is no access through the API. There are also some use cases that can't be counted as new features but it's impossible to to them using API too.
In this post I created a shortlist of some methods and enhancements that can be useful in Polygon API in my opinion. May be it's hard to implement some of them but I hope that someone from Codeforces and Polygon team will see it and may be implement some of this API methods.
Statement
object doesn't store any field for interaction protocol in interactive problems. It's strange because some API methods can be used to work with interactive problems (for example,problem.interactor
) but we cannot get interaction protocol from problem statements.Linux and Windows packages downloading. There is an API method
problem.package
that allows to download a Standard zip package. In some cases it seems to be useful to download Linux or Windows package because they include generated tests.Test
object contains test input data but doesn't contain test output data. It seems that it should be easy to add this field and it can be useful too (you won't have to run generator script locally to get test output data).There is no methods that allow to work with Contest Groups. I suppose that Contest Group is a relatively new feature and that's why there is no methods for it.
We cannot commit problem changes using API (may be it's done in this way for some security reasons).
We cannot build packages using API.
We cannot manage access to problems, contests and contest groups via API (may be it's done in this way for some security reasons).
We cannot create problems and contests, and add problems to contests using API.
To be continued...
May be this list is incomplete, so I will be glad if someone add some points into it in the comments. I hope that someone from Codeforces team (MikeMirzayanov? geranazavr555?) will see this post and comment it.