diff options
| author | Cassio de Campos <cassiopc@gmail.com> | 2017-07-31 17:49:48 +0000 |
|---|---|---|
| committer | Cassio de Campos <cassiopc@gmail.com> | 2017-07-31 17:49:48 +0000 |
| commit | 335f8f720e62d485dff8632f526b81c17d0b95e4 (patch) | |
| tree | 40f3f97942b2ce810d180851b7074807670454dc /src | |
| parent | a844dc7d621fc03d5846bd523d8b8899ecdba610 (diff) | |
| download | boca-335f8f720e62d485dff8632f526b81c17d0b95e4.tar.gz boca-335f8f720e62d485dff8632f526b81c17d0b95e4.zip | |
bfs
Diffstat (limited to 'src')
| -rw-r--r-- | src/fclar.php | 58 | ||||
| -rw-r--r-- | src/frun.php | 79 | ||||
| -rw-r--r-- | src/ftask.php | 61 |
3 files changed, 119 insertions, 79 deletions
diff --git a/src/fclar.php b/src/fclar.php index 7d5b6bb..39084bc 100644 --- a/src/fclar.php +++ b/src/fclar.php @@ -296,8 +296,12 @@ function DBNewClar($param,$c=null) { exit; } $a = DBRow($r,0); - $n = $a["nextclar"] + 1; - $clarnumber = $n; + $clarnumber = $a["nextclar"] + 1; + DBExec($c, "update sitetable set sitenextclar=$clarnumber" . + " where sitenumber=$site and contestnumber=$contest and sitenextclar<$clarnumber", + "DBNewClar(update site)"); + $clarnumber = myunique(); + $clarinc = $clarnumber; } else { $sql = "select * from clartable as t where t.contestnumber=$contest and " . "t.clarsitenumber=$site and t.clarnumber=$clarnumber"; @@ -308,11 +312,8 @@ function DBNewClar($param,$c=null) { $lr = DBRow($r,0); $t = $lr['updatetime']; } - $n = $clarnumber; + $clarinc = $clarnumber - 1; } - DBExec($c, "update sitetable set sitenextclar=$clarnumber" . - " where sitenumber=$site and contestnumber=$contest and sitenextclar<$clarnumber", - "DBNewClar(update site)"); if($clardatediff < 0) { $b = DBSiteInfo($contest, $site, $c); @@ -336,25 +337,34 @@ function DBNewClar($param,$c=null) { $ret=1; if($insert) { - $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)")) { - $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($clarinc >= $clarnumber) { + while(!DBExecNonStop($c, "INSERT INTO clartable (contestnumber, clarsitenumber, clarnumber, usernumber, clardate, " . + "clardatediff, clardatediffans, clarproblem, clardata, claranswer, clarjudge, clarjudgesite, clarstatus, updatetime) VALUES " . + "($contest, $site, $clarnumber, $user, $clardate, $clardatediff, $clardatediffans, $problem, '$question', " . + "'$claranswer', $clarjudge, $clarjudgesite, '$clarstatus', $updatetime)", + "DBNewClar(insert clar)")) { + $clarnumber++; + if($clarnumber > $clarinc + 3) break; + } + if($clarnumber > $clarinc + 3) { + DBExec($c, "INSERT INTO clartable (contestnumber, clarsitenumber, clarnumber, usernumber, clardate, " . + "clardatediff, clardatediffans, clarproblem, clardata, claranswer, clarjudge, clarjudgesite, clarstatus, updatetime) VALUES " . + "($contest, $site, $clarnumber, $user, $clardate, $clardatediff, $clardatediffans, $problem, '$question', " . + "'$claranswer', $clarjudge, $clarjudgesite, '$clarstatus', $updatetime)", + "DBNewClar(insert clar)"); + } + } else { + if(!DBExecNonStop($c, "INSERT INTO clartable (contestnumber, clarsitenumber, clarnumber, usernumber, clardate, " . + "clardatediff, clardatediffans, clarproblem, clardata, claranswer, clarjudge, clarjudgesite, clarstatus, updatetime) VALUES " . + "($contest, $site, $clarnumber, $user, $clardate, $clardatediff, $clardatediffans, $problem, '$question', " . + "'$claranswer', $clarjudge, $clarjudgesite, '$clarstatus', $updatetime)", + "DBNewClar(insert clar)")) { + if($cw) DBExec($c, "commit work", "DBNewClar(commit-insert-error)"); + return false; + } } if($cw) DBExec($c, "commit work", "DBNewClar(commit-insert)"); - LOGLevel("User $user submitted a clarification (#$n) on site #$site " . + LOGLevel("User $user submitted a clarification (#$clarnumber) on site #$site " . "(problem=$problem, contest=$contest).",2); $ret=2; } else { @@ -377,7 +387,7 @@ function DBNewClar($param,$c=null) { fwrite($fp, $question); fclose($fp); } else - LOGLevel("Clarification not saved as file (clar=$n,site=$site,contest=$contest)", 1); + LOGLevel("Clarification not saved as file (clar=$clarnumber,site=$site,contest=$contest)", 1); */ } //pega uma clarification para responder. Recebe o numero da clar, o numero do site e o numero do contest. diff --git a/src/frun.php b/src/frun.php index a6406e4..9cf4bf9 100644 --- a/src/frun.php +++ b/src/frun.php @@ -712,8 +712,7 @@ function DBNewRun($param,$c=null) { MSGError("Unable to find a unique site/contest in the database."); return false; } - $a = DBRow($r,0); - $n = $a["nextrun"] + 1; + $a = DBRow($r,0); if($runnumber > 0) { $sql = "select * from runtable as t where t.contestnumber=$contest and " . "t.runsitenumber=$site and t.runnumber=$runnumber"; @@ -728,9 +727,16 @@ function DBNewRun($param,$c=null) { if(isset($lr['autostderr'])) $oid2 = $lr['autostderr']; } - $n = $runnumber; + $runinc = $runnumber - 1; + // if($updatetime > $t) { + //DBExec($c, "update sitetable set sitenextrun=$runnumber" . + // " where sitenumber=$site and contestnumber=$contest and sitenextrun<$runnumber", "DBNewRun(update site)"); } else { - $runnumber = $n; + $runnumber = $a["nextrun"] + 1; + DBExec($c, "update sitetable set sitenextrun=$runnumber" . + " where sitenumber=$site and contestnumber=$contest and sitenextrun<$runnumber", "DBNewRun(update site)"); + $runnumber = myunique(); + $runinc = $runnumber; } if($rundatediff < 0) { @@ -753,10 +759,6 @@ function DBNewRun($param,$c=null) { $dif = $rundatediff; } - if($updatetime > $t || $insert) { - DBExec($c, "update sitetable set sitenextrun=$runnumber" . - " where sitenumber=$site and contestnumber=$contest and sitenextrun<$runnumber", "DBNewRun(update site)"); - // LOGError($autostdout); if(substr($autostdout,0,7)=="base64:") { $autostdout = base64_decode(substr($autostdout,7)); @@ -815,32 +817,45 @@ function DBNewRun($param,$c=null) { } } - $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($runinc >= $runnumber) { + 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, $runnumber, $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)")) { + $runnumber++; + if($runnumber > $runinc + 3) break; + } + if($runnumber > $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, $runnumber, $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)"); + } + } else { + if(!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, $runnumber, $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-error)"); + return false; + } } if($cw) { DBExec($c, "commit work", "DBNewRun(commit)"); - LOGLevel("User $user submitted a run (#$n) on site #$site " . + LOGLevel("User $user submitted a run (#$runnumber) on site #$site " . "(problem=$problem,filename=$filename,lang=$lang,contest=$contest,date=$t,datedif=$dif,oid=$oid).",2); } $ret=2; @@ -868,7 +883,7 @@ function DBNewRun($param,$c=null) { @mkdir("/tmp/boca"); if (!move_uploaded_file ($filepath, "/tmp/boca/contest${contest}.site${site}.run${n}.user${user}.problem${problem}.time${t}.${filename}")) - LOGLevel("Run not saved as file (run=$n,site=$site,contest=$contest", 1); + LOGLevel("Run not saved as file (run=$runnumber,site=$site,contest=$contest", 1); */ } //recebe o numero do contest, o numero do site e o numero do usuario diff --git a/src/ftask.php b/src/ftask.php index 36f272a..fc2cd48 100644 --- a/src/ftask.php +++ b/src/ftask.php @@ -386,6 +386,12 @@ function DBNewTask($param, $c=null, $autotask=false) { exit; } $tasknumber = $a["nexttask"] + 1; + DBExec($c, "update sitetable set sitenexttask=$tasknumber" . + " where sitenumber=$site and contestnumber=$contest and sitenexttask<$tasknumber", "DBNewTask(update site)"); + $taskinc = myunique(); + if(($taskinc % 2) == 0) $taskinc--; + if($autotask) $taskinc++; + $tasknumber = $taskinc; } else { $sql = "select * from tasktable as t where t.contestnumber=$contest and " . "t.sitenumber=$site and t.tasknumber=$tasknumber"; @@ -396,9 +402,9 @@ function DBNewTask($param, $c=null, $autotask=false) { $lr = DBRow($r,0); $t = $lr['updatetime']; } + $taskinc = $tasknumber - 1; } - DBExec($c, "update sitetable set sitenexttask=$tasknumber" . - " where sitenumber=$site and contestnumber=$contest and sitenexttask<$tasknumber", "DBNewTask(update site)"); + $ret=1; if($insert) { if($filename!="" && $filepath!="") { @@ -420,28 +426,37 @@ function DBNewTask($param, $c=null, $autotask=false) { } } else $oid="NULL"; - $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)")) { - $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($taskinc >= $tasknumber) { + 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)")) { + $tasknumber+=2; + 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)"); + break; + } + } + } else { + if(!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)")) { + if($cw) + DBExec($c, "commit work", "DBNewTask(commit-insert-error)"); + return false; + } } - if($sys=="t") $u="System"; + if($sys=="t") $u="System"; else $u = "User $user"; if($cw) { |