From a9aa438ea0558eb0044cf1e54a9190ddb41b65e5 Mon Sep 17 00:00:00 2001 From: cassio Date: Tue, 2 Jul 2013 09:44:46 +0400 Subject: restructuring of boca's git --- boca-1.5.2/src/scoretable.php | 387 ------------------------------------------ 1 file changed, 387 deletions(-) delete mode 100644 boca-1.5.2/src/scoretable.php (limited to 'boca-1.5.2/src/scoretable.php') diff --git a/boca-1.5.2/src/scoretable.php b/boca-1.5.2/src/scoretable.php deleted file mode 100644 index ef11ee6..0000000 --- a/boca-1.5.2/src/scoretable.php +++ /dev/null @@ -1,387 +0,0 @@ -. -//////////////////////////////////////////////////////////////////////////////// -//Last updated 02/nov/2012 by cassio@ime.usp.br -require_once("db.php"); - -if(isset($_SESSION["locr"])) - $locr=$_SESSION["locr"]; -else - $locr='.'; - -if(isset($_GET["clock"]) && $_GET["clock"]==1) { - ob_start(); - header ("Expires: " . gmdate("D, d M Y H:i:s") . " GMT"); - header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); - header ("Cache-Control: no-cache, must-revalidate"); - header ("Pragma: no-cache"); - header ("Content-Type: text/html; charset=utf-8"); - session_start(); - ob_end_flush(); - - if(!isset($contest) || !isset($localsite)) { - $ct=DBGetActiveContest(); - $contest=$ct['contestnumber']; - $localsite=$ct['contestlocalsite']; - } - if (($blocal = DBSiteInfo($contest, $localsite)) == null) { - echo "0"; - exit; - } - if(isset($blocal['currenttime'])) - echo $blocal["currenttime"]; - else echo "0"; - exit; -} -if(isset($_GET['remote']) && is_numeric($_GET['remote'])) { - ob_start(); - header ("Expires: " . gmdate("D, d M Y H:i:s") . " GMT"); - header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); - header ("Cache-Control: no-cache, must-revalidate"); - header ("Pragma: no-cache"); - header ("Content-Type: text/html; charset=utf-8"); - session_start(); - ob_end_flush(); - - if (isset($_SESSION["usertable"])) { - $_SESSION["usertable"] = DBUserInfo($_SESSION["usertable"]["contestnumber"], - $_SESSION["usertable"]["usersitenumber"], $_SESSION["usertable"]["usernumber"]); - } else { - IntrusionNotify("scoretable1"); - ForceLoad("index.php"); - } - if(!isset($_SESSION['usertable']['usertype']) || $_SESSION["usertable"]["usertype"] != "score") { - IntrusionNotify("scoretable2"); - ForceLoad("index.php"); - } -} - -if(!ValidSession()) { - InvalidSession("scoretable.php"); - ForceLoad("index.php"); -} -$loc = $_SESSION["loc"]; -if(!isset($detail)) $detail=true; -if(!isset($final)) $final=false; -$scoredelay["admin"] = 2; -$scoredelay["score"] = 30; -$scoredelay["team"] = 30; -$scoredelay["judge"] = 10; -$scoredelay["staff"] = 60; -$actualdelay = 60; -if(isset($scoredelay[$_SESSION["usertable"]["usertype"]])) $actualdelay = $scoredelay[$_SESSION["usertable"]["usertype"]]; -$ds = DIRECTORY_SEPARATOR; -if($ds=="") $ds = "/"; - -$scoretmp = $_SESSION["locr"] . $ds . "private" . $ds . "scoretmp" . $ds . $_SESSION["usertable"]["usertype"] . ".php"; -$redo = TRUE; -if(file_exists($scoretmp)) { - if(($strtmp = file_get_contents($scoretmp,FALSE,NULL,-1,100000)) !== FALSE) { - list($d) = sscanf($strtmp,"%*s %d"); - if($d > time() - $actualdelay) { - $redo = FALSE; - } - } -} - -if($_SESSION["usertable"]["usertype"]=='score' || $_SESSION["usertable"]["usertype"]=='admin' || (isset($_GET["remote"]) && is_numeric($_GET["remote"]))) { - $privatedir = $_SESSION['locr'] . $ds . "private"; - $remotedir = $_SESSION['locr'] . $ds . "private" . $ds . "remotescores"; - $destination = $remotedir . $ds ."scores.zip"; - if(is_writable($remotedir)) { - if($redo || !is_readable($destination)) { - if (($s = DBSiteInfo($_SESSION["usertable"]["contestnumber"],$_SESSION["usertable"]["usersitenumber"])) == null) - ForceLoad("index.php"); - - $level=$s["sitescorelevel"]; - $data0 = array(); - if($level>0) { - list($score,$data0) = DBScoreSite($_SESSION["usertable"]["contestnumber"], - $_SESSION["usertable"]["usersitenumber"], 0, -1); - } - $ct=DBGetActiveContest(); - $localsite=$ct['contestlocalsite']; - $fname = $privatedir . $ds . "score_localsite_" . $localsite . "_" . md5($_SERVER['HTTP_HOST']); - @file_put_contents($fname . ".tmp",base64_encode(serialize($data0))); - @rename($fname . ".tmp",$fname . ".dat"); - - $data0 = array(); - if($level>0) { - list($score,$data0) = DBScoreSite($_SESSION["usertable"]["contestnumber"], - $_SESSION["usertable"]["usersitenumber"], 1, -1); - } - $ct=DBGetActiveContest(); - $localsite=$ct['contestlocalsite']; - $fname = $remotedir . $ds . "score_site" . $localsite . "_" . $localsite . "_" . md5($_SERVER['HTTP_HOST']); - @file_put_contents($fname . ".tmp",base64_encode(serialize($data0))); - @rename($fname . ".tmp",$fname . ".dat"); - - if(@create_zip($remotedir,glob($remotedir . '/*.dat'),$fname . ".tmp") != 1) { - LOGError("Cannot create score zip file"); - if(@create_zip($remotedir,array(),$fname . ".tmp") == 1) - @rename($fname . ".tmp",$destination); - } else { - @rename($fname . ".tmp",$destination); - } - } - } -} - -if(isset($_GET["remote"])) { - if(is_numeric($_GET["remote"])) { - if($_GET["remote"]==-42) { - echo file_get_contents($destination); - } else { - if (($s = DBSiteInfo($_SESSION["usertable"]["contestnumber"],$_SESSION["usertable"]["usersitenumber"])) == null) - ForceLoad("index.php"); - - $level=$s["sitescorelevel"]; - $score = array(); - if($level>0) { - list($score,$data0) = DBScoreSite($_SESSION["usertable"]["contestnumber"], - $_SESSION["usertable"]["usersitenumber"], 1, -1, $_GET["remote"]); - } - echo base64_encode(serialize($score)); - } - } else { - echo base64_encode(serialize(array())); - } - exit; -} - -if(!$redo) { - $conf=globalconf(); - $strtmp = decryptData(substr($strtmp,strpos($strtmp,"\n")),$conf["key"],'score'); - if($strtmp=="") $redo=TRUE; -} -if($redo) { - $strtmp = "\n"; - $pr = DBGetProblems($_SESSION["usertable"]["contestnumber"]); - - $ct=DBGetActiveContest(); - $contest=$ct['contestnumber']; - $duration=$ct['contestduration']; - - if(!isset($hor)) $hor = -1; - if($hor>$duration) $hor=$duration; - - $level=$s["sitescorelevel"]; - if($level<=0) $level=-$level; - else { - $des=true; - } - - if (($s = DBSiteInfo($_SESSION["usertable"]["contestnumber"],$_SESSION["usertable"]["usersitenumber"])) == null) - ForceLoad("index.php"); - $score = DBScore($_SESSION["usertable"]["contestnumber"], $ver, $hor*60, $s["siteglobalscore"]); - - if ($_SESSION["usertable"]["usertype"]!="score" && $_SESSION["usertable"]["usertype"]!="admin" && $level>3) $level=3; - - $minu = 3; - $rn = DBRecentNews($_SESSION["usertable"]["contestnumber"], - $_SESSION["usertable"]["usersitenumber"], $ver, $minu); - if(count($rn)>0 && $level>3) { - $strtmp .= ""; - $strtmp .= "\n"; - for($i=0; $i"; - } - else - $strtmp .= "\"\"\n"; - $strtmp .= $rn[$i]["problemname"] . ": " . $rn[$i]["userfullname"] . " (" . ((int) ($rn[$i]["time"]/60)) . "')"; - $strtmp .= "\n"; - } - $strtmp .= "
News (last ${minu}'):  
"; - } - if($hor>=0) { - $strtmp .= "
As of $hor minutes. Next: "; - for($h=-30; $h<40; $h+=10) { - if($hor+$h>=0 && $h!=0) { - $strtmp .= ""; - if($h>0) $strtmp .= "+"; - $strtmp .= "$h "; - } - } - $strtmp .= "

"; - } - if(is_readable($_SESSION["locr"] . $ds . 'private' . $ds . 'score.sep')) { - $rf=file($_SESSION["locr"] . $ds . 'private' . $ds . 'score.sep'); - $strtmp .= "
\"\" Available scores: \n"; - for($rfi=1;$rfi<=count($rf);$rfi++) { - $lin = explode('#',trim($rf[$rfi-1])); - if(isset($lin[1]) && $_SESSION["usertable"]["usertype"]!='admin') { - $arr=explode(' ',trim($lin[1])); - for($arri=0;$arri=count($arr)) continue; - } - $lin = trim($lin[0]); - if($lin=='') continue; - $grname=explode(' ',$lin); - $class=1; - reset($score); - while(list($e,$c) = each($score)) { - if(!isset($score[$e]['classingroup'])) $score[$e]['classingroup']=array(); - for($k=1;$k= 1) { - $u1 = explode('/',$grname[$k]); - if(isset($u1[1]) && $score[$e]['user'] >= $u1[0] && $score[$e]['user'] <= $u1[1]) { - if(!isset($u1[2]) || $u1[2]==$score[$e]['site']) { - $score[$e]['classingroup'][$rfi]=$class; - $class++; - } - } - } - - } - } - if($class>1) - $strtmp .= "" . $grname[0] . " "; - } - $strtmp .= "
\n"; - } else { - reset($score); - $class = 1; - while(list($e,$c) = each($score)) { - $score[$e]['classingroup'][1]=$class; - $class++; - } - } - - $strtmp .= "
\n\n \n \n \n \n"; - if(!$des) { - if($level>0) - $strtmp .= ""; - } else if($detail) { - for($i=0;$i"; - } - $strtmp .= "\n"; - $strtmp .= "\n"; - $n=0; - reset($score); - while(list($e, $c) = each($score)) { - reset($score[$e]['classingroup']); - while(list($cg1,$cg2) = each($score[$e]['classingroup'])) { - $strtmp .= " "; - $strtmp .= "\n"; -/* - if($level>3 && !$final && $score[$e]["site"]==$ct['contestlocalsite'] && - ((isset($_SESSION["scorepos"][$score[$e]["username"]."-".$score[$e]["site"]]) && - $_SESSION["scorepos"][$score[$e]["username"]."-".$score[$e]["site"]] > $cg2) || - (isset($_SESSION["scoreblink"][$score[$e]["username"]."-".$score[$e]["site"]]) && - $_SESSION["scoreblink"][$score[$e]["username"]."-".$score[$e]["site"]]>time()))) { - $strtmp .= " \n"; -// if(!$detail && $score[$e]["userdesc"]!="") -// $strtmp .= "(" . $score[$e]["userdesc"] . ")"; - $strtmp .= ""; - if($level > 0) { - if(!$des) $strtmp .= ""; - } - } - if(!$des) $strtmp .= " \n"; - } - $strtmp .= " \n"; - $strtmp .= " \n"; - $n++; - } - } - $strtmp .= "
#UserNameProblemsTotal
" . $cg2 . "" . $score[$e]["username"]."/".$score[$e]["site"]; - $strtmp .= "" . $score[$e]["userfullname"]; - if(!isset($_SESSION["scoreblink"][$score[$e]["username"]."-".$score[$e]["site"]]) || - $_SESSION["scoreblink"][$score[$e]["username"]."-".$score[$e]["site"]]==0) { - $_SESSION["scoreblink"][$score[$e]["username"]."-".$score[$e]["site"]] = time()+1; - } - } - else { -*/ - $_SESSION["scoreblink"][$score[$e]["username"]."-".$score[$e]["site"]]=0; - $strtmp .= " " . $score[$e]["username"]."/".$score[$e]["site"] . " "; - $strtmp .= "" . $score[$e]["userfullname"]; -// } - $_SESSION["scorepos"][$score[$e]["username"]."-".$score[$e]["site"]] = $cg2; - -// $strtmp .= "(" . $score[$e]["site"] . ")"; -// $strtmp .= ""; - for($h=0;$h"; - } - else { - if($level>3 && isset($score[$e]["problem"][$ee]["judging"]) && $score[$e]["problem"][$ee]["judging"]) - $strtmp .= "\"\"\n"; - else - $strtmp .= " "; - } - } - if ($ver && $level<3) { - if(isset($score[$e]["problem"][$ee]["solved"]) && $score[$e]["problem"][$ee]["solved"]) { - if ($level==1) { - $strtmp .= "/". $score[$e]["problem"][$ee]["time"] . "\n"; - } - else - $strtmp .= $score[$e]["problem"][$ee]["count"] . "/" . - $score[$e]["problem"][$ee]["time"] . "\n"; - } else if($des) $strtmp .= " "; - } - else { - if (isset($score[$e]["problem"][$ee]['count']) && $score[$e]["problem"][$ee]["count"]!=0) { - $tn = $score[$e]["problem"][$ee]["count"]; - if (isset($score[$e]["problem"][$ee]["solved"]) && $score[$e]["problem"][$ee]["solved"]) $t = $score[$e]["problem"][$ee]["time"]; - else $t = "-"; - $strtmp .= "" . $tn . "/${t}" . "\n"; - } else if($des) $strtmp .= " "; - } - if($des) - $strtmp .= "" . - $score[$e]["totalcount"] . " (" . $score[$e]["totaltime"] . ")
"; - if ($n == 0) $strtmp .= "
SCOREBOARD IS EMPTY
"; - else { - if(!$des) - if($level>0) $strtmp .= "
P.S. Problem names are hidden."; - else $strtmp .= "
P.S. Problem data are hidden."; - } - - $conf=globalconf(); - $strtmp = " \n" . encryptData($strtmp,$conf["key"],false); - if(file_put_contents($scoretmp, $strtmp,LOCK_EX)===FALSE) { - if($_SESSION["usertable"]["usertype"] == 'admin') { - MSGError("Cannot write to the score cache file -- performance might be compromised"); - } - LOGError("Cannot write to the ".$_SESSION["usertable"]["usertype"]."-score cache file -- performance might be compromised"); - } - $conf=globalconf(); - $strtmp = decryptData(substr($strtmp,strpos($strtmp,"\n")),$conf["key"]); -} -echo $strtmp; -?> -- cgit v1.2.3