aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCassio de Campos <cassiopc@gmail.com>2017-07-26 17:23:33 +0000
committerCassio de Campos <cassiopc@gmail.com>2017-07-26 17:23:33 +0000
commita40420b6762b66bf9421cbb008df5c1c2f204d21 (patch)
tree814585fd3f95e3ab3a0040ef428bb5e21e8fcfd5 /src
parent6d404be8d2ebcac7f9d93b679d57c57b42a99c4f (diff)
downloadboca-a40420b6762b66bf9421cbb008df5c1c2f204d21.tar.gz
boca-a40420b6762b66bf9421cbb008df5c1c2f204d21.zip
adjustments for transfering data between sites
Diffstat (limited to 'src')
-rw-r--r--src/fanswer.php7
-rw-r--r--src/fclar.php4
-rw-r--r--src/fcontest.php36
-rw-r--r--src/fextdata.php22
-rw-r--r--src/flanguage.php7
-rw-r--r--src/fproblem.php12
-rw-r--r--src/frun.php5
-rw-r--r--src/ftask.php6
-rw-r--r--src/site/getsite.php14
-rw-r--r--src/version2
-rw-r--r--src/versionnum.php4
11 files changed, 85 insertions, 34 deletions
diff --git a/src/fanswer.php b/src/fanswer.php
index b689a72..b0e5750 100644
--- a/src/fanswer.php
+++ b/src/fanswer.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 05/aug/2012 by cassio@ime.usp.br
+// Last modified 26/jul/2017 by cassio@ime.usp.br
function DBDropAnswerTable() {
$c = DBConnect();
@@ -96,7 +96,10 @@ function DBNewAnswer($contest, $param, $c=null) {
if(isset($param["action"]) && $param["action"]=="delete") {
return DBDeleteAnswer($contestnumber, $param, $c);
}
-
+
+ if(isset($ac['answernumber']) && !isset($ac['number'])) $ac['number']=$ac['answernumber'];
+ if(isset($ac['runanswer']) && !isset($ac['name'])) $ac['name']=$ac['runanswer'];
+
$ac=array('number','name','yes');
$type['number']=1;
foreach($ac as $key) {
diff --git a/src/fclar.php b/src/fclar.php
index 18d41ff..7d5b6bb 100644
--- a/src/fclar.php
+++ b/src/fclar.php
@@ -226,9 +226,13 @@ function DBClarDelete($number,$site,$contest,$user,$usersite) {
function DBNewClar($param,$c=null) {
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['clarsitenumber']) && !isset($param['site'])) $param['site']=$param['clarsitenumber'];
if(isset($param['usernumber']) && !isset($param['user'])) $param['user']=$param['usernumber'];
if(isset($param['number']) && !isset($param['clarnumber'])) $param['clarnumber']=$param['number'];
+ if(isset($param['clarproblem']) && !isset($param['problem'])) $param['problem']=$param['clarproblem'];
+ if(isset($param['clardata']) && !isset($param['question'])) $param['question']=$param['clardata'];
+
$ac=array('contest','site','user','problem','question');
$ac1=array('clarnumber','clardate','clardatediff','clardatediffans','claranswer','clarstatus','clarjudge','clarjudgesite','updatetime');
$type['contest']=1;
diff --git a/src/fcontest.php b/src/fcontest.php
index e10c205..fa68b72 100644
--- a/src/fcontest.php
+++ b/src/fcontest.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 updated 11/nov/2015 by cassio@ime.usp.br
+//Last updated 26/jul/2017 by cassio@ime.usp.br
//
function DBDropContestTable() {
$c = DBConnect();
@@ -1027,6 +1027,8 @@ function DBNewSite ($contest, $c=null, $param=array()) {
if($ct==null) return false;
if(isset($param['sitenumber']) && !isset($param['number'])) $param['number']=$param['sitenumber'];
+ if(isset($param['siteduration']) && !isset($param['duration'])) $param['duration']=$param['siteduration'];
+
$ac=array('number','siteip','sitename','sitescorelevel','updatetime','startdate','duration');
$type=array();
$type['startdate']=1;
@@ -1048,7 +1050,10 @@ function DBNewSite ($contest, $c=null, $param=array()) {
$number=$n;
} else {
$a = DBGetRow ("select * from sitetable where contestnumber=$contest and sitenumber=$number", 0, $c);
- if($a != null) return 1;
+ if($a != null) {
+ if($cw) DBExec($c, "commit work");
+ return 1;
+ }
}
if($duration=='') $duration = $ct["contestduration"];
if($startdate=='') $startdate=$ct["conteststartdate"];
@@ -1057,13 +1062,16 @@ function DBNewSite ($contest, $c=null, $param=array()) {
if($sitescorelevel=="") $sitescorelevel=3;
$t=time();
if($updatetime=="") $updatetime=$t;
- DBExec($c, "insert into sitetable (contestnumber, sitenumber, siteip, sitename, siteactive, sitepermitlogins, ".
- "sitelastmileanswer, sitelastmilescore, siteduration, siteautoend, sitejudging, sitetasking, ".
- "siteglobalscore, sitescorelevel, ".
- "sitenextuser, sitenextclar, sitenextrun, sitenexttask, sitemaxtask, updatetime) values ".
- "($contest, $number, '$siteip', '$sitename', 't', 't', ".
- $ct["contestlastmileanswer"].",".$ct["contestlastmilescore"].
- ", $duration, 't', '$number', '$number', '$number', $sitescorelevel, 0, 0, 0, 0, 10, $updatetime)");
+ if(!DBExecNonStop($c, "insert into sitetable (contestnumber, sitenumber, siteip, sitename, siteactive, sitepermitlogins, ".
+ "sitelastmileanswer, sitelastmilescore, siteduration, siteautoend, sitejudging, sitetasking, ".
+ "siteglobalscore, sitescorelevel, ".
+ "sitenextuser, sitenextclar, sitenextrun, sitenexttask, sitemaxtask, updatetime) values ".
+ "($contest, $number, '$siteip', '$sitename', 't', 't', ".
+ $ct["contestlastmileanswer"].",".$ct["contestlastmilescore"].
+ ", $duration, 't', '$number', '$number', '$number', $sitescorelevel, 0, 0, 0, 0, 10, $updatetime)")) {
+ if($cw) DBExec($c, "commit work");
+ return 1;
+ }
$cf=globalconf();
$admpass = myhash($cf["basepass"]);
@@ -1134,9 +1142,19 @@ function DBUserUpdate($contest, $site, $user, $username, $userfull, $userdesc, $
function DBNewUser($param, $c=null) {
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['usersitenumber']) && !isset($param['site'])) $param['site']=$param['usersitenumber'];
if(isset($param['usernumber']) && !isset($param['user'])) $param['user']=$param['usernumber'];
if(isset($param['number']) && !isset($param['user'])) $param['user']=$param['number'];
+ if(isset($param['userpassword']) && !isset($param['pass'])) $param['pass']=$param['userpassword'];
+ if(isset($param['userenabled']) && !isset($param['enabled'])) $param['enabled']=$param['userenabled'];
+ if(isset($param['usermultilogin']) && !isset($param['multilogin'])) $param['multilogin']=$param['usermultilogin'];
+ if(isset($param['userpermitip']) && !isset($param['permitip'])) $param['permitip']=$param['userpermitip'];
+ if(isset($param['userfullname']) && !isset($param['userfull'])) $param['userfull']=$param['userfullname'];
+ if(isset($param['usertype']) && !isset($param['type'])) $param['type']=$param['usertype'];
+ if(isset($param['userpermitip']) && !isset($param['permitip'])) $param['permitip']=$param['userpermitip'];
+ if(isset($param['userpermitip']) && !isset($param['permitip'])) $param['permitip']=$param['userpermitip'];
+
$ac=array('contest','site','user');
$ac1=array('updatetime','username','usericpcid','userfull','userdesc','type','enabled','multilogin','pass','permitip','changepass',
'userip','userlastlogin','userlastlogout','usersession','usersessionextra');
diff --git a/src/fextdata.php b/src/fextdata.php
index 2be681a..e43d0af 100644
--- a/src/fextdata.php
+++ b/src/fextdata.php
@@ -286,7 +286,7 @@ function getMainXML() {
return true;
}
-function importFromXML($ar,$contest,$site) {
+function importFromXML($ar,$contest,$site,$tomain=false) {
$data = implode("",explode("\n",$ar));
$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 1);
@@ -310,7 +310,7 @@ function importFromXML($ar,$contest,$site) {
DBClose($conn);
$conn=null;
- $tables = array('contesttable','answertable','langtable','problemtable','sitetable','usertable','clartable','runtable','tasktable');
+ $tables = array('answertable','langtable','problemtable','sitetable','usertable','clartable','runtable','tasktable');
foreach($tables as $table) {
foreach($tags as $key=>$val) {
@@ -341,7 +341,7 @@ function importFromXML($ar,$contest,$site) {
if(count($param) < 2) continue;
unset($param['number']);
- if($key == "answertable") {
+ if(!$tomain && $key == "answertable") {
if(($ret=DBNewAnswer ($contest, $param, $conn))) {
if($ret==2) {
echo "Answer " . $param["answernumber"] . " updated<br>";
@@ -353,7 +353,7 @@ function importFromXML($ar,$contest,$site) {
return false;
}
}
- if($key == "langtable") {
+ if(!$tomain && $key == "langtable") {
if(($ret=DBNewLanguage ($contest,$param, $conn))) {
if($ret==2) {
echo "Language " . $param['langnumber'] ." updated<br>";
@@ -365,7 +365,7 @@ function importFromXML($ar,$contest,$site) {
return false;
}
}
- if($key == "problemtable") {
+ if(!$tomain && $key == "problemtable") {
if(($ret=DBNewProblem ($contest,$param, $conn))) {
if($ret==2)
echo "Problem " . $param['problemnumber'] ." updated<br>";
@@ -379,13 +379,12 @@ function importFromXML($ar,$contest,$site) {
if(!isset($param['sitenumber']) || $param['sitenumber'] != $site) continue;
- if($key == "sitetable") {
+ if($tomain && $key == "sitetable") {
if(!DBNewSite($contest, $conn, $param)) {
if($conn != null)
DBExec($conn,"rollback work");
return false;
- }
- /*
+ }
if(($ret=DBUpdateSite($param, $conn))) {
if($ret==2) {
echo "Site " . $param["sitenumber"] . " updated<br>";
@@ -395,7 +394,6 @@ function importFromXML($ar,$contest,$site) {
DBExec($conn,"rollback work");
return false;
}
- */
}
if($key == "usertable") {
if(($ret=DBNewUser($param, $conn))) {
@@ -447,9 +445,9 @@ function importFromXML($ar,$contest,$site) {
return true;
}
-function genSQLs() {
+function genSQLs($contest, $site, $updatetime) {
$sql = array();
- $sql['contesttable']="select * from contesttable where contestnumber=$contest and updatetime >= $updatetime";
+ // $sql['contesttable']="select * from contesttable where contestnumber=$contest and updatetime >= $updatetime";
$sql['sitetable']="select * from sitetable where contestnumber=$contest and sitenumber=$site and updatetime >= $updatetime";
$sql['answertable']="select * from answertable where contestnumber=$contest and fake='f' and updatetime >= $updatetime";
$sql['langtable']="select * from langtable where contestnumber=$contest and updatetime >= $updatetime";
@@ -463,7 +461,7 @@ function genSQLs() {
}
function generateSiteXML($contest,$site,$updatetime) {
- $sql = genSQL();
+ $sql = genSQL($contest, $site, $updatetime);
$c = DBConnect();
if ($c==null) return null;
DBExec($c, "begin work");
diff --git a/src/flanguage.php b/src/flanguage.php
index 120fad2..0523801 100644
--- a/src/flanguage.php
+++ b/src/flanguage.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 05/aug/2012 by cassio@ime.usp.br
+// Last modified 26/jul/2017 by cassio@ime.usp.br
function DBDropLangTable() {
$c = DBConnect();
$r = DBExec($c, "drop table \"langtable\"", "DBDropLangTable(drop table)");
@@ -97,6 +97,11 @@ function DBNewLanguage($contestnumber, $param, $c=null) {
if(isset($param["action"]) && $param["action"]=="delete") {
return DBDeleteLanguage($contestnumber, $param, $c);
}
+
+ if(isset($ac['langnumber']) && !isset($ac['number'])) $ac['number']=$ac['langnumber'];
+ if(isset($ac['langname']) && !isset($ac['name'])) $ac['name']=$ac['langname'];
+ if(isset($ac['langextension']) && !isset($ac['extension'])) $ac['extension']=$ac['langextension'];
+
$ac=array('number','name');
$ac1=array('updatetime','extension');
$type['number']=1;
diff --git a/src/fproblem.php b/src/fproblem.php
index 3214a82..8bc981c 100644
--- a/src/fproblem.php
+++ b/src/fproblem.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 21/jul/2012 by cassio@ime.usp.br
+// Last modified 26/jul/2017 by cassio@ime.usp.br
function DBDropProblemTable() {
$c = DBConnect();
@@ -281,6 +281,16 @@ function DBNewProblem($contestnumber, $param, $c=null) {
return DBDeleteProblem($contestnumber, $param);
}
+ if(isset($ac['problemnumber']) && !isset($ac['number'])) $ac['number']=$ac['problemnumber'];
+ if(isset($ac['problemname']) && !isset($ac['name'])) $ac['name']=$ac['problemname'];
+ if(isset($ac['problemfullname']) && !isset($ac['fullname'])) $ac['fullname']=$ac['problemfullname'];
+ if(isset($ac['problembasefilename']) && !isset($ac['basename'])) $ac['basename']=$ac['problembasefilename'];
+ if(isset($ac['problemcolorname']) && !isset($ac['colorname'])) $ac['colorname']=$ac['problemcolorname'];
+ if(isset($ac['problemcolor']) && !isset($ac['color'])) $ac['color']=$ac['problemcolor'];
+ if(isset($ac['probleminputfile']) && !isset($ac['inputfilepath'])) $ac['inputfilepath']=$ac['probleminputfile'];
+ if(isset($ac['probleminputfilename']) && !isset($ac['inputfilename'])) $ac['inputfilename']=$ac['probleminputfilename'];
+
+
$ac=array('number','name');
$type['number']=1;
$type['updatetime']=1;
diff --git a/src/frun.php b/src/frun.php
index d7e2a4f..a6406e4 100644
--- a/src/frun.php
+++ b/src/frun.php
@@ -613,11 +613,16 @@ function DBOpenRunsSNS($contest,$site,$st,$order='run') {
function DBNewRun($param,$c=null) {
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['runsitenumber']) && !isset($param['site'])) $param['site']=$param['runsitenumber'];
if(isset($param['usernumber']) && !isset($param['user'])) $param['user']=$param['usernumber'];
if(isset($param['number']) && !isset($param['runnumber'])) $param['runnumber']=$param['number'];
if(isset($param['runlangnumber']) && !isset($param['lang'])) $param['lang']=$param['runlangnumber'];
if(isset($param['runproblem']) && !isset($param['problem'])) $param['problem']=$param['runproblem'];
+ if(isset($param['runfilename']) && !isset($param['filename'])) $param['filename']=$param['runfilename'];
+ if(isset($param['rundata']) && !isset($param['filepath'])) $param['filepath']=$param['rundata'];
+ if(isset($param['runlangnumber']) && !isset($param['lang'])) $param['lang']=$param['runlangnumber'];
+
$ac=array('contest','site','user','problem','lang','filename','filepath');
$ac1=array('runnumber','rundate','rundatediff','rundatediffans','runanswer','runstatus','runjudge','runjudgesite',
'runjudge1','runjudgesite1','runanswer1','runjudge2','runjudgesite2','runanswer2',
diff --git a/src/ftask.php b/src/ftask.php
index 8ff7bd7..36f272a 100644
--- a/src/ftask.php
+++ b/src/ftask.php
@@ -288,6 +288,12 @@ function DBNewTask($param, $c=null, $autotask=false) {
if(isset($param['usernumber']) && !isset($param['user'])) $param['user']=$param['usernumber'];
if(isset($param['number']) && !isset($param['tasknumber'])) $param['tasknumber']=$param['number'];
+ if(isset($param['taskfilename']) && !isset($param['filename'])) $param['filename']=$param['taskfilename'];
+ if(isset($param['taskdata']) && !isset($param['filepath'])) $param['filepath']=$param['taskdata'];
+ if(isset($param['taskstatus']) && !isset($param['status'])) $param['status']=$param['taskstatus'];
+ if(isset($param['taskdesc']) && !isset($param['desc'])) $param['desc']=$param['taskdesc'];
+ if(isset($param['tasksystem']) && !isset($param['sys'])) $param['sys']=$param['tasksystem'];
+
$ac=array('contest','site','user','desc');
$ac1=array('color','colorname','updatetime','filename','filepath','sys','tasknumber','status',
'taskdate','taskdatediff','taskdatediffans','taskstaffnumber','taskstaffsite');
diff --git a/src/site/getsite.php b/src/site/getsite.php
index 9cf4905..5e4b621 100644
--- a/src/site/getsite.php
+++ b/src/site/getsite.php
@@ -39,12 +39,14 @@ if($ct["contestlocalsite"]==$ct["contestmainsite"]) {
// $fp=fopen('/tmp/aaa',"w"); fwrite($fp,$_POST['xml']); fclose($fp);
$s = decryptData(rawurldecode($_POST['xml']),myhash($_SESSION["usertable"]["userpassword"]));
// $fp=fopen('/tmp/aaa1',"w"); fwrite($fp,$s); fclose($fp);
-
-
- if(importSiteFromXML($s,$_SESSION["usertable"]["contestnumber"],$fromsite))
- echo "<!-- <OK> -->";
- else
- echo "<!-- <NOTOK> -->";
+ if(strtoupper(substr($s,0,5)) != "<XML>") {
+ echo "<!-- <ERROR8> ".session_id() . " " . session_id() . " -->\n";
+ } else {
+ if(importFromXML($s,$_SESSION["usertable"]["contestnumber"],$fromsite,true))
+ echo "<!-- <OK> -->";
+ else
+ echo "<!-- <NOTOK> -->";
+ }
}
if(isset($_POST['updatetime']) && is_numeric($_POST['updatetime'])) {
$xml = generateSiteXML($_SESSION["usertable"]["contestnumber"],$fromsite,$_POST['updatetime']);
diff --git a/src/version b/src/version
index cf803d8..2924c77 100644
--- a/src/version
+++ b/src/version
@@ -1 +1 @@
-boca-1.5.10
+boca-1.5.11
diff --git a/src/versionnum.php b/src/versionnum.php
index abad2a7..5cebd5e 100644
--- a/src/versionnum.php
+++ b/src/versionnum.php
@@ -1,5 +1,5 @@
<?php
-$BOCAVERSION='boca-1.5.10';
-$YEAR='2015';
+$BOCAVERSION='boca-1.5.11';
+$YEAR='2017';
?>