chdir('..'); require_once 'vendor/autoload.php'; require_once 'helpers/mods.php'; require_once 'data/config.php'; $klein = new \Klein\Klein(); /* * Attach the layout to the site and generate/check for cached mod list data. * TODO: incl. manual settings for no longer supported */ $klein->respond(function ($request, $response, $service, $app) use($klein) { $klein->onError(function ($klein, $err_msg) { $klein->service()->flash($err_msg); if ($err_msg === 'robot') { //TODO: Log and blacklist spambot IPs } if ($err_msg === 'submission') { $klein->response()->redirect('/submit/incomplete'); } if ($err_msg !== 'api' && $err_msg !== 'submission') { $klein->service()->back(); } }); $modlist_mtime = filemtime('data/modlist.json'); $modlist_fsize = filesize('data/modlist.json'); $modlist_cache = "data/cache/{$modlist_mtime}-{$modlist_fsize}.json"; if (!file_exists($modlist_cache)) { //Clear cache folder $obsolete = glob('data/cache/*'); array_map('unlink', $obsolete); //Start saving new cache $mod_list = json_decode(file_get_contents('data/modlist.json'), 1); $versions = array();
}); $router->get('/user/[i:id]', function ($request, $response, $service, $app) { $exists = $app->DB()->userExists($request->id); if (!$exists) { throw new Klein\Exceptions\HttpException('User not found', 404); } $squeaks = $app->DB()->getSqueaksForUser($request->param('id')); $service->sidebar_data = $app->DB()->getUserSidebar($request->param('id')); $service->render($service->views_dir . 'user.php', ['squeaks' => $squeaks]); }); $router->get('/follow/[i:user]', function ($request, $response, $service, $app) { if (!isset($service->current_user)) { $response->redirect('/login')->send(); } $app->DB()->followUser($service->current_user, $request->param('user')); $service->back(); }); $router->get('/unfollow/[i:user]', function ($request, $response, $service, $app) { if (!isset($service->current_user)) { $response->redirect('/login')->send(); } $app->DB()->unfollowUser($service->current_user, $request->param('user')); $service->back(); }); $router->onHttpError(function ($status, $router, $routes, $params, $exception) { throw $exception; }); $router->onError(function ($router, $message, $type, $exception) { throw $exception; }); $router->dispatch();