From 987375d85eb88fd1a974b7d99e5288fe3f796b21 Mon Sep 17 00:00:00 2001 From: cassiopc Date: Wed, 7 Nov 2012 17:18:11 +0100 Subject: fixes admin/report/webcast.php to be part of the sync, and a couple of typos in it. --- boca-1.5.2/src/admin/report/webcast.php | 190 ++++++++++++++++++++++++++++++++ boca-1.5.2/tools/icpc.etc.tgz | Bin 9525 -> 9525 bytes 2 files changed, 190 insertions(+) create mode 100644 boca-1.5.2/src/admin/report/webcast.php diff --git a/boca-1.5.2/src/admin/report/webcast.php b/boca-1.5.2/src/admin/report/webcast.php new file mode 100644 index 0000000..5a595fc --- /dev/null +++ b/boca-1.5.2/src/admin/report/webcast.php @@ -0,0 +1,190 @@ +. +//////////////////////////////////////////////////////////////////////////////// +//Last updated 07/nov/2012 by cassio@ime.usp.br + +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']; + +$contestfile = $ct['contestname'] . "\n"; + +$contestfile = $contestfile . + $ct['contestduration']/60 . '' . + $ct['contestlastmileanswer']/60 . '' . + $ct['contestlastmilescore']/60 . '' . + $ct['contestpenalty']/60 . "\n"; + +$c = DBConnect(); +$r = DBExec($c, + 'SELECT problemnumber FROM problemtable' . + ' WHERE contestnumber = ' . $contest . + ' AND problemnumber > 0'); +$numProblems = DBnlines($r); +$r = DBExec($c, + 'SELECT username, userfullname FROM usertable' . + ' WHERE contestnumber = ' . $contest . + ' AND userenabled = \'t\' AND usersitenumber = ' . $site . + ' AND usertype = \'team\''); +$numTeams = DBnlines($r); + +$contestfile = $contestfile . + $numTeams . '' . + $numProblems . "\n"; + +for ($i = 0; $i < $numTeams; $i++) { + $a = DBRow($r, $i); + $teamID = $a['username']; + if(isset($a['usershortname'])) + $teamName = $a['usershortname']; + else + $teamName = $a['userfullname']; + if(isset($a['usershortinstitution'])) + $teamUni = $a['usershortinstitution']; + else + $teamUni = $teamName; + + $contestfile = $contestfile . + $teamID . '' . + $teamUni . '' . + $teamName . "\n"; +} + +$contestfile = $contestfile . + '1' . '' . '1' . "\n"; +$contestfile = $contestfile . + $numProblems . '' . 'Y' . "\n"; + +$score = DBScore($_SESSION["usertable"]["contestnumber"], false, -1, $ct["contestlocalsite"]); + +//$contestfile = $contestfile . +// "

ICPC Output

"; +//$contestfile = $contestfile . +// "
";
+$n=0;
+$class=1;
+while(list($e, $c) = each($score)) {
+	if(isset($score[$e]["site"]) && isset($score[$e]["user"])) {
+		if(DBSiteInfo($_SESSION["usertable"]["contestnumber"],$score[$e]["site"]) != null) {
+			$r = DBUserInfo($_SESSION["usertable"]["contestnumber"], 
+							$score[$e]["site"], $score[$e]["user"]);
+			$contestfile = $contestfile .
+				$r["usericpcid"] . "," .
+				$class++ . "," .
+				$score[$e]["totalcount"] . "," . 
+				$score[$e]["totaltime"] . ",";
+			
+			if($score[$e]["first"])
+				$contestfile = $contestfile . $score[$e]["first"] . "\n";
+			else $contestfile = $contestfile . "0\n";
+			$n++;
+		}
+	}
+}
+//$contestfile = $contestfile .
+//	"
"; + +$timefile = $st['currenttime']; +$versionfile = '1.0' . "\n"; + +$run = DBAllRunsInSites($contest, $site, 'run'); + +$numRuns = count($run); + +$runfile = ''; +for ($i = 0; $i < $numRuns; $i++) { + $u = DBUserInfo($contest, $site, $run[$i]['user']); + + $runID = $run[$i]['number']; + $runTime = dateconvminutes($run[$i]['timestamp']); + $runTeam = $u['username']; + $runProblem = $run[$i]['problem']; + + if ($runTime > $freezeTime) { + continue; + } + + $runfile = $runfile . + $runID . '' . + $runTime . '' . + $runTeam . '' . + $runProblem . ''; + + if ($run[$i]['yes']=='t') { + $runfile = $runfile . + 'Y' . "\n"; + } else if ($run[$i]['answer'] == 'Not answered yet') { + $runfile = $runfile . + '?' . "\n"; + } else { + $runfile = $runfile . + 'N' . "\n"; + } +} + +$ds = DIRECTORY_SEPARATOR; +if($ds=="") $ds = "/"; + +if(isset($_SESSION['locr'])) { + $webcastdir = $_SESSION['locr'] . $ds . 'private' .$ds. 'webcast'; + $webcastparentdir = $_SESSION['locr'] . $ds. 'private'; +} else { + $webcastdir = $locr . $ds . 'private' . $ds . 'webcast'; + $webcastparentdir = $locr . $ds . 'private'; +} +cleardir($webcastdir); +@mkdir($webcastdir); +if(is_writable($webcastdir)) { + file_put_contents($webcastdir . $ds . 'runs',$runfile); + file_put_contents($webcastdir . $ds . 'contest',$contestfile); + file_put_contents($webcastdir . $ds . 'version',$versionfile); + file_put_contents($webcastdir . $ds . 'time',$timefile); + if(@create_zip($webcastparentdir,array('webcast'),$webcastdir . ".tmp") != 1) { + LOGError("Cannot create score webcast.tmp file"); + MSGError("Cannot create score webcast.tmp file"); + } else { + $cf = globalconf(); + file_put_contents($webcastdir . ".tmp",encryptData(file_get_contents($webcastdir . ".tmp"), $cf["key"],false)); + @rename($webcastdir . ".tmp",$webcastdir . '.zip'); + } + echo "


"; + echo "CLICK TO DOWNLOAD"; + echo "
"; +} else { + LOGError('Error creating the folder for the ZIP file: '. $webcastdir); + MSGError('Error creating the folder for the ZIP file: '.$webcastdir); + ForceLoad("../index.php"); +} +echo "


\n"; +echo "


\n"; +echo "


\n"; +echo "


\n"; +echo "


\n"; +echo "


\n"; +?> + diff --git a/boca-1.5.2/tools/icpc.etc.tgz b/boca-1.5.2/tools/icpc.etc.tgz index 12d92b2..31b46cb 100644 Binary files a/boca-1.5.2/tools/icpc.etc.tgz and b/boca-1.5.2/tools/icpc.etc.tgz differ -- cgit v1.2.3