Custom contest support for the Timus Online Judge
This Python package provides support for custom contests on the Timus Online Judge.
Define the players and problems to get an automatically-updating score board which is generated according to the ACM ICPC rules.
The sample output is available for preview.
timus.scoreboard uses INI-style files for configuration. Here is a sample configuration:
[contest] title = My sample contest start = 12:00:00 1 Oct 2012 end = 17:00:00 1 Oct 2012 [users] 1000 = Team 1 (John, Jack, Suzan) 1001 = Team 2 (Mike, Roger, Dan) [problems] 1000 = A 1001 = B 1002 = C 1003 = D [config] output_dir = ./output
The values for contest section do not require an explanation. Just be sure to stick to the date format used and remember that the Timus Online Judge is operating in UTC+6 time zone.
Next, list the user IDs and their names in the users section. The ID is the numerical part of your Judge ID. The remaining letters should be kept secret and not entered in the configuration. This means that if you’re organizing a contest, the IDs must be collected beforehand. It should be noted that while contestants may have specified their names in the Timus system, you will have to specify official names (e.g. containing the last names of team members) in the configuration file.
Problems must be entered in the problems section. In the Timus system, problems have names, but for an ACM-style contest you will want to have short names (A/B/C/… is a standard).
After installing timus.scoreboard egg, you should be able to execute the timus-scoreboard script. The location of this script depends on the way you installed the egg. For instance, if zc.buildout was used, the script will reside in bin directory as generated by buildout.
The script requires the name of the configuration file as a parameter:
wormhole:timus-scoreboard admp$ bin/timus-scoreboard -n sample.conf Retrieving http://acm.timus.ru/status.aspx?count=100... Writing ./output/index.html... Writing ./output/top.html... Writing ./output/table.html...
If you, however, omit the -n option, the script will keep running until the contest ends. This is useful if you want to update the score table every few minutes.