$prev = $content; } if ($content->priority > $config->priority && $content->priority < $succ->priority) { $succ = $content; } } srkSend((object) array('prev' => $prev->penId, 'succ' => $succ->penId)); } } } elseif ($srkEnv->reqURL[2] == 'like' && $srkEnv->reqMethod == 'POST') { $like = new Like(); if ($srkEnv->reqURLLength == 4) { $penId = $srkEnv->reqURL[4]; $like->load($srkEnv->penPath . '/' . $penId); } elseif ($srkEnv->reqURLLength == 5) { $penId = $srkEnv->reqURL[4]; $commentId = $srkEnv->reqURL[5]; $like->load($srkEnv->penPath . '/' . $penId . '/comment/' . $commentId); } if ($srkEnv->reqURL[3] == 'query') { srkSend($like->query()); } elseif (isset(Like::$actionMap[$srkEnv->reqURL[3]])) { $userId = $_SESSION['userId']; if (!$userId) { srkSend((object) array('error' => 'login')); } else { srkSend((object) array('error' => $like->click($userId, Like::$actionMap[$srkEnv->reqURL[3]]))); } } } }
if ($srkEnv->uiType == '/ban') { require_once $srkEnv->appPath . '/modules/render.php'; srkRender('home', array()); return; } // load content profiles require_once './config/content.php'; // start session session_start(); // decide which route to use if ($srkEnv->reqURLLength == 0 || $srkEnv->reqURLLength == 1 && $srkEnv->reqURL[1] == 'home') { // render homepage require_once $srkEnv->appPath . '/routes/home.php'; } else { $routeList = array('list', 'view', 'pen', 'comment', 'resources', 'login', 'admin'); foreach ($routeList as $route) { if ($srkEnv->reqURL[1] == $route) { require_once $srkEnv->appPath . '/routes/' . $route . '.php'; break; } } } if (!isset($srkEnv->sent)) { require_once $srkEnv->appPath . '/modules/render.php'; if ($srkEnv->reqMethod == 'GET') { require_once $srkEnv->appPath . '/modules/render.php'; srkRender('error', array('error' => array('status' => '404', 'stack' => 'Unused url'))); } else { srkSend((object) array('error' => 'Unused url')); } }
if ($srkEnv->reqURL[2] == 'query' && $srkEnv->reqMethod == 'POST') { if ($srkEnv->reqURLLength == 3 && ($srkEnv->reqURL[3] = 'recent')) { srkSend((object) array('list' => commentLoadRecent(8))); } elseif ($srkEnv->reqURLLength == 4 && ($srkEnv->reqURL[3] = 'pen')) { $penId = $srkEnv->reqURL[4]; $retList = commentLoadAll($penId); srkSend((object) array('list' => $retList)); } elseif ($srkEnv->reqURLLength == 5 && $srkEnv->reqURL[3] == 'content') { $penId = $srkEnv->reqURL[4]; $commentId = $srkEnv->reqURL[5]; $contentFileName = $srkEnv->penPath . '/' . $penId . '/comment/' . $commentId . '/content.html'; srkSend((object) array('content' => commentLoadContent($penId, $commentId), 'commentId' => $commentId)); } } elseif ($srkEnv->reqURLLength == 2 && $srkEnv->reqURL[2] == 'post' && $srkEnv->reqMethod == 'POST') { $user = new UserData(); $user->readUser($_SESSION['userId']); if ($user->status != 'normal') { srkSend((object) array('error' => 'Please log in first')); } else { if ($err = commentPost($user)) { if (is_string($err)) { srkSend((object) array('error' => $err)); } else { srkSend((object) array('error' => "System error")); } } else { srkSend((object) array('error' => false)); } } } }
} elseif ($srkEnv->reqURLLength == 2 && $srkEnv->reqURL[2] == 'github') { require_once $srkEnv->appPath . '/modules/thirdpartylogin/github.php'; $loginRes = GithubLogin::fetchInfo(); if ($loginRes) { srkRender('error', array('error' => array('status' => -1, 'stack' => $loginRes))); } else { header("Location: /"); } } elseif ($srkEnv->reqURLLength >= 2 && $srkEnv->reqURL[2] == 'query') { if ($srkEnv->reqURLLength == 3 && $srkEnv->reqURL[3] == 'whoami') { $userId = $_SESSION['userId']; if (!isset($userId)) { srkSend((object) array('error' => 'not logged in')); } else { srkSend((object) array('userId' => $userId)); } } elseif ($srkEnv->reqURLLength == 4 && $srkEnv->reqURL[4] == 'avatarurl') { $user = new UserData(); $user->readUser($srkEnv->reqURL[3]); if ($user->getField('source') == 'local') { $resURL = 'http://cn.gravatar.com/avatar/' . md5($user->getField('email')) . '?s=100&d=mm&r=g'; } else { $resURL = $user->getField('avatarURL'); } srkSend((object) array('url' => $resURL)); } elseif ($srkEnv->reqURLLength == 4) { $user = new UserData(); $user->readUser($srkEnv->reqURL[3]); srkSend((object) array('data' => $user->getField($srkEnv->reqURL[4]))); } }
$codeFileName = $srkEnv->userPath . '/invite_' . $code . '.json'; takeDownJSON($codeFileName, $defInfo); } } srkSend((object) array('res' => 'Done')); } } elseif ($srkEnv->reqURL[2] == 'file') { if (!in_array('file', $user->getField("accessList"))) { srkSend((object) array('error' => 'Access denied')); } elseif ($srkEnv->reqURLLength == 3 && $srkEnv->reqURL[3] == 'upload') { $fileName = $_POST['fileName']; $fileContent = uploadFileContentDecipher(); if ($fileName && $fileContent) { $writeRes = takeDownString($fileName, $fileContent); srkSend((object) array('error' => $writeRes)); } else { srkSend((object) array('error' => 'Content error')); } } elseif ($srkEnv->reqURLLength == 3 && $srkEnv->reqURL[3] == 'hash') { $fileName = $_POST['fileName']; if ($fileName && is_file($fileName)) { srkSend((object) array('md5' => md5_file($fileName))); } elseif ($fileName && !is_file($fileName)) { srkSend((object) array('md5' => '')); } else { srkSend((object) array('error' => 'File error')); } } elseif ($srkEnv->reqURLLength == 3 && $srkEnv->reqURL[3] == 'log') { srkStream($srkEnv->logFileName); } }