diff --git a/API.php b/API.php index 01eecb6..930e188 100644 --- a/API.php +++ b/API.php @@ -39,7 +39,7 @@ $now = getDocumentNow($API_SETTINGS['namespace'], $API_SETTINGS['title']); if($now['status']!="success"&&$now['status']!="not found"){ - die(""); + // mongo error } $arr4 = getACL($API_SETTINGS['full_title'], 'ALL', 'document'); @@ -158,11 +158,11 @@ $dumpArray = array(200302, 190312); } foreach($dumpArray as $currentDump){ - $arr2 = $mongo->executeQuery('thewiki.docData'.$currentDump, $query); + $arr2 = dumpCheck($API_SETTINGS['namespace'], $API_SETTINGS['title'], $currentDump); - foreach($arr2 as $value){ - $raw = $value->text; - $contribution = implode('\\n',$value->contributors); + if($arr2['return']){ + $raw = $arr2['text']; + $contribution = implode('\\n',$arr2['contributors']); break; } @@ -178,11 +178,11 @@ $dumpArray = array(200302, 190312); } foreach($dumpArray as $currentDump){ - $arr2 = $mongo->executeQuery('thewiki.docData'.$currentDump, $query); + $arr2 = dumpCheck($API_SETTINGS['namespace'], $API_SETTINGS['title'], $currentDump); - foreach($arr2 as $value){ - $raw = $value->text; - $contribution = implode('\\n',$value->contributors); + if($arr2['return']){ + $raw = $arr2['text']; + $contribution = implode('\\n',$arr2['contributors']); break; } @@ -196,8 +196,7 @@ if(empty($raw)){ $API_RETURN = array('status'=>'error', 'reason'=>'empty document'); } else { - $arr = $mongo->executeCommand('thewiki', new MongoDB\Driver\Command(["count"=>"docData".$settings_api['docVersion']]))->toArray(); - $AllPage = $arr[0]->n; + $AllPage = getpagecount(); $API_RETURN = array('status'=>'success', 'type'=>'raw', 'data'=>$raw, 'contribution'=>$contribution, 'count'=>$AllPage); } } catch (MongoDB\Driver\Exception\Exception $e){ diff --git a/build/complete.php b/build/complete.php index 2b926e5..0ec4499 100644 --- a/build/complete.php +++ b/build/complete.php @@ -5,67 +5,39 @@ include $_SERVER['DOCUMENT_ROOT'].'/config.php'; try{ - if($THEWIKI_NOW_NAMESPACE==5||$THEWIKI_NOW_NAMESPACE==10||$THEWIKI_NOW_NAMESPACE==11){ - // - } else if($THEWIKI_NOW_NAMESPACE>0&&$settings['docVersion']>=200302){ - $settings['docVersion'] = 200302; - } - if($THEWIKI_NOW_NAMESPACE==2||$THEWIKI_NOW_NAMESPACE==3||$THEWIKI_NOW_NAMESPACE==4){ - if($settings['docVersion']!='180925'&&$settings['docVersion']>=180326){ - $settings['docVersion'] = 170327; + if($THEWIKI_NOW_NAMESPACE==2){ + while(substr($THEWIKI_NOW_TITLE_REAL, 0, 1)==" "){ + $THEWIKI_NOW_TITLE_REAL = substr($THEWIKI_NOW_TITLE_REAL, 1); } - } else { - if($settings['docVersion']=='180925'&&!empty($THEWIKI_NOW_NAMESPACE_FAKE)){ - $THEWIKI_NOW_NAMESPACE = $THEWIKI_NOW_NAMESPACE_FAKE; + $query = new MongoDB\Driver\Query(array('title' => array('$regex'=>"^분류:".str_replace(array("(", ")"), array("\\(", "\\)"), $THEWIKI_NOW_TITLE_REAL))), array('limit' => 10 )); + $arr = $mongo->executeQuery('search.category', $query); + foreach($arr as $doc){ + $data[] = $doc->title; + } + } else if($THEWIKI_NOW_NAMESPACE==3){ + $ext = strtolower(end(explode(".", $THEWIKI_NOW_TITLE_REAL))); + if($ext=="jpg"||$ext=="png"||$ext=="gif"||$ext=="svg"){ + $fileName = bin2hex($THEWIKI_NOW_TITLE_REAL).".".end(explode(".", $THEWIKI_NOW_TITLE_REAL)); + } else { + $fileName = bin2hex($THEWIKI_NOW_TITLE_REAL); + } + while(substr($fileName, 0, 2)=="20"){ + $fileName = substr($fileName, 2); + } + + $query = new MongoDB\Driver\Query(array('title' => array('$regex'=>"^".$fileName)), array('limit' => 10 )); + $arr = $mongo->executeQuery('search.images', $query); + foreach($arr as $doc){ + $data[] = $doc->text; } - } - if(!$mongo){ - $mongo = mongoDBconnect(); - } - - if($settings['docVersion']>=210301){ - $THEWIKI_NOW_NAMESPACE = 0; - } else { - $THEWIKI_NOW_NAMESPACE = (int)$THEWIKI_NOW_NAMESPACE; - } - - if(!empty($THEWIKI_NOW_TITLE_REAL)){ - $query = new MongoDB\Driver\Query(array('namespace' => $THEWIKI_NOW_NAMESPACE, 'title' => array('$regex'=>"^".str_replace(array("(", ")"), array("\\(", "\\)"), $THEWIKI_NOW_TITLE_REAL))), array('limit' => 10 )); } else { - if(!empty($THEWIKI_NOW_TITLE_FULL)){ - $query = new MongoDB\Driver\Query(array('namespace' => $THEWIKI_NOW_NAMESPACE), array('limit' => 10 )); + $query = new MongoDB\Driver\Query(array('namespace' => (int)$THEWIKI_NOW_NAMESPACE, 'title' => array('$regex'=>"^".str_replace(array("(", ")"), array("\\(", "\\)"), $THEWIKI_NOW_TITLE_REAL))), array('limit' => 10 )); + $arr = $mongo->executeQuery('search.db', $query); + if(!empty($THEWIKI_NOW_NAMESPACE_NAME)){ + $THEWIKI_NOW_NAMESPACE_NAME = $THEWIKI_NOW_NAMESPACE_NAME.":"; } - } - $arr = $mongo->executeQuery('thewiki.docData'.$settings['docVersion'], $query); - if(!empty($THEWIKI_NOW_NAMESPACE_NAME)){ - $THEWIKI_NOW_NAMESPACE_NAME = $THEWIKI_NOW_NAMESPACE_NAME.":"; - } - $data = array(); - foreach($arr as $doc){ - $data[] = $THEWIKI_NOW_NAMESPACE_NAME.$doc->title; - } - - if(empty($data)){ - $query = new MongoDB\Driver\Query(array('$text'=>array('$search'=>$THEWIKI_NOW_TITLE_FULL)), array('limit' => 10 )); - $arr = $mongo->executeQuery('thewiki.docData'.$settingsref['docVersion'], $query); foreach($arr as $doc){ - $trigger = false; - if($doc->namespace>0){ - $find = "SELECT * FROM wiki_contents_namespace WHERE code = '$doc->namespace' OR fake = '$doc->namespace'"; - $findres = mysqli_query($wiki_db, $find); - $findarr = mysqli_fetch_array($findres); - - if($findarr){ - $docTitle = $doc->title; - $doc->title = $findarr[3].":".$doc->title; - if($findarr[2]==$doc->namespace){ - if($findarr[4]!=$settings['docVersion']){ - $doc->title = $docTitle; - } - } - } - } - $data[] = $doc->title; + $data[] = $THEWIKI_NOW_NAMESPACE_NAME.$doc->title; } } diff --git a/build/raw.php b/build/raw.php index 7ba09cc..8697f0b 100644 --- a/build/raw.php +++ b/build/raw.php @@ -34,7 +34,11 @@ } else if($api_result->reason=='empty document'){ $api_result->data = ''; } else if($api_result->reason=='reversion error'){ - $api_result->data = ''; + if($api_result->isDump){ + die(''); + } else { + $api_result->data = ''; + } } else { die(''); } diff --git a/index.php b/index.php index 2f14fe3..b29b510 100644 --- a/index.php +++ b/index.php @@ -27,19 +27,15 @@ $denyLists[] = getdenyLists('ip'); } if(!empty($_GET['settings'])){ + $T_SERVER['HTTP_CF_CONNECTING_IP'] = false; + if(isLogin($_SESSION)['return']){ + $T_SERVER['HTTP_CF_CONNECTING_IP'] = $_SERVER['HTTP_CF_CONNECTING_IP']; + $_SERVER['HTTP_CF_CONNECTING_IP'] = isLogin($_SESSION)['id']; + } $THEWIKI_NOW_TITLE_FULL = $_SERVER['HTTP_CF_CONNECTING_IP']." 개인 설정"; $THEWIKI_NOW_TITLE_REAL = "!MyPage"; - $settings['enableViewCount'] = false; - $sql = "SELECT * FROM settings WHERE ip = '$_SERVER[HTTP_CF_CONNECTING_IP]'"; + $settings = getWikiSettings('all', $_SERVER['HTTP_CF_CONNECTING_IP']); if(!empty($_GET['autover'])){ - $res = mysqli_query($config_db, $sql); - $cnt = mysqli_num_rows($res); - if(!$cnt){ - $sql = "INSERT INTO settings(`ip`, `docVersion`) VALUES "; - $sql .= "('".$_SERVER['HTTP_CF_CONNECTING_IP']."', '$settingsref[docVersion]')"; - mysqli_query($config_db, $sql); - } - if($_GET['autover']=="180925_alphawiki"){ $docVersion = 180925; } else if(in_array($_GET['autover'], $dumpArray)){ @@ -48,8 +44,7 @@ $docVersion = $settingsref['docVersion']; } - $sql = "UPDATE settings SET docVersion = '$docVersion', enableAds = '1' WHERE ip = '$_SERVER[HTTP_CF_CONNECTING_IP]'"; - mysqli_query($config_db, $sql); + @updateWikiSettings('parser.docVersion', $_SERVER['HTTP_CF_CONNECTING_IP'], $docVersion); if(!empty($_SERVER['HTTP_REFERER'])){ $_SESSION['AUTOVER_APPLY'] = true; @@ -60,95 +55,14 @@ } } if(!empty($_GET['create'])){ - $sql = "SELECT * FROM settings WHERE ip = '$_SERVER[HTTP_CF_CONNECTING_IP]'"; - $res = mysqli_query($config_db, $sql); - $cnt = mysqli_num_rows($res); - if(!$cnt){ - $sql = "INSERT INTO settings(`ip`, `docVersion`) VALUES "; - $sql .= "('".$_SERVER['HTTP_CF_CONNECTING_IP']."', '$settingsref[docVersion]')"; - mysqli_query($config_db, $sql); - } - - die(header("Location: /settings")); + @updateWikiSettings('skin.delete', $_SERVER['HTTP_CF_CONNECTING_IP']); + die("ok"); } if(!empty($_GET['apply'])){ - if($_POST['Notice']=="on"){ - $enableNotice = 1; - } else { - $enableNotice = 0; - } - if($_POST['docSL']=="on"){ - $docStrikeLine = 1; - } else { - $docStrikeLine = 0; - } - if($_POST['imgAL']=="on"){ - $imgAutoLoad = 1; - } else { - $imgAutoLoad = 0; - } - if(in_array($_POST['docVersion'], $dumpArray)){ - $docVersion = $_POST['docVersion']; - } else { - $docVersion = $settingsref['docVersion']; - } - if($_POST['ViewCount']=="on"){ - $enableViewCount = 1; - } else { - $enableViewCount = 0; - } - if($_POST['docSI']=="on"){ - $docShowInclude = 1; - } else { - $docShowInclude = 0; + if($_POST['checkSave']=="1"){ + @updateWikiSettings('skin.all', $_SERVER['HTTP_CF_CONNECTING_IP'], $_POST); } - if($docVersion!=$settingsref['docVersion']){ - $enableAds = 1; - } else { - if($_POST['Ads']=="on"){ - $enableAds = 1; - } else { - $enableAds = 0; - } - } - if($_POST['docF']=="on"){ - $docfold = 1; - } else { - $docfold = 0; - } - if(!$imgAutoLoad||!$docStrikeLine||!$docShowInclude||$docfold){ - $docCache = 0; - } else { - if($_POST['docCA']=="on"){ - $docCache = 1; - } else { - $docCache = 0; - } - } - if($_POST['showSB']=="on"){ - $showSidebar = 1; - } else { - $showSidebar = 0; - } - if($docfold){ - $enablePjax = 0; - } else { - if($_POST['enablepjax']=="on"){ - $enablePjax = 1; - } else { - $enablePjax = 0; - } - } - if($_POST['enableDM']=="forceoff"){ - $enableDarkMode = -1; - } else if($_POST['enableDM']=="forceon"){ - $enableDarkMode = 1; - } else { - $enableDarkMode = 0; - } - - $sql = "UPDATE settings SET docVersion = '$docVersion', docStrikeLine = '$docStrikeLine', imgAutoLoad = '$imgAutoLoad', enableAds = '$enableAds', enableNotice = '$enableNotice', enableViewCount = '$enableViewCount', docShowInclude = '$docShowInclude', docCache = '$docCache', docfold = '$docfold', showSidebar = '$showSidebar', enablePjax = '$enablePjax', enableDarkMode = '$enableDarkMode' WHERE ip = '$_SERVER[HTTP_CF_CONNECTING_IP]'"; - mysqli_query($config_db, $sql); + @updateWikiSettings('wiki.all', $_SERVER['HTTP_CF_CONNECTING_IP'], $_POST); die(header("Location: /settings")); } @@ -228,6 +142,11 @@ } if($THEWIKI_NOW_NAMESPACE==5){ + if($THEWIKI_NOW_TITLE_REAL=="[System]"){ + $forceDocument = '{{{#!html }}}'; + $empty = false; + } + $get_block_arr = getBlockCHK($THEWIKI_NOW_TITLE_REAL); $get_admin = getAdminCHK($THEWIKI_NOW_TITLE_REAL); @@ -246,9 +165,6 @@ if($settings['docCache']||(!$settings['docCache']&&$noredirect)){ $THEWIKI_BTN[] = array('/renew///HERE//', '새로고침'); } - if($contribution!='기여자 정보가 없습니다'){ - $THEWIKI_BTN[] = array('/contribution///HERE//', '기여자 내역'); - } $THEWIKI_BTN[] = array('/backlink///HERE//', '역링크'); } $THEWIKI_BTN[] = array('/history///HERE//', '수정 내역'); @@ -354,7 +270,7 @@ } if(!empty($arr['text'])){ - if(defined("loginUserAdmin")){ + if(defined("loginUserAdmin")||defined("joinBetaParser")){ require_once("/".theMarkBetaPath."/".theMarkBetaName.".php"); } else { require_once($_SERVER['DOCUMENT_ROOT']."/theMark.php"); @@ -465,162 +381,198 @@ $CacheCheck['isExpire'] = 0; $THEWIKI_NOW_NAMESPACE = 10; } else if($THEWIKI_NOW_TITLE_REAL=="!MyPage"){ - echo $blockScript; - if($settings['ip']=="0.0.0.0"){ ?> -

- 설정파일 생성이 필요합니다. -

- - - -
-
-
-
- - -
- -
- - -
- -
- -
- -
+ }); + + +
+
+

