| 
						 | 
						- <?php
 - chdir(dirname(__FILE__).'/..');
 - include('vendor/autoload.php');
 - 
 - register_shutdown_function('shutdown');
 - 
 - // Load config file if present, otherwise use default
 - if(file_exists(dirname(__FILE__).'/../config.php')) {
 -   require dirname(__FILE__).'/../config.php';
 - } else {
 -   class Config {
 -     public static $cache = false;
 -     public static $admins = [];
 -     public static $base = '';
 -   }
 - }
 - 
 - use Symfony\Component\HttpFoundation\Request;
 - use Symfony\Component\HttpFoundation\Response;
 - $router = new League\Route\RouteCollection;
 - $templates = new League\Plates\Engine(dirname(__FILE__).'/../views');
 - 
 - $router->addRoute('GET', '/', 'Main::index');
 - $router->addRoute('GET', '/parse', 'Parse::parse');
 - $router->addRoute('POST', '/parse', 'Parse::parse');
 - $router->addRoute('POST', '/token', 'Token::token');
 - 
 - $router->addRoute('GET', '/feeds', 'Feeds::find');
 - $router->addRoute('POST', '/feeds', 'Feeds::find');
 - 
 - $router->addRoute('GET', '/rels', 'Rels::fetch');
 - 
 - $router->addRoute('GET', '/cert', 'Certbot::index');
 - $router->addRoute('GET', '/cert/auth', 'Certbot::start_auth');
 - $router->addRoute('GET', '/cert/logout', 'Certbot::logout');
 - $router->addRoute('GET', '/cert/redirect', 'Certbot::redirect');
 - $router->addRoute('POST', '/cert/save-challenge', 'Certbot::save_challenge');
 - $router->addRoute('GET', '/.well-known/acme-challenge/{token}', 'Certbot::challenge');
 - 
 - $dispatcher = $router->getDispatcher();
 - $request = Request::createFromGlobals();
 - 
 - try {
 -   $response = $dispatcher->dispatch($request->getMethod(), $request->getPathInfo());
 -   $response->send();
 - } catch(League\Route\Http\Exception\NotFoundException $e) {
 -   $response = new Response;
 -   $response->setStatusCode(404);
 -   $response->setContent("Not Found\n");
 -   $response->send();
 - } catch(League\Route\Http\Exception\MethodNotAllowedException $e) {
 -   $response = new Response;
 -   $response->setStatusCode(405);
 -   $response->setContent("Method not allowed\n");
 -   $response->send();
 - }
 - 
 - function shutdown() {
 -   $error = error_get_last();
 -   if($error['type'] === E_ERROR) {
 -     header('HTTP/1.1 500 Server Error');
 -     header('X-PHP-Error-Type: '.$error['type']);
 -     header('X-PHP-Error-Message: '.$error['message']);
 -     header('Content-Type: application/json');
 -     echo json_encode([
 -       'error' => 'internal_error',
 -       'error_code' => 500,
 -       'error_description' => $error['message'],
 -       'debug' => 'Please file an issue with any information you have about what caused this error: https://github.com/aaronpk/XRay/issues'
 -     ]);
 -     die();
 -   }
 - }
 
 
  |