예제 #1
0
파일: pen.php 프로젝트: laekov/shiruku
                        $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]])));
            }
        }
    }
}
예제 #2
0
파일: app.php 프로젝트: laekov/shiruku
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'));
    }
}
예제 #3
0
파일: comment.php 프로젝트: laekov/shiruku
    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));
            }
        }
    }
}
예제 #4
0
파일: login.php 프로젝트: laekov/shiruku
} 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])));
    }
}
예제 #5
0
파일: admin.php 프로젝트: laekov/shiruku
                $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);
    }
}