2017-12-16 19:17:29 +00:00
|
|
|
<?php
|
2019-09-28 22:38:39 +00:00
|
|
|
namespace Misuzu;
|
|
|
|
|
2022-02-26 01:27:52 +00:00
|
|
|
use Misuzu\Template;
|
|
|
|
use Index\Http\HttpFx;
|
|
|
|
use Index\Http\HttpRequest;
|
2019-12-13 20:37:17 +00:00
|
|
|
|
2020-05-16 22:35:11 +00:00
|
|
|
require_once __DIR__ . '/../misuzu.php';
|
2018-01-03 21:39:01 +00:00
|
|
|
|
2022-02-26 01:27:52 +00:00
|
|
|
function msz_compat_handler(string $className, string $method) {
|
|
|
|
return function(...$args) use ($className, $method) {
|
|
|
|
$className = "\\Misuzu\\Http\\Handlers\\{$className}Handler";
|
|
|
|
return (new $className)->{$method}(...$args);
|
|
|
|
};
|
|
|
|
}
|
2018-12-31 01:37:47 +00:00
|
|
|
|
2022-02-26 01:27:52 +00:00
|
|
|
function msz_compat_redirect(string $target) {
|
|
|
|
return function($response) use ($target) {
|
|
|
|
$response->redirect($target, true);
|
|
|
|
};
|
2020-05-18 21:27:34 +00:00
|
|
|
}
|
2019-03-02 22:49:10 +00:00
|
|
|
|
2022-02-26 01:27:52 +00:00
|
|
|
$router = new HttpFx;
|
|
|
|
$router->use('/', function($response) {
|
|
|
|
$response->setPoweredBy('Misuzu');
|
|
|
|
});
|
|
|
|
|
|
|
|
$router->addErrorHandler(400, function($response) {
|
2022-02-27 17:17:55 +00:00
|
|
|
$response->setContent(Template::renderRaw('errors.400'));
|
2022-02-26 01:27:52 +00:00
|
|
|
});
|
|
|
|
$router->addErrorHandler(403, function($response) {
|
2022-02-27 17:17:55 +00:00
|
|
|
$response->setContent(Template::renderRaw('errors.403'));
|
2022-02-26 01:27:52 +00:00
|
|
|
});
|
|
|
|
$router->addErrorHandler(404, function($response) {
|
|
|
|
$response->setContent(Template::renderRaw('errors.404'));
|
|
|
|
});
|
|
|
|
$router->addErrorHandler(500, function($response) {
|
|
|
|
$response->setContent(file_get_contents(MSZ_TEMPLATES . '/500.html'));
|
|
|
|
});
|
|
|
|
$router->addErrorHandler(503, function($response) {
|
|
|
|
$response->setContent(file_get_contents(MSZ_TEMPLATES . '/503.html'));
|
|
|
|
});
|
|
|
|
|
|
|
|
$request = HttpRequest::fromRequest();
|
|
|
|
|
|
|
|
if(strpos($request->getPath(), '.php') !== false) {
|
|
|
|
$router->get('/index.php', msz_compat_redirect(url('index')));
|
|
|
|
$router->get('/info.php', msz_compat_redirect(url('info')));
|
|
|
|
$router->get('/settings.php', msz_compat_redirect(url('settings-index')));
|
|
|
|
$router->get('/changelog.php', msz_compat_handler('Changelog', 'legacy'));
|
|
|
|
$router->get('/info.php/:name', msz_compat_handler('Info', 'redir'));
|
|
|
|
$router->get('/auth.php', msz_compat_handler('Auth', 'legacy'));
|
|
|
|
$router->get('/news.php', msz_compat_handler('News', 'legacy'));
|
|
|
|
$router->get('/news.php/rss', msz_compat_handler('News', 'legacy'));
|
|
|
|
$router->get('/news.php/atom', msz_compat_handler('News', 'legacy'));
|
|
|
|
$router->get('/news/index.php', msz_compat_handler('News', 'legacy'));
|
|
|
|
$router->get('/news/category.php', msz_compat_handler('News', 'legacy'));
|
|
|
|
$router->get('/news/post.php', msz_compat_handler('News', 'legacy'));
|
|
|
|
$router->get('/news/feed.php', msz_compat_handler('News', 'legacy'));
|
|
|
|
$router->get('/news/feed.php/rss', msz_compat_handler('News', 'legacy'));
|
|
|
|
$router->get('/news/feed.php/atom', msz_compat_handler('News', 'legacy'));
|
|
|
|
$router->get('/user-assets.php', msz_compat_handler('Assets', 'serveLegacy'));
|
|
|
|
$router->get('/_sockchat.php', msz_compat_handler('SockChat', 'phpFile'));
|
|
|
|
$router->post('/_sockchat.php', msz_compat_handler('SockChat', 'phpFile'));
|
|
|
|
} else {
|
|
|
|
$router->get('/', msz_compat_handler('Home', 'index'));
|
|
|
|
|
|
|
|
$router->get('/assets/:filename', msz_compat_handler('Assets', 'serveComponent'));
|
|
|
|
$router->get('/assets/avatar/:filename', msz_compat_handler('Assets', 'serveAvatar'));
|
|
|
|
$router->get('/assets/profile-background/:filename', msz_compat_handler('Assets', 'serveProfileBackground'));
|
|
|
|
|
|
|
|
$router->get('/info', msz_compat_handler('Info', 'index'));
|
|
|
|
$router->get('/info/:name', msz_compat_handler('Info', 'page'));
|
|
|
|
$router->get('/info/:project/:name', msz_compat_handler('Info', 'page'));
|
|
|
|
|
|
|
|
$router->get('/changelog', msz_compat_handler('Changelog', 'index'));
|
|
|
|
$router->get('/changelog.rss', msz_compat_handler('Changelog', 'feedRss'));
|
|
|
|
$router->get('/changelog.atom', msz_compat_handler('Changelog', 'feedAtom'));
|
|
|
|
$router->get('/changelog/change/:id', msz_compat_handler('Changelog', 'change'));
|
|
|
|
|
|
|
|
$router->get('/news', msz_compat_handler('News', 'index'));
|
|
|
|
$router->get('/news.rss', msz_compat_handler('News', 'feedIndexRss'));
|
|
|
|
$router->get('/news.atom', msz_compat_handler('News', 'feedIndexAtom'));
|
|
|
|
$router->get('/news/:category', msz_compat_handler('News', 'viewCategory'));
|
|
|
|
$router->get('/news/post/:id', msz_compat_handler('News', 'viewPost'));
|
|
|
|
|
|
|
|
$router->get('/forum/mark-as-read', msz_compat_handler('Forum', 'markAsReadGET'));
|
|
|
|
$router->post('/forum/mark-as-read', msz_compat_handler('Forum', 'markAsReadPOST'));
|
|
|
|
|
|
|
|
$router->get('/_sockchat/emotes', msz_compat_handler('SockChat', 'emotes'));
|
|
|
|
$router->get('/_sockchat/login', msz_compat_handler('SockChat', 'login'));
|
|
|
|
$router->get('/_sockchat/resolve', msz_compat_handler('SockChat', 'resolve'));
|
|
|
|
$router->post('/_sockchat/bump', msz_compat_handler('SockChat', 'bump'));
|
|
|
|
$router->post('/_sockchat/verify', msz_compat_handler('SockChat', 'verify'));
|
|
|
|
$router->get('/_sockchat/token', msz_compat_handler('SockChat', 'token'));
|
|
|
|
$router->options('/_sockchat/token', msz_compat_handler('SockChat', 'token'));
|
|
|
|
$router->get('/_sockchat/profile-check', msz_compat_handler('SockChat', 'profileCheck'));
|
|
|
|
$router->options('/_sockchat/profile-check', msz_compat_handler('SockChat', 'profileCheck'));
|
|
|
|
$router->get('/_sockchat/bans', msz_compat_handler('SockChat', 'bans'));
|
|
|
|
$router->get('/_sockchat/bans/check', msz_compat_handler('SockChat', 'checkBan'));
|
|
|
|
$router->post('/_sockchat/bans/create', msz_compat_handler('SockChat', 'createBan'));
|
|
|
|
$router->delete('/_sockchat/bans/remove', msz_compat_handler('SockChat', 'removeBan'));
|
|
|
|
}
|
2019-03-02 18:42:50 +00:00
|
|
|
|
2022-02-26 01:27:52 +00:00
|
|
|
$router->dispatch($request);
|