스킨 설정


+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
-
- -
- -
+
+ +
+ +
+
- -
- -
- -
+
+ +
+ +
+
- -
- -
- -
+
+ +
- - + +
+ +
Loading...
+
+
+   +
+
+
+ array('$search'=>$THEWIKI_NOW_TITLE_FULL)), array('limit'=>5)); - $arr = $mongo->executeQuery('thewiki.docData'.$settingsref['docVersion'], $query); - $print = array(); - foreach($arr as $doc){ - $trigger = false; - if($doc->namespace==1||$doc->namespace==6){ - continue; - } - if($doc->namespace>0){ - $find = "SELECT * FROM wiki_contents_namespace WHERE code = '$doc->namespace' OR fake = '$doc->namespace'"; - $findres = mysqli_query($wiki_db, $find); - $findarr = mysqli_fetch_array($findres); - - if($findarr){ - $docTitle = $doc->title; - $doc->title = $findarr[3].":".$doc->title; - if($findarr[2]==$doc->namespace){ - if($findarr[4]!=$settings['docVersion']){ - $doc->title = $docTitle; - } - } - } - } - if($doc->title==$THEWIKI_NOW_TITLE_FULL){ - continue; - } - $print[] = $doc->title; - } - } catch (MongoDB\Driver\Exception\Exception $e){ - // - } + $print = randomdocu(5); if(!$trigger&&!empty($print)){ shuffle($print); echo '

관련 문서