- See also the CONTRIBUTING.md of this GitHub organization.
- The code to interact with web servers of online judges exist in online-judge-tools/api-client repository.
TL;DR: Use online-judge-tools/api-client.
There are many ways to use online-judge-tools for your tool.
oj-apicommand (in online-judge-tools/api-client)oj-apicommand is the best choice in most cases because it makes things loose coupling and has .- You should also check jmerle/competitive-companion.
- Now, there are some missing features in
oj-apicommand (e.g. logging in via web browsers). So you may need to useojcommand for such features.
onlinejudgemodule of Python (in online-judge-tools/api-client)onlinejudgemodule is the most flexible interface, but it makes tight coupling. You should avoid it unless you really need to optimize.
ojcommandojcommand is basically an interface to humans, not to programs. You can use this for your tool, but please be careful.- You can re-implement the core functionality of any subcommand of
ojcommand with a single-line shell script.