Большое обновление и рефакторинг

- улучшен и нарощен парсинг плейлистов
- упрощена конфигурация
- название плейлиста в заголовке страницы подробностей
- fuzzy-поиск каналов на странице подробностей
- эскизы логотипов на странице подробностей
- бейдж статуса плейлиста на главной теперь перед названием
- удалены laravel-завивимости
- какие-нибудь мелочи, которые забыл упомянуть
This commit is contained in:
2024-09-23 13:05:01 +08:00
parent aff93aaf78
commit 24636837cc
22 changed files with 557 additions and 739 deletions

View File

@@ -3,28 +3,20 @@
declare(strict_types=1);
return [
'flight' => [
// https://flightphp.com/learn#configuration
'base_url' => env('APP_URL', 'http://localhost:8080'),
'case_sensitive' => bool(env('FLIGHT_CASE_SENSITIVE', false)),
'handle_errors' => bool(env('FLIGHT_HANDLE_ERRORS', true)),
'log_errors' => bool(env('FLIGHT_LOG_ERRORS', true)),
'views' => [
'path' => views_path(),
'extension' => '.twig',
],
],
'twig' => [
'cache' => bool(env('TWIG_CACHE', true)) ? cache_path() . '/views' : false,
'debug' => bool(env('TWIG_DEBUG', false)),
],
'app' => [
'title' => env('APP_TITLE', 'IPTV Playlists'),
'pls_encodings' => [
'UTF-8',
'CP1251',
// 'CP866',
// 'ISO-8859-5',
],
// https://flightphp.com/learn#configuration
'flight.base_url' => env('APP_URL', 'http://localhost:8080'),
'flight.case_sensitive' => bool(env('FLIGHT_CASE_SENSITIVE', false)),
'flight.handle_errors' => bool(env('FLIGHT_HANDLE_ERRORS', true)),
'flight.log_errors' => bool(env('FLIGHT_LOG_ERRORS', true)),
'flight.views.path' => views_path(),
'flight.views.extension' => '.twig',
'twig.cache' => bool(env('TWIG_CACHE', true)) ? cache_path() . '/views' : false,
'twig.debug' => bool(env('TWIG_DEBUG', false)),
'app.title' => env('APP_TITLE', 'IPTV Playlists'),
'app.pls_encodings' => [
'UTF-8',
'CP1251',
// 'CP866',
// 'ISO-8859-5',
],
];

View File

@@ -6,11 +6,11 @@ use App\Controllers\HomeController;
use App\Controllers\PlaylistController;
return [
'GET /' => (new HomeController())->index(...),
'GET /page/@page:[0-9]+' => (new HomeController())->index(...),
'GET /faq' => (new HomeController())->faq(...),
'GET /@id:[a-zA-Z0-9_-]+' => (new PlaylistController())->download(...),
'GET /?[a-zA-Z0-9_-]+' => (new PlaylistController())->download(...),
'GET /@id:[a-zA-Z0-9_-]+/details' => (new PlaylistController())->details(...),
'GET /@id:[a-zA-Z0-9_-]+/json' => (new PlaylistController())->json(...),
'GET /' => [HomeController::class, 'index'],
'GET /page/@page:[0-9]+' => [HomeController::class, 'index'],
'GET /faq' => [HomeController::class, 'faq'],
'GET /@id:[a-zA-Z0-9_-]+' => [PlaylistController::class, 'download'],
'GET /?[a-zA-Z0-9_-]+' => [PlaylistController::class, 'download'],
'GET /@id:[a-zA-Z0-9_-]+/details' => [PlaylistController::class, 'details'],
'GET /@id:[a-zA-Z0-9_-]+/json' => [PlaylistController::class, 'json'],
];