misuzu/public/index.php

106 lines
5.2 KiB
PHP
Raw Normal View History

<?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
require_once __DIR__ . '/../misuzu.php';
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
}
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);