Files
web/config/routes.php

85 lines
2.3 KiB
PHP

<?php
/*
* Copyright (c) 2025, Антон Аксенов
* This file is part of iptv.axenov.dev web interface
* MIT License: https://git.axenov.dev/IPTV/web/src/branch/master/LICENSE
*/
use App\Controllers\ApiController;
use App\Controllers\BasicController;
use App\Controllers\BotController;
use App\Controllers\WebController;
return [
/*
|--------------------------------------------------------------------------
| Web routes
|--------------------------------------------------------------------------
*/
[
'method' => ['GET', 'POST'],
'path' => '/bot/webhook',
'handler' => [BotController::class, 'webhook'],
'name' => 'bot::webhook',
],
[
'method' => ['GET', 'POST'],
'path' => '/bot/update',
'handler' => [BotController::class, 'update'],
'name' => 'bot::update',
],
[
'method' => 'GET',
'path' => '/[page/{page:[0-9]+}]',
'handler' => [WebController::class, 'home'],
'name' => 'home',
],
[
'method' => 'GET',
'path' => '/{code:[0-9a-zA-Z]+}[.m3u[8]]',
'handler' => [WebController::class, 'redirect'],
'name' => 'redirect',
],
[
'method' => 'GET',
'path' => '/{code:[0-9a-zA-Z]+}/details',
'handler' => [WebController::class, 'details'],
'name' => 'details',
],
/*
|--------------------------------------------------------------------------
| API routes
|--------------------------------------------------------------------------
*/
[
'method' => 'GET',
'path' => '/api/playlists/{code:[0-9a-zA-Z]+}',
'handler' => [ApiController::class, 'getOne'],
'name' => 'api::getOne',
],
[
'method' => 'GET',
'path' => '/api/playlists/{code:[0-9a-zA-Z]+}/qrcode',
'handler' => [ApiController::class, 'makeQrCode'],
'name' => 'api::makeQrCode',
],
/*
|--------------------------------------------------------------------------
| Other routes
|--------------------------------------------------------------------------
*/
[
'method' => '*',
'path' => '/{path:.+}',
'handler' => [BasicController::class, 'notFound'],
'name' => 'not-found',
],
];