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.0/src/site/putfile.php | 171 ---------------------------------------- 1 file changed, 171 deletions(-) delete mode 100644 boca-1.5.0/src/site/putfile.php (limited to 'boca-1.5.0/src/site/putfile.php') diff --git a/boca-1.5.0/src/site/putfile.php b/boca-1.5.0/src/site/putfile.php deleted file mode 100644 index d320a1a..0000000 --- a/boca-1.5.0/src/site/putfile.php +++ /dev/null @@ -1,171 +0,0 @@ -. -//////////////////////////////////////////////////////////////////////////////// -//Last updated 10/jul/2012 by cassio@ime.usp.br -// -//PC^2 integration developed by Fabio Antonio Avellaneda Pachon -$quiet=true; -require 'header.php'; -$ds = DIRECTORY_SEPARATOR; -if($ds=="") $ds = "/"; -$remotedir=$ds . "private" . $ds . "remotescores"; - -if(($ct = DBContestInfo($_SESSION["usertable"]["contestnumber"])) == null) -exit; -if(($st = DBSiteInfo($_SESSION["usertable"]["contestnumber"],$_SESSION["usertable"]["usersitenumber"])) == null) -exit; - -if(is_writable($_SESSION["locr"] . $remotedir)) { - if(isset($_POST['PC2']) && is_numeric($_POST['PC2']) && $_POST['PC2'] > 0) { - $site = $_POST['PC2']; - $problemCount = 4; - for($i=0;$i<$problemCount;$i++) { - $problems[$i]["name"]=chr($i+ord("A")); - $problems[$i]["color"]="FFFFFF"; - $problems[$i]["colorname"]="white"; - $problems[$i]["solved"]=0; - $problems[$i]["judging"]=false; - $problems[$i]["time"]=0; - $problems[$i]["penalty"]=0; - $problems[$i]["count"]=0; - } - - /*** Load PC2 summary.html **/ - $board=base64_decode($_POST['data']); - - /*** a new dom object ***/ - $dom = new domDocument; - - /*** load the html into the object ***/ - $dom->loadHTML($board); - - /*** discard white space ***/ - $dom->preserveWhiteSpace = false; - - /*** the table by its tag name ***/ - $tables = $dom->getElementsByTagName('table'); - - /*** get all rows from the table ***/ - $rows = $tables->item(0)->getElementsByTagName('tr'); - - /*** loop over the table rows ***/ - $userCount = 1; - $firstProblem=-1; - foreach ($rows as $row) - { - //teams are always being renumbered since their number is not important... just they have to be different - $team["user"]=(string)$userCount; - $team["site"]=(string)$site; - - /*** get each column by tag name ***/ - $cols = $row->getElementsByTagName('td'); - $colCount=0; - $probCount=1; - //Ignore empty cols - if($cols->item(0)->nodeValue=="") - { - continue; - } - foreach ($cols as $col) - { - switch($colCount) - { - //First column, start the problem counter and by default, the team hasnt solved a problem - case 0; - $probCount=1; - $firstProblem=-1; - break; - //First column: team name - case 1: - $team["username"]=$col->nodeValue; -// echo "username: $col->nodeValue\n"; - $team["usertype"]="team"; - $team["userfullname"]=$col->nodeValue; - break; - //Second column: How many problems does the team solved at this time - case 2: - $team["totalcount"]=(int)$col->nodeValue; - // echo "totalcount: $col->nodeValue\n"; - break; - //Third column: Elapsed time, including penalisations - case 3: - $team["totaltime"]=$col->nodeValue; - // echo "totaltime: $col->nodeValue\n"; - break; - //No more problems to process - case $problemCount+4: - $total[$userCount-1]=$team; - //If firstProblem is different to -1 is because the team has solved at least one problem - if($firstProblem!=-1) - { - $total[$userCount-1]["first"]=$firstProblem; - } - break; - //Problems columns - default: - list($count, $time) = split('/', $col->nodeValue); - //echo "Sol: $solved / time: $count"; - if($time=="--") - { - $solved=false; - $time=""; - }else - { - $solved=true; - } - $team["problem"][$probCount]=$problems[$probCount]; - $team["problem"][$probCount]["solved"]=$solved; - $team["problem"][$probCount]["time"]=$time; - //I can calculate the effective time and the penalisation time, if needed - $team["problem"][$probCount]["penalty"]=$time; - $team["problem"][$probCount]["count"]=$count; - //look for the time which first problem was solved - if($firstProblem==-1 && $solved) - { - $firstProblem=$time; - }else - { - if($solved && $time<$firstProblem) - { - $firstProblem=$time; - } - } - $probCount++; - }//end switch - - $colCount++; //echo $col->nodeValue."\t"; - }//end col for - - $userCount++; -// echo '
'; - } //end row col -//echo print_r($total); - $total=base64_encode(serialize($total)); - } else - $total=$_POST['data']; - - $fn = tempnam($_SESSION["locr"] . $remotedir,"score_"); - $fout = fopen($fn,"wb"); - fwrite($fout,$total,10000000); - fclose($fout); - - if(@rename($fn, $_SESSION["locr"] . $remotedir . $ds . "score_" . $_SESSION["usertable"]["username"] . "_" . md5(getIP()) . ".dat")) - echo "SCORE UPLOADED OK\n"; - else - echo "FAILED: UPDATE SCORE ERROR\n"; -} else echo "FAILED: PERMISSION DENIED IN THE SERVER\n"; -?> -- cgit v1.2.3