.
////////////////////////////////////////////////////////////////////////////////
//Last updated 18/oct/2017
require('header.php');
$contest = $_SESSION["usertable"]["contestnumber"];
$site = $_SESSION["usertable"]["usersitenumber"];
$ct = DBContestInfo($contest);
if(($st = DBSiteInfo($contest, $site)) == null)
ForceLoad("../index.php");
//if(isset($_GET['full']) && $_GET['full'] > 0)
$freezeTime = $st['siteduration'];
//else
// $freezeTime = $st['sitelastmilescore'];
$obj = array(
'contestName' => $ct['contestname'],
'freezeTimeMinutesFromStart' => $ct['contestlastmilescore']/60
);
$c = DBConnect();
$r = DBExec($c,
'SELECT problemname FROM problemtable' .
' WHERE contestnumber = ' . $contest .
' AND problemnumber > 0');
$problems = array();
$numProblems = DBnlines($r);
for ($i = 0; $i < $numProblems; $i++) {
$a = DBRow($r, $i);
$problems[$i] = $a['problemname'];
}
$obj['problemLetters'] = $problems;
$r = DBExec($c,
'SELECT * FROM usertable' .
' WHERE contestnumber = ' . $contest .
' AND userenabled = \'t\' AND usersitenumber = ' . $site .
' AND usertype = \'team\'');
$contestans = array();
$numTeams = DBnlines($r);
for ($i = 0; $i < $numTeams; $i++) {
$a = cleanuserdesc(DBRow($r, $i));
//$teamID = $a['username'];
if (isset($a['usershortname']))
$teamName = $a['usershortname'];
else
$teamName = $a['userfullname'];
if (isset($a['usershortinstitution'])) {
$teamName .= ' @ ' . $a['usershortinstitution'];
if (isset($a['userflag'])) {
$teamName .= '.' . $a['userflag'];
}
}
$contestants[$i] = $teamName;
}
$obj['contestants'] = $contestants;
$run = DBAllRunsInSites($contest, $site, 'report');
$numRuns = count($run);
$runs = array();
for ($i = 0; $i < $numRuns; $i++) {
$runTime = dateconvminutes($run[$i]['timestamp']);
if ($runTime > $freezeTime) {
continue;
}
$u = DBUserInfo($contest, $site, $run[$i]['user']);
if(isset($u['usershortname']))
$runTeam = $u['usershortname'];
else
$runTeam = $u['userfullname'];
if(isset($u['usershortinstitution'])) {
$runTeam .= ' @ ' . $u['usershortinstitution'];
if (isset($u['userflag'])) {
$runTeam .= '.' . $u['userflag'];
}
}
$runProblem = $run[$i]['problem'];
$runs[$i] = array(
'contestant' => $runTeam,
'problemLetter' => $runProblem,
'timeMinutesFromStart' => $runTime,
'success' => $run[$i]['yes'] == 't'
);
}
$obj['runs'] = $runs;
$ds = DIRECTORY_SEPARATOR;
if($ds=="") $ds = "/";
if(isset($_SESSION['locr'])) {
$s4risparentdir = $_SESSION['locr'] . $ds. 'private';
$s4risdir = $s4risparentdir .$ds. 's4ris';
} else {
$s4risparentdir = $locr . $ds . 'private';
$s4risdir = $s4risparentdir . $ds . 's4ris';
}
cleardir($s4risdir);
@mkdir($s4risdir);
if(is_writable($s4risdir)) {
file_put_contents($s4risdir . $ds . 'results.json', json_encode($obj, JSON_PRETTY_PRINT));
if(@create_zip($s4risparentdir,array('s4ris'), $s4risdir . ".tmp") != 1) {
LOGError("Cannot create score s4risdir.tmp file");
MSGError("Cannot create score s4risdir.tmp file");
} else {
$cf = globalconf();
file_put_contents($s4risdir . ".tmp", encryptData(file_get_contents($s4risdir . ".tmp"), $cf["key"],false));
@rename($s4risdir . ".tmp",$s4risdir . '.zip');
}
echo "