Pārlūkot izejas kodu

Merge commit '341567c66da59265f126a29ede4fc776653932c0' of http://192.168.8.168/mint/

Bhikkhu-Kosalla 4 gadi atpakaļ
vecāks
revīzija
0cb0a3a1fd

+ 21 - 16
app/studio/js/render.js

@@ -1316,7 +1316,11 @@ function renderWordParBlockInner(elementBlock) {
 		} else {
 			if (wReal == "") {
 				output +=
-					'<div id="wb' + wID + '" class="word_punc un_parent sent_gramma_' + (sent_gramma_i % 3) + '" >'; //符號
+					'<div id="wb' +
+					wID +
+					'" class="word word_punc un_parent sent_gramma_' +
+					(sent_gramma_i % 3) +
+					'" >'; //符號
 			} else {
 				if (wType == ".un.") {
 					output +=
@@ -1624,11 +1628,21 @@ function sent_show_rel_map(book, para, begin, end) {
 	let memind = "graph LR\n";
 	let pali_text = "";
 
-	for (wordId = parseInt(begin); wordId <= parseInt(end); wordId++) {
-		let rel = doc_word("#p" + book + "-" + para + "-" + wordId).val("rela");
-		let pali = doc_word("#p" + book + "-" + para + "-" + wordId).val("real");
-		let type = doc_word("#p" + book + "-" + para + "-" + wordId).val("type");
-		let meaning = doc_word("#p" + book + "-" + para + "-" + wordId).val("mean");
+	let idList = new Array();
+	$("#wbp" + book + "-" + para + "-" + begin)
+		.parent()
+		.children(".word")
+		.each(function (index, element) {
+			idList.push(this.id.slice(3));
+		});
+
+	for (const iterator of idList) {
+		let rel = doc_word("#p" + iterator).val("rela");
+		let pali = doc_word("#p" + iterator).val("pali");
+		let real = doc_word("#p" + iterator).val("real");
+		let type = doc_word("#p" + iterator).val("type");
+
+		let meaning = doc_word("#p" + iterator).val("mean");
 		meaning = removeFormulaB(meaning, "[", "]");
 		meaning = removeFormulaB(meaning, "【", "】");
 		meaning = removeFormulaB(meaning, "{", "}");
@@ -1669,16 +1683,7 @@ function sent_show_rel_map(book, para, begin, end) {
 				} else {
 					dest = iterator.dest_id + "[" + dest + "<br>" + meanDest + "]";
 				}
-				/*
-				if (strRel.indexOf("SV") >= 0 || strRel.indexOf("-P") >= 0) {
-					memind += wid + "(" + pali + ")" + " ==> |" + strRel + "|" + dest + "\n";
-		let type = doc_word("#p" + book + "-" + para + "-" + wordId).val("type");
-				} else if (strRel.indexOf("OV") >= 0 || strRel.indexOf("-S") >= 0) {
-					memind += dest + " ==> |" + strRel + "|" + wid + "(" + pali + ")" + "\n";
-				} else {
-				}
-*/
-				memind += wid + "(" + pali +"<br>"+ meaning + ")" + " -- " + strRel+"<br>"+ relation_locstr + " --> " + dest + "\n";
+				memind += wid + "(" + real +"<br>"+ meaning + ")" + " -- " + strRel+"<br>"+ relation_locstr + " --> " + dest + "\n";
 			}
 		}
 	}

+ 24 - 23
app/sync/function.php

@@ -14,14 +14,14 @@ function do_sync($param)
 		$key = $redis->hget("sync://key",$_POST["userid"]);
 		if($key===FALSE){
 			$output["error"]=1;
-			$output["message"]="key验证失败";
+			$output["message"]="无法提取key userid:".$_POST["userid"];
 			echo json_encode($output, JSON_UNESCAPED_UNICODE);	
 			return false;
 		}
 		else{
 			if($key!=$_POST["key"]){
 				$output["error"]=1;
-				$output["message"]="key验证失败";
+				$output["message"]="key验证失败 {$key}- {$_POST["key"]} ";
 				echo json_encode($output, JSON_UNESCAPED_UNICODE);	
 				return false;
 			}
@@ -103,40 +103,43 @@ function do_sync($param)
                 } else {
                     return (false);
                 }
-                $arrId = json_decode($id);
+                $arrId = json_decode($id,true);
 				/*  创建一个填充了和params相同数量占位符的字符串 */
 				$place_holders = implode(',', array_fill(0, count($arrId), '?'));
                 $query = "SELECT * FROM {$param->table} WHERE {$param->uuid} in ($place_holders)";
 				$stmt = $PDO->prepare($query);
 				$stmt->execute($arrId);
                 $Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
+				$output["message"]="提取数据".count($Fetch);
 				$output["data"]=$Fetch;
 				echo json_encode($output, JSON_UNESCAPED_UNICODE);
-                return (true);
+                return true;
                 break;
             }
         case "insert":
             {
-                echo "正在准备插入记录<br>";
                 if (isset($_POST["data"])) {
                     $data = $_POST["data"];
                 } else {
-                    echo "没有数据<br>";
-                    return (false);
+					$output["error"]=1;
+					$output["message"]="没有提交数据";
+					echo json_encode($output, JSON_UNESCAPED_UNICODE);	
+                    return false;
                 }
 
                 // 开始一个事务,关闭自动提交
-
                 $PDO->beginTransaction();
                 $query = "INSERT INTO {$param->table} (";
                 foreach ($param->insert as $row) {
                     $query .= "'" . $row . "',";
                 }
-                $query .= "'receive_time') VALUES ( ";
+				$query = mb_substr($query,0,-1,"UTF-8");
+                $query .= ") VALUES ( ";
                 for ($i = 0; $i < count($param->insert); $i++) {
-                    $query .= " ?, ";
+                    $query .= " ?,";
                 }
-                $query .= " ? )";
+				$query = mb_substr($query,0,-1,"UTF-8");
+                $query .= "  )";
 
                 $arrData = json_decode($data, true);
                 $stmt = $PDO->prepare($query);
@@ -145,7 +148,6 @@ function do_sync($param)
                     foreach ($param->insert as $row) {
                         $newRow[] = $oneParam["{$row}"];
                     }
-                    $newRow[] = mTime();
 
                     $stmt->execute($newRow);
                 }
@@ -154,13 +156,13 @@ function do_sync($param)
                 if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
                     $error = $PDO->errorInfo();
 					$output["error"]=1;
-					$output["message"]="error - $error[2] <br>";
+					$output["message"]="error - $error[2]";
 					echo json_encode($output, JSON_UNESCAPED_UNICODE);	
-                    return (false);
+                    return false;
                 } else {
                     $count = count($arrData);
-					$output["error"]=1;
-					$output["message"]="INSERT $count recorders." . "<br>";
+					$output["error"]=0;
+					$output["message"]="INSERT $count recorders.";
 					echo json_encode($output, JSON_UNESCAPED_UNICODE);						
                     return (true);
                 }
@@ -168,12 +170,11 @@ function do_sync($param)
             }
         case "update":
             {
-                echo "更在准备更新数据<br>";
                 if (isset($_POST["data"])) {
                     $data = $_POST["data"];
                 } else {
 					$output["error"]=1;
-					$output["message"]="没有输入数据<br>";
+					$output["message"]="没有输入数据";
 					echo json_encode($output, JSON_UNESCAPED_UNICODE);	
                     return false;
                 }
@@ -182,7 +183,8 @@ function do_sync($param)
                 foreach ($param->update as $row) {
                     $query .= "{$row} = ? ,";
                 }
-                $query .= "{$param->receive_time} = ?  where {$param->uuid} = ? ";
+				$query = mb_substr($query,0,-1,"UTF-8");
+                $query .= "  where {$param->uuid} = ? ";
                 $stmt = $PDO->prepare($query);
                 // 开始一个事务,关闭自动提交
                 try {
@@ -193,7 +195,6 @@ function do_sync($param)
                         foreach ($param->update as $row) {
                             $newRow[] = $one["{$row}"];
                         }
-                        $newRow[] = mTime();
                         $newRow[] = $one["{$param->uuid}"];
                         $stmt->execute($newRow);
                     }
@@ -202,20 +203,20 @@ function do_sync($param)
                     if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
                         $error = $PDO->errorInfo();
 						$output["error"]=1;
-						$output["message"]="error - $error[2] <br>";
+						$output["message"]="error - $error[2]";
 						echo json_encode($output, JSON_UNESCAPED_UNICODE);	
 						return false;
                     } else {
                         $count = count($arrData);
 						$output["error"]=0;
-						$output["message"]="INSERT $count recorders." . "<br>";
+						$output["message"]="Update $count recorders.";
 						echo json_encode($output, JSON_UNESCAPED_UNICODE);	
                         return true;
                     }
                 } catch (Exception $e) {
                     $PDO->rollback();
 					$output["error"]=1;
-					$output["message"]="Failed:" . $e->getMessage() . "<br>";
+					$output["message"]="Failed:" . $e->getMessage();
 					echo json_encode($output, JSON_UNESCAPED_UNICODE);						
                     return false;
                 }

+ 1 - 1
app/sync/index.php

@@ -21,7 +21,7 @@ require_once "../pcdl/html_head.php";
 	}
 	else{
 ?>
-	<div class="fun_block">
+	<div class="fun_block" style="margin-left: auto;margin-right: auto;max-width: 100%;">
 		<h2>Sync</h2>
 		<div id="wiki_search" style="width:100%;">
 			<div>

+ 3 - 2
app/sync/login.php

@@ -31,12 +31,13 @@ if(isset($_POST["userid"]) && isset($_POST["password"]) ){
 			$phpFile = $_POST["server"]."/app/sync/login.php";
 			$client = new \GuzzleHttp\Client();
 			$response = $client->request('POST', $phpFile,['verify' => false,'form_params'=>['userid'=>$_POST["userid"],'password'=>$_POST["password"]]]);
-			$serveMsg=$response->getBody();
+			$serveMsg=(string)$response->getBody();
 			$arrServerMsg = json_decode($serveMsg,true);
 			if($arrServerMsg["error"]==0){
 				#验证成功
 				$redis->hset("sync://key",$_POST["userid"],$arrServerMsg["key"]);
-				$output["message"]="本机登录成功<br>服务器验证成功:msg:".$serveMsg;
+				$output["message"]="本机登录成功<br>服务器验证成功:msg:".$serveMsg."<br>";
+				$output["message"].="<a href='index.php'>开始同步</a>";
 			}
 			else{
 				#验证失败

+ 15 - 4
app/sync/sync.js

@@ -1,7 +1,11 @@
-var sync_db_list = new Array("term/sync_index.php");
-//var sync_db_list = ["doc/sync_index.php", "term/sync_index.php", "usent/sync.php"];
+var sync_db_list = [
+	"sync/table_term.php",
+	"sync/table_article.php",
+	"sync/table_article_list.php",
+	"sync/table_article_collect.php",
+];
 var sync_curr_do_db = 0;
-function sync_index_init() { }
+function sync_index_init() {}
 
 function sync_pull() {
 	sync_curr_do_db = 0;
@@ -32,7 +36,14 @@ function sync_do_db(src, dest, time = 1) {
 				console.error(error + " data:" + data);
 				return;
 			}
-			$("#sync_result").html($("#sync_result").html() + "<br>" + result.message + "<br>" + result.src_row); //
+			$("#sync_result").html(
+				$("#sync_result").html() +
+					"<div><h2>" +
+					sync_db_list[sync_curr_do_db] +
+					"</h2>" +
+					result.message +
+					"</div>"
+			); //
 			if (result.src_row >= size) {
 				sync_do_db(src, dest, result.time);
 			} else {

+ 65 - 33
app/sync/sync.php

@@ -9,43 +9,54 @@ $path=$_GET["path"];
 $time=$_GET["time"];
 $size=$_GET["size"];
 
-$message="";
-
 $output=["message"=>"","time"=>0,"src_row"=>0];
+$message = "<h3>正在处理 {$path}</h3>";
 
 $redis=redis_connect();
 if($redis){
 	$sync_key = $redis->hget("sync://key",$_COOKIE["userid"]);
 	if($sync_key===FALSE){
 		$message.= "客户端没有钥匙"."<br>";
+		$output["message"]=$message;
 		echo json_encode($output, JSON_UNESCAPED_UNICODE);
 		exit;
 	}
 }
 else{
 	$message.= "redis连接失败"."<br>";
+	$output["message"]=$message;
 	echo json_encode($output, JSON_UNESCAPED_UNICODE);
 	exit;
 }
 
 $client = new \GuzzleHttp\Client();
 $response = $client->request('POST', $server.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'sync','time'=>$time,'size'=>$size,"key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
-$serverJson=$response->getBody();
+$serverJson=(string)$response->getBody();
 $serverData = json_decode($serverJson,true);
+if($serverData===NULL){
+	$message.="无法解码 数据:".$serverJson;
+	$output["message"]=$message;
+	echo json_encode($output, JSON_UNESCAPED_UNICODE);
+	exit;	
+}
 if($serverData["error"]>0){
-	$output["message"]=$serverData["message"];
+	$message.=$serverData["message"];
+	$output["message"]=$message;
 	echo json_encode($output, JSON_UNESCAPED_UNICODE);
 	exit;
 }
+$message .= "<div>";
 $serverDBData = $serverData["data"];
 $output["src_row"]=count($serverDBData);
-$message.= "输入时间:".$time."<br>";
-$message.= "src_row:".$output["src_row"]."<br>";
+$message.= "输入时间:".$time." | ";
+$message.= "src_row:".$output["src_row"]." | ";
 if($output["src_row"]>0){
 	$output["time"]=$serverDBData[$output["src_row"]-1]["modify_time"];
-	$message.= "最新时间:".$output["time"]."<br>";
+	$message.= "最新时间:".$output["time"]." | ";
 }
 else{
+	$message .= "没有查询到数据</div>";
+	$output["message"]=$message;
     echo json_encode($output, JSON_UNESCAPED_UNICODE);
 	exit;
 }
@@ -53,26 +64,29 @@ $aIdList=array();
 foreach($serverDBData as $sd){
 	$aIdList[]=$sd["guid"];
 }
-$sIdlist = json_encode($aIdList, JSON_UNESCAPED_UNICODE);;
+$sIdlist = json_encode($aIdList, JSON_UNESCAPED_UNICODE);
 // 拉 id 列表
 $response = $client->request('POST', $localhost.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'sync','id'=>$sIdlist,'size'=>$size,"key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
-$strLocalData = $response->getBody();
+$strLocalData = (string)$response->getBody();
 $localData = json_decode($strLocalData,true);
 if($localData["error"]>0){
-	$output["message"]=$localData["message"];
+	$message .= $localData["message"];
+	$output["message"]=$message;
 	echo json_encode($output, JSON_UNESCAPED_UNICODE);
 	exit;
 }
 $localDBData = $localData["data"];
 $localCount = count($localDBData);
-$message .= "local-row:".$localCount."<br>";
+$message .= "local-row:".$localCount." | ";
+$message .= "</div>";
+
 $localindex=array();
 
 $insert_to_server=array();
 $update_to_server=array();
 $insert_to_local=array();
 $update_to_local=array();
-$message .= "<h3>{$path}</h3>";
+
 foreach($localDBData as $local){
 	$localindex[$local["guid"]][0]=$local["modify_time"];
 	$localindex[$local["guid"]][1]=false;
@@ -119,9 +133,9 @@ else{
 		/*
 		$idInLocal = json_encode($insert_to_server, JSON_UNESCAPED_UNICODE);
 		$response = $client->request('POST', $localhost.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'get','id'=>"{$idInLocal}"]]);
-		$localData=$response->getBody();
+		$localData=(string)$response->getBody();
 		$response = $client->request('POST', $server.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'insert','data'=>"{$localData}"]]);
-		$message .=  $response->getBody()."<br>";
+		$message .=  (string)$response->getBody()."<br>";
 		*/
 		
 	}
@@ -135,38 +149,56 @@ else{
 		
 		$idInLocal = json_encode($update_to_server, JSON_UNESCAPED_UNICODE);
 		$response = $client->request('POST', $localhost.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'get','id'=>"{$idInLocal}"]]);
-		$localData=$response->getBody();
+		$localData=(string)$response->getBody();
 		$response = $client->request('POST', $server.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'update','data'=>"{$localData}"]]);
-		$message .=  $response->getBody()."<br>";
+		$message .=  (string)$response->getBody()."<br>";
 		*/
 		
 	}
-
+	$message .= "<div>";
 	if(count($insert_to_local)>0){
-		$message .=  "需要新增到本地".count($insert_to_local)."条记录<br>";
-		/*
+		$message .=  "需要新增到本地".count($insert_to_local)."条记录 | ";
+		#提取数据
 		$idInServer = json_encode($insert_to_local, JSON_UNESCAPED_UNICODE);
-		$response = $client->request('POST', $server.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'get','id'=>"{$idInServer}","key"=>$sync_key]]);
-		$serverData=$response->getBody();
+		$response = $client->request('POST', $server.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'get','id'=>"{$idInServer}","key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
+		$serverData=(string)$response->getBody();
 		$arrData = json_decode($serverData,true);
-		$strData = json_encode($arrData["data"], JSON_UNESCAPED_UNICODE);
-		$response = $client->request('POST', $localhost.'/app/'.$path, ['verify' => false,'form_params'=>['op'=>'insert','data'=>"{$strData}","key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
-		$message .=  $response->getBody()."<br>";
-		*/
+		if($arrData["error"]==0){
+			$message .= "数据提取成功:{$arrData["message"]} | ";
+			$strData = json_encode($arrData["data"], JSON_UNESCAPED_UNICODE);
+			$response = $client->request('POST', $localhost.'/app/'.$path, ['verify' => false,'form_params'=>['op'=>'insert','data'=>"{$strData}","key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
+			$insertMsg =  (string)$response->getBody();	
+			$arrInsertMsg = json_decode($insertMsg,true);	
+			$message .= $arrInsertMsg["message"] . " | ";
+		}
+		else{
+			$message .= "数据提取错误 错误信息:{$arrData["message"]} ";
+		}
 	}
+	$message .= "</div>";
 
+	$message .= "<div>";
 	if(count($update_to_local)>0){
-		$message .=  "需要更新到本地".count($update_to_local)."条记录<br>";
-		/*
+		$message .=  "需要更新到本地".count($update_to_local)."条记录 | ";
+		
 		$idInServer = json_encode($update_to_local, JSON_UNESCAPED_UNICODE);
-		$response = $client->request('POST', $server.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'get','id'=>"{$idInServer}","key"=>$sync_key]]);
-		$serverData=$response->getBody();
+		$response = $client->request('POST', $server.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'get','id'=>"{$idInServer}","key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
+		$serverData=(string)$response->getBody();
 		$arrData = json_decode($serverData,true);
-		$strData = json_encode($arrData["data"], JSON_UNESCAPED_UNICODE);
-		$response = $client->request('POST', $localhost.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'update','data'=>"{$strData}","key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
-		$message .=  $response->getBody()."<br>";
-		*/
+		if($arrData["error"]==0){
+			$message .= "数据提取成功:{$arrData["message"]} | ";
+			$strData = json_encode($arrData["data"], JSON_UNESCAPED_UNICODE);
+			$response = $client->request('POST', $localhost.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'update','data'=>"{$strData}","key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
+			$strMsgUpdate =  (string)$response->getBody();
+			$arrMsgUpdate = json_decode($strMsgUpdate,true);
+			$message .= $arrMsgUpdate["message"] . " | ";;
+		}
+		else{
+			$message .= "数据提取错误 错误信息:{$arrData["message"]} ";
+		}
 	}
+	$message .= "</div>";
+
 }
 $output["message"]=$message;
 echo json_encode($output, JSON_UNESCAPED_UNICODE);

+ 43 - 0
app/sync/table_article.php

@@ -0,0 +1,43 @@
+<?php
+//header('Content-type: application/json; charset=utf8');
+
+require_once "../path.php";
+require_once "../sync/function.php";
+
+$input = (object) [
+    "database" =>  _FILE_DB_USER_ARTICLE_,
+    "table" =>  "article",
+    "uuid" =>  "id",
+    "modify_time" =>  "modify_time",
+    "receive_time" =>  "modify_time",
+    "insert" => [
+        'id',
+		'title',
+		'subtitle',
+		'summary',
+		'content',
+		'tag',
+		'owner',
+		'setting',
+		'status',
+		'create_time',
+		'modify_time',
+		'receive_time'
+    ],
+    "update" =>  [
+		'title',
+		'subtitle',
+		'summary',
+		'content',
+		'tag',
+		'owner',
+		'setting',
+		'status',
+		'modify_time',
+		'receive_time'
+    ]    
+];
+
+do_sync($input);
+
+?>

+ 42 - 0
app/sync/table_article_collect.php

@@ -0,0 +1,42 @@
+<?php
+//header('Content-type: application/json; charset=utf8');
+
+require_once "../path.php";
+require_once "../sync/function.php";
+
+$input = (object) [
+    "database" =>  _FILE_DB_USER_ARTICLE_,
+    "table" =>  "collect",
+    "uuid" =>  "id",
+    "modify_time" =>  "modify_time",
+    "receive_time" =>  "modify_time",
+    "insert" => [
+        'id',
+		'title',
+		'subtitle',
+		'summary',
+		'article_list',
+		'status',
+		'owner',
+		'lang',
+		'create_time',
+		'modify_time',
+		'tag'
+    ],
+    "update" =>  [
+		'title',
+		'subtitle',
+		'summary',
+		'article_list',
+		'status',
+		'owner',
+		'lang',
+		'create_time',
+		'modify_time',
+		'tag'
+    ]    
+];
+
+do_sync($input);
+
+?>

+ 36 - 0
app/sync/table_article_list.php

@@ -0,0 +1,36 @@
+<?php
+//header('Content-type: application/json; charset=utf8');
+
+require_once "../path.php";
+require_once "../sync/function.php";
+
+$input = (object) [
+    "database" =>  _FILE_DB_USER_ARTICLE_,
+    "table" =>  "article_list",
+    "uuid" =>  "id",
+    "modify_time" =>  "modify_time",
+    "receive_time" =>  "modify_time",
+    "insert" => [
+        'id',
+		'collect_id',
+		'collect_title',
+		'article_id',
+		'level',
+		'title',
+		'create_time',
+		'modify_time'
+    ],
+    "update" =>  [
+		'collect_id',
+		'collect_title',
+		'article_id',
+		'level',
+		'title',
+		'create_time',
+		'modify_time'
+    ]    
+];
+
+do_sync($input);
+
+?>

+ 0 - 0
app/term/sync_index.php → app/sync/table_term.php