A small collection of scripts for running competitive programming contests and training camps on top of Eolymp. Extracted from the internal tooling of OCPC, an ICPC-oriented training camp held in various locations and run online, but should be useful for anyone organizing contests on Eolymp.
discord/— pings a Discord channel whenever someone files a new question (helpdesk ticket) on Eolymp.download-scoreboard/— downloads in-contest submissions from an Eolymp contest into the legacy ICPCresult.datscoreboard format, plus a helper to merge two such files.import-members/— bulk-creates member accounts in an Eolymp space from a CSV (team name, members, organization, room, etc.) and emits acredentials.csvwith login info.printing/client/— a daemon meant to run on a computer next to a printer in a contest hall: it polls the print queue of an Eolymp printer and dispatches each job, optionally routing by room based on a per-memberroomattribute in Eolymp.scripts/get_token.sh— interactively obtain an Eolymp OAuth access token from a username/password.
Each subdirectory has its own README with the details.
Most scripts read EOLYMP_TOKEN and EOLYMP_SPACE from the environment
(or from a local .env file via python-dotenv).
For long-running scripts (the Discord pinger, the printer client) you
should create an access key at https://developer.eolymp.com/ and use
that as EOLYMP_TOKEN. For one-shot scripts a regular OAuth token is
fine, and scripts/get_token.sh can fetch one for you.
The Eolymp Python SDK is unstable; if a script suddenly returns HTTP 400,
the first thing to try is python -m pip install -U eolymp.
There is no setup.py / pyproject.toml; just install what each script
needs as you go:
python -m pip install -U eolymp python-dotenv requests
MIT.