Browse Source

update title index cli

visuddhinanda 4 years ago
parent
commit
e08574ba58
1 changed files with 155 additions and 0 deletions
  1. 155 0
      app/install/db_update_toc_cli.php

+ 155 - 0
app/install/db_update_toc_cli.php

@@ -0,0 +1,155 @@
+<?php
+require_once __DIR__."/../path.php";
+require_once __DIR__.'/../public/_pdo.php';
+require_once __DIR__."/../public/function.php";
+
+echo "Update toc to res_index".PHP_EOL;
+
+if ($argc != 4) {
+	echo $argv[0]." help".PHP_EOL;
+	echo " from to language".PHP_EOL;
+	echo "from = 1-217".PHP_EOL;
+	echo "to = 1-217".PHP_EOL;
+	echo "language = pali/zh-hans/zh-hant".PHP_EOL;
+	exit;
+}
+$_from = (int) $argv[1];
+$_to = (int) $argv[2];
+if ($_to > 217) {
+	$_to = 217;
+}
+
+$to = $_to;
+$_file = $argv[3];
+$_lang = $argv[3];
+$filelist = array();
+$fileNums = 0;
+$log = "";
+echo "doing $_from".PHP_EOL;
+
+if (($handle = fopen("filelist.csv", 'r')) !== false) {
+    while (($filelist[$fileNums] = fgetcsv($handle, 0, ',')) !== false) {
+        $fileNums++;
+    }
+}
+if ($to == 0 || $to >= $fileNums) {
+    $to = $fileNums - 1;
+}
+
+PDO_Connect(_FILE_DB_RESRES_INDEX_);
+
+for ($from=$_from-1; $from < $_to; $from++) { 
+    # code...
+
+    $FileName = $filelist[$from][1] . ".htm";
+    $fileId = $filelist[$from][0];
+    $fileId = $filelist[$from][0];
+    
+    $dirLog = _DIR_LOG_ . "/";
+    
+    $dirDb = "/";
+    $inputFileName = $FileName;
+    $outputFileNameHead = $filelist[$from][1];
+    $bookId = $filelist[$from][2];
+    $vriParNum = 0;
+    $wordOrder = 1;
+    
+    $dirXmlBase = _DIR_PALI_CSV_ . "/";
+    $dirPaliTextBase = _DIR_PALI_HTML_ . "/";
+    $dirXml = $outputFileNameHead . "/";
+    
+    $xmlfile = $inputFileName;
+    
+    $log = $log . date("Y-m-d h:i:sa") . ",$from,$FileName,open\r\n";
+    
+    $arrInserString = array();
+    
+    // 打开csv文件并读取数据
+    $strFileName = _DIR_PALI_TITLE_ . "/" . ($from + 1) . "_{$_file}.csv";
+    if(!file_exists($strFileName)){
+        continue;
+    }
+    $inputRow = 0;
+    if (($fp = fopen($strFileName, "r")) !== false) {
+        while (($data = fgetcsv($fp, 0, ',')) !== false) {
+            if ($inputRow > 0 && $data[3] != 100 && !empty($data[6])) {
+                array_push($arrInserString, $data);
+            }
+            $inputRow++;
+        }
+        fclose($fp);
+        echo "res load:" . _DIR_PALI_TITLE_ . "/" . ($from + 1) . "_title.csv".PHP_EOL;
+    } else {
+        echo "can not open csv ";
+        continue;
+    }
+    
+    $book = $from + 1;
+    
+    //删除已有标题
+    
+    $query = "DELETE FROM "._TABLE_RES_INDEX_." WHERE book = ?  AND  language = ?  ";
+    PDO_Execute($query, array($book,$_lang));
+    
+    
+    // 开始一个事务,关闭自动提交
+    $PDO->beginTransaction();
+    $query = "INSERT INTO "._TABLE_RES_INDEX_." (book , paragraph, title, title_en , level, type , language , author , share , create_time , update_time  ) VALUES (  ? , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? )";
+    $stmt = $PDO->prepare($query);
+    if ($_lang == "pali") {
+        $type = 1;
+    } else {
+        $type = 2;
+    }
+    foreach ($arrInserString as $title) {
+        if (isset($title[7])) {
+            $author = $title[7];
+        }else {
+            $author = "cscd4";
+        }
+        $title[6] = mb_substr($title[6],0,1024);
+        $newData = array(
+            $book,
+            $title[2],
+            $title[6],
+            getWordEn($title[6]),
+            $title[3],
+            $type,
+            $_lang,
+            $author,
+            1,
+            mTime(),
+            mTime(),
+        );
+        $stmt->execute($newData);
+    }
+    // 提交更改
+    $PDO->commit();
+    if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
+        $error = PDO_ErrorInfo();
+        echo "error - $error[2] ".PHP_EOL;
+        $log = $log . "$from, error, $error[2] \r\n";
+    } else {
+        $count = count($arrInserString);
+        echo "updata $count title recorders.".PHP_EOL;
+    }
+    //段落信息结束
+    /*
+    $myLogFile = fopen(_DIR_LOG_ . "/db_update_toc.log", "a");
+    fwrite($myLogFile, $log);
+    fclose($myLogFile);
+    */
+}
+ echo "<h2>齐活!功德无量!all done!</h2>";
+
+
+
+function getWordEn($strIn)
+{
+    $strIn = strtolower($strIn);
+    $search = array('ā', 'ī', 'ū', 'ṅ', 'ñ', 'ṭ', 'ḍ', 'ṇ', 'ḷ', 'ṃ');
+    $replace = array('a', 'i', 'u', 'n', 'n', 't', 'd', 'n', 'l', 'm');
+    return (str_replace($search, $replace, $strIn));
+}
+?>
+