diff options
| author | Cassio de Campos <cassiopc@gmail.com> | 2017-07-26 15:16:10 +0000 |
|---|---|---|
| committer | Cassio de Campos <cassiopc@gmail.com> | 2017-07-26 15:16:10 +0000 |
| commit | f967c953505e723ac904a2085552760430ffc54a (patch) | |
| tree | 0ff0d1177907a51a4701adc75c661bece6210e5d /src | |
| parent | dbb47c196ed8c4eedebef248d3252c9024170b0d (diff) | |
| download | boca-f967c953505e723ac904a2085552760430ffc54a.tar.gz boca-f967c953505e723ac904a2085552760430ffc54a.zip | |
remove relation with next fields from site
Diffstat (limited to 'src')
| -rw-r--r-- | src/fclar.php | 28 | ||||
| -rw-r--r-- | src/fextdata.php | 4 | ||||
| -rw-r--r-- | src/frun.php | 63 | ||||
| -rw-r--r-- | src/ftask.php | 26 | ||||
| -rwxr-xr-x | src/globals.php | 13 |
5 files changed, 96 insertions, 38 deletions
diff --git a/src/fclar.php b/src/fclar.php index 7c73975..18d41ff 100644 --- a/src/fclar.php +++ b/src/fclar.php @@ -15,7 +15,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. //////////////////////////////////////////////////////////////////////////////// -// Last modified 06/sep/2013 by cassio@ime.usp.br +// Last modified 26/jul/2017 by cassio@ime.usp.br function DBDropClarTable() { $c = DBConnect(); @@ -306,7 +306,7 @@ function DBNewClar($param,$c=null) { } $n = $clarnumber; } - DBExec($c, "update sitetable set sitenextclar=$clarnumber, updatetime=" . $t . + DBExec($c, "update sitetable set sitenextclar=$clarnumber" . " where sitenumber=$site and contestnumber=$contest and sitenextclar<$clarnumber", "DBNewClar(update site)"); @@ -332,15 +332,27 @@ function DBNewClar($param,$c=null) { $ret=1; if($insert) { - DBExec($c, "INSERT INTO clartable (contestnumber, clarsitenumber, clarnumber, usernumber, clardate, " . + $n = myunique(); + $clarinc = $n; + while(!DBExecNonStop($c, "INSERT INTO clartable (contestnumber, clarsitenumber, clarnumber, usernumber, clardate, " . "clardatediff, clardatediffans, clarproblem, clardata, claranswer, clarjudge, clarjudgesite, clarstatus, updatetime) VALUES " . "($contest, $site, $n, $user, $clardate, $clardatediff, $clardatediffans, $problem, '$question', " . "'$claranswer', $clarjudge, $clarjudgesite, '$clarstatus', $updatetime)", - "DBNewClar(insert clar)"); - if($cw) DBExec($c, "commit work", "DBNewClar(commit-insert)"); - LOGLevel("User $user submitted a clarification (#$n) on site #$site " . - "(problem=$problem, contest=$contest).",2); - $ret=2; + "DBNewClar(insert clar)")) { + $n++; + if($n > $clarinc + 3) break; + } + if($n > $clarinc + 3) { + DBExec($c, "INSERT INTO clartable (contestnumber, clarsitenumber, clarnumber, usernumber, clardate, " . + "clardatediff, clardatediffans, clarproblem, clardata, claranswer, clarjudge, clarjudgesite, clarstatus, updatetime) VALUES " . + "($contest, $site, $n, $user, $clardate, $clardatediff, $clardatediffans, $problem, '$question', " . + "'$claranswer', $clarjudge, $clarjudgesite, '$clarstatus', $updatetime)", + "DBNewClar(insert clar)"); + } + if($cw) DBExec($c, "commit work", "DBNewClar(commit-insert)"); + LOGLevel("User $user submitted a clarification (#$n) on site #$site " . + "(problem=$problem, contest=$contest).",2); + $ret=2; } else { if($updatetime > $t) { $ret=2; diff --git a/src/fextdata.php b/src/fextdata.php index 3db5a3b..8c80bc9 100644 --- a/src/fextdata.php +++ b/src/fextdata.php @@ -386,6 +386,7 @@ function importFromXML($ar,$contest,$site) { DBExec($conn,"rollback work"); return false; } + /* if(($ret=DBUpdateSite($param, $conn))) { if($ret==2) { echo "Site " . $param["sitenumber"] . " updated<br>"; @@ -394,7 +395,8 @@ function importFromXML($ar,$contest,$site) { if($conn != null) DBExec($conn,"rollback work"); return false; - } + } + */ } if($key == "usertable") { if(($ret=DBNewUser($param, $conn))) { diff --git a/src/frun.php b/src/frun.php index 5c5c2ec..d7e2a4f 100644 --- a/src/frun.php +++ b/src/frun.php @@ -15,7 +15,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. //////////////////////////////////////////////////////////////////////////////// -// Last modified 09/sep/2015 by cassio@ime.usp.br +// Last modified 26/jul/2017 by cassio@ime.usp.br function DBDropRunTable() { $c = DBConnect(); @@ -186,9 +186,9 @@ function DBUpdateRunC($contest, $usersite, $usernumber, $runsite, $runnumber, $a if($u['usertype']=='team') { $p = DBGetProblemData ($contest, $temp["runproblem"],$c); DBNewTask_old ($contest, $runsite, $team, - escape_string("\"" . $u["username"] ."\" must have a balloon for problem " . - $p[0]["problemname"] . ": " . $p[0]["fullname"]), - "", "", "t", $p[0]["color"], $p[0]["colorname"], $c); + escape_string("\"" . $u["username"] ."\" must have a balloon for problem " . + $p[0]["problemname"] . ": " . $p[0]["fullname"]), + "", "", "t", $p[0]["color"], $p[0]["colorname"], $c); } } else { LOGError("DBUpdateRunC: HIDDEN: user=$team,site=$runsite,contest=$contest would have a balloon for problem=" . $temp["runproblem"]); @@ -198,9 +198,9 @@ function DBUpdateRunC($contest, $usersite, $usernumber, $runsite, $runnumber, $a if($u['usertype']=='team') { $p = DBGetProblemData ($contest, $temp["runproblem"],$c); DBNewTask_old ($contest, $runsite, $team, escape_string("\"" . - $u["username"] ."\" must have _NO_ balloon for problem " . $p[0]["problemname"] . - ": " . $p[0]["fullname"]). ". Please verify and remove it, if needed.", "", "", - "t", $p[0]["color"], $p[0]["colorname"], $c); + $u["username"] ."\" must have _NO_ balloon for problem " . $p[0]["problemname"] . + ": " . $p[0]["fullname"]). ". Please verify and remove it, if needed.", "", "", + "t", $p[0]["color"], $p[0]["colorname"], $c); } } // } @@ -279,8 +279,8 @@ function DBRunGiveUp($number,$site,$contest,$usernumber,$usersite) { if($u['usertype']=='team') { $p = DBGetProblemData ($contest, $temp["runproblem"],$c); DBNewTask_old ($contest, $site, $temp["usernumber"], escape_string("\"" . - $u["username"] ."\" must have _NO_ balloon for problem " . $p[0]["problemname"] . - ": " . $p[0]["fullname"]), "", "", "t", $p[0]["color"], $p[0]["colorname"], $c); + $u["username"] ."\" must have _NO_ balloon for problem " . $p[0]["problemname"] . + ": " . $p[0]["fullname"]), "", "", "t", $p[0]["color"], $p[0]["colorname"], $c); } } @@ -316,8 +316,8 @@ function DBRunDelete($number,$site,$contest,$user,$usersite) { if($u['usertype']=='team') { $p = DBGetProblemData ($contest, $temp["runproblem"],$c); DBNewTask_old ($contest, $site, $temp["usernumber"], escape_string("\"" . - $u["username"] . "\" must have _NO_ balloon for problem " . $p[0]["problemname"] . - ": " . $p[0]["fullname"]), "", "", "t", $p[0]["color"], $p[0]["colorname"], $c); + $u["username"] . "\" must have _NO_ balloon for problem " . $p[0]["problemname"] . + ": " . $p[0]["fullname"]), "", "", "t", $p[0]["color"], $p[0]["colorname"], $c); } } @@ -707,7 +707,7 @@ function DBNewRun($param,$c=null) { MSGError("Unable to find a unique site/contest in the database."); return false; } - $a = DBRow($r,0); + $a = DBRow($r,0); $n = $a["nextrun"] + 1; if($runnumber > 0) { $sql = "select * from runtable as t where t.contestnumber=$contest and " . @@ -724,9 +724,10 @@ function DBNewRun($param,$c=null) { $oid2 = $lr['autostderr']; } $n = $runnumber; - } else + } else { $runnumber = $n; - + } + if($rundatediff < 0) { $b = DBSiteInfo($contest, $site, $c); $dif = $b["currenttime"]; @@ -748,7 +749,7 @@ function DBNewRun($param,$c=null) { } if($updatetime > $t || $insert) { - DBExec($c, "update sitetable set sitenextrun=$runnumber, updatetime=".$t. + DBExec($c, "update sitetable set sitenextrun=$runnumber" . " where sitenumber=$site and contestnumber=$contest and sitenextrun<$runnumber", "DBNewRun(update site)"); // LOGError($autostdout); @@ -808,14 +809,30 @@ function DBNewRun($param,$c=null) { return false; } } - DBExec($c, "INSERT INTO runtable (contestnumber, runsitenumber, runnumber, usernumber, rundate, " . - "rundatediff, rundatediffans, runproblem, runfilename, rundata, runanswer, runstatus, runlangnumber, " . - "runjudge, runjudgesite, runanswer1, runjudge1, runjudgesite1, runanswer2, runjudge2, runjudgesite2, ". - "autoip, autobegindate, autoenddate, autoanswer, autostdout, autostderr, updatetime) " . - "VALUES ($contest, $site, $n, $user, $rundate, $rundatediff, $rundatediffans, $problem, '$filename', $oid, $runanswer, " . - "'$runstatus', $lang, $runjudge, $runjudgesite, $runanswer1, $runjudge1, $runjudgesite1, $runanswer2, $runjudge2, " . - "$runjudgesite2, '$autoip', $autobegindate, $autoenddate, '$autoanswer', $oid1, $oid2, $updatetime)", - "DBNewRun(insert run)"); + + $n = myunique(); + $runinc = $n; + while(!DBExecNonStop($c, "INSERT INTO runtable (contestnumber, runsitenumber, runnumber, usernumber, rundate, " . + "rundatediff, rundatediffans, runproblem, runfilename, rundata, runanswer, runstatus, runlangnumber, " . + "runjudge, runjudgesite, runanswer1, runjudge1, runjudgesite1, runanswer2, runjudge2, runjudgesite2, ". + "autoip, autobegindate, autoenddate, autoanswer, autostdout, autostderr, updatetime) " . + "VALUES ($contest, $site, $n, $user, $rundate, $rundatediff, $rundatediffans, $problem, '$filename', $oid, $runanswer, " . + "'$runstatus', $lang, $runjudge, $runjudgesite, $runanswer1, $runjudge1, $runjudgesite1, $runanswer2, $runjudge2, " . + "$runjudgesite2, '$autoip', $autobegindate, $autoenddate, '$autoanswer', $oid1, $oid2, $updatetime)", + "DBNewRun(insert run)")) { + $n++; + if($n > $runinc + 3) break; + } + if($n > $runinc + 3) { + DBExec($c, "INSERT INTO runtable (contestnumber, runsitenumber, runnumber, usernumber, rundate, " . + "rundatediff, rundatediffans, runproblem, runfilename, rundata, runanswer, runstatus, runlangnumber, " . + "runjudge, runjudgesite, runanswer1, runjudge1, runjudgesite1, runanswer2, runjudge2, runjudgesite2, ". + "autoip, autobegindate, autoenddate, autoanswer, autostdout, autostderr, updatetime) " . + "VALUES ($contest, $site, $n, $user, $rundate, $rundatediff, $rundatediffans, $problem, '$filename', $oid, $runanswer, " . + "'$runstatus', $lang, $runjudge, $runjudgesite, $runanswer1, $runjudge1, $runjudgesite1, $runanswer2, $runjudge2, " . + "$runjudgesite2, '$autoip', $autobegindate, $autoenddate, '$autoanswer', $oid1, $oid2, $updatetime)", + "DBNewRun(insert run)"); + } if($cw) { DBExec($c, "commit work", "DBNewRun(commit)"); LOGLevel("User $user submitted a run (#$n) on site #$site " . diff --git a/src/ftask.php b/src/ftask.php index 86417b2..8ff7bd7 100644 --- a/src/ftask.php +++ b/src/ftask.php @@ -279,10 +279,10 @@ function DBNewTask_old ($contest, $site, $user, $desc, $filename, $filepath, $sy 'color'=>$color, 'colorname'=>$colorname, 'sys'=>$sys); - return DBNewTask($param,$c); + return DBNewTask($param,$c,true); } -function DBNewTask($param, $c=null) { +function DBNewTask($param, $c=null, $autotask=false) { if(isset($param['contestnumber']) && !isset($param['contest'])) $param['contest']=$param['contestnumber']; if(isset($param['sitenumber']) && !isset($param['site'])) $param['site']=$param['sitenumber']; if(isset($param['usernumber']) && !isset($param['user'])) $param['user']=$param['usernumber']; @@ -391,7 +391,7 @@ function DBNewTask($param, $c=null) { $t = $lr['updatetime']; } } - DBExec($c, "update sitetable set sitenexttask=$tasknumber, updatetime=".$t. + DBExec($c, "update sitetable set sitenexttask=$tasknumber" . " where sitenumber=$site and contestnumber=$contest and sitenexttask<$tasknumber", "DBNewTask(update site)"); $ret=1; if($insert) { @@ -413,12 +413,28 @@ function DBNewTask($param, $c=null) { } } } else $oid="NULL"; - DBExec($c, "INSERT INTO tasktable (contestnumber, sitenumber, tasknumber, usernumber, taskdate, " . + + $taskinc = myunique(); + if(($taskinc % 2) == 0) $taskinc--; + if($autotask) $taskinc++; + $tasknumber = $taskinc; + while(!DBExecNonStop($c, "INSERT INTO tasktable (contestnumber, sitenumber, tasknumber, usernumber, taskdate, " . "taskdatediff, taskdatediffans, taskfilename, taskdata, taskstatus, taskdesc, tasksystem, ". "color, colorname, updatetime) " . "VALUES ($contest, $site, $tasknumber, $user, $taskdate, $taskdatediff, $taskdatediffans, '$filename', $oid, '$status', " . "'$desc', '$sys', '$color', '$colorname', $updatetime)", - "DBNewTask(insert task)"); + "DBNewTask(insert task)")) { + $tasknumber+=2; + if($tasknumber > $taskinc + 6) break; + } + if($tasknumber > $taskinc + 6) { + DBExec($c, "INSERT INTO tasktable (contestnumber, sitenumber, tasknumber, usernumber, taskdate, " . + "taskdatediff, taskdatediffans, taskfilename, taskdata, taskstatus, taskdesc, tasksystem, ". + "color, colorname, updatetime) " . + "VALUES ($contest, $site, $tasknumber, $user, $taskdate, $taskdatediff, $taskdatediffans, '$filename', $oid, '$status', " . + "'$desc', '$sys', '$color', '$colorname', $updatetime)", + "DBNewTask(insert task)"); + } if($sys=="t") $u="System"; else $u = "User $user"; diff --git a/src/globals.php b/src/globals.php index d87db56..2391a8f 100755 --- a/src/globals.php +++ b/src/globals.php @@ -15,7 +15,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. //////////////////////////////////////////////////////////////////////////////// -// Last modified 07/sep/2015 by cassio@ime.usp.br +// Last modified 26/jul/2017 by cassio@ime.usp.br require_once('db.php'); define("dbcompat_1_4_1",true); @@ -254,6 +254,17 @@ function LOGLevel($msg,$level,$dodb=true) { DBNewLog($_SESSION["usertable"]["contestnumber"], $_SESSION["usertable"]["usersitenumber"], $_SESSION["usertable"]["usernumber"], $type, getIP(), $msga, ""); } +function mytime() { + return time(); +} +function mymtime() { + list($usec, $sec) = explode(" ", microtime()); + return (float) (((int) (1000*$usec))/1000 + $sec); +} +function myunique() { + list($usec, $sec) = explode(" ", microtime()); + return (int) ((int)($usec * 100)) + ($sec % 1000000); +} //retorna data e hora atuais function now () { return date('H\:i:s T \- d/M/Y'); |