Skip to content
Snippets Groups Projects
index.php 1.3 KiB
Newer Older
Andrew Dolgov's avatar
Andrew Dolgov committed
<?php
	error_reporting(E_ERROR | E_PARSE);

	set_include_path(__DIR__ . PATH_SEPARATOR .
		dirname(__DIR__) . PATH_SEPARATOR .
		dirname(__DIR__) . "/include" . PATH_SEPARATOR .
  		get_include_path());
Andrew Dolgov's avatar
Andrew Dolgov committed

	chdir("..");
Andrew Dolgov's avatar
Andrew Dolgov committed

	require_once "autoload.php";
	require_once "sessions.php";
	ini_set('session.use_cookies', "0");
	ini_set("session.gc_maxlifetime", "86400");
	$_REQUEST = json_decode((string)file_get_contents("php://input"), true);
	if (!empty($_REQUEST["sid"])) {
		session_id($_REQUEST["sid"]);
	if (!init_plugins()) return;
	if (!empty($_SESSION["uid"])) {
wn_'s avatar
wn_ committed
		if (!Sessions::validate_session()) {
			header("Content-Type: text/json");

			print json_encode([
						"seq" => -1,
						"status" => API::STATUS_ERR,
						"content" => [ "error" => API::E_NOT_LOGGED_IN ]
					]);
		UserHelper::load_user_plugins($_SESSION["uid"]);
	$method = strtolower($_REQUEST["op"] ?? "");
	$handler = new API($_REQUEST);
Andrew Dolgov's avatar
Andrew Dolgov committed
	if ($handler->before($method)) {
		if ($method && method_exists($handler, $method)) {
			$handler->$method();
		} else /* if (method_exists($handler, 'index')) */ {
Andrew Dolgov's avatar
Andrew Dolgov committed
			$handler->index($method);
		}
		$handler->after();
	header("Api-Content-Length: " . ob_get_length());

	ob_end_flush();