diff --git a/src/autoload.php b/src/autoload.php index 885d4754..56a6557b 100644 --- a/src/autoload.php +++ b/src/autoload.php @@ -23,6 +23,12 @@ * This loader is designed for projects without Composer or namespaces. * * @package XC_VM + * + * @package XC_VM + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class XC_Autoloader { diff --git a/src/bootstrap.php b/src/bootstrap.php index 819cb912..310090e0 100644 --- a/src/bootstrap.php +++ b/src/bootstrap.php @@ -45,6 +45,12 @@ * // Constants only (no DB): * require_once '/home/xc_vm/bootstrap.php'; * XC_Bootstrap::boot(XC_Bootstrap::CONTEXT_MINIMAL); + * + * @package XC_VM + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ declare(strict_types=0); diff --git a/src/cli/CommandInterface.php b/src/cli/CommandInterface.php index 2fa6d793..be1681f1 100644 --- a/src/cli/CommandInterface.php +++ b/src/cli/CommandInterface.php @@ -5,7 +5,14 @@ * * Каждая команда — один класс, реализующий этот интерфейс. * Регистрируется в CommandRegistry по имени (например 'startup', 'cron:servers'). + * + * @package XC_VM_CLI + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + interface CommandInterface { /** diff --git a/src/cli/CommandRegistry.php b/src/cli/CommandRegistry.php index 7e665b0a..7eefe72b 100644 --- a/src/cli/CommandRegistry.php +++ b/src/cli/CommandRegistry.php @@ -9,7 +9,14 @@ * Команды обнаруживаются автоматически: console.php сканирует * cli/Commands/ и cli/CronJobs/ и регистрирует все классы, * реализующие CommandInterface. + * + * @package XC_VM_CLI + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class CommandRegistry { /** @var CommandInterface[] name → command */ diff --git a/src/cli/Commands/ArchiveCommand.php b/src/cli/Commands/ArchiveCommand.php index 3e9fbce2..fcb0ef17 100644 --- a/src/cli/Commands/ArchiveCommand.php +++ b/src/cli/Commands/ArchiveCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ArchiveCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/BalancerCommand.php b/src/cli/Commands/BalancerCommand.php index a0aa1a97..2c29e8a0 100644 --- a/src/cli/Commands/BalancerCommand.php +++ b/src/cli/Commands/BalancerCommand.php @@ -6,7 +6,14 @@ * Запуск: php console.php balancer [http_port] [https_port] [sysctl] [private_ip] [parent_ids_json] * * Вызывается из ServerService::installServer(). + * + * @package XC_VM_CLI_Commands + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class BalancerCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/BinariesCommand.php b/src/cli/Commands/BinariesCommand.php index 0d4eb54d..764fa7b0 100644 --- a/src/cli/Commands/BinariesCommand.php +++ b/src/cli/Commands/BinariesCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class BinariesCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/CacheHandlerCommand.php b/src/cli/Commands/CacheHandlerCommand.php index 49d92225..2aba8067 100644 --- a/src/cli/Commands/CacheHandlerCommand.php +++ b/src/cli/Commands/CacheHandlerCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../DaemonTrait.php'; class CacheHandlerCommand implements CommandInterface { diff --git a/src/cli/Commands/CertbotCommand.php b/src/cli/Commands/CertbotCommand.php index 330c8c33..94b1e1ac 100644 --- a/src/cli/Commands/CertbotCommand.php +++ b/src/cli/Commands/CertbotCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class CertbotCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/CreatedCommand.php b/src/cli/Commands/CreatedCommand.php index d5774243..15d19ee7 100644 --- a/src/cli/Commands/CreatedCommand.php +++ b/src/cli/Commands/CreatedCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class CreatedCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/DelayCommand.php b/src/cli/Commands/DelayCommand.php index d1edac81..e164b375 100644 --- a/src/cli/Commands/DelayCommand.php +++ b/src/cli/Commands/DelayCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class DelayCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/LlodCommand.php b/src/cli/Commands/LlodCommand.php index 88601fe5..8cac6940 100644 --- a/src/cli/Commands/LlodCommand.php +++ b/src/cli/Commands/LlodCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class LlodCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/LoopbackCommand.php b/src/cli/Commands/LoopbackCommand.php index 3c342a10..ca6e105b 100644 --- a/src/cli/Commands/LoopbackCommand.php +++ b/src/cli/Commands/LoopbackCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class LoopbackCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/MigrateCommand.php b/src/cli/Commands/MigrateCommand.php index f5febf5b..b4d42896 100644 --- a/src/cli/Commands/MigrateCommand.php +++ b/src/cli/Commands/MigrateCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class MigrateCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/MonitorCommand.php b/src/cli/Commands/MonitorCommand.php index ee5e6cba..a2e63a00 100644 --- a/src/cli/Commands/MonitorCommand.php +++ b/src/cli/Commands/MonitorCommand.php @@ -8,6 +8,12 @@ * ВНИМАНИЕ: Этот файл содержит goto/label flow-control — следы обфускации. * Планируется рефакторинг в Phase 14 (→ domain/Stream/StreamMonitor.php). * На данном этапе логика перенесена as-is. + * + * @package XC_VM_CLI_Commands + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class MonitorCommand implements CommandInterface { diff --git a/src/cli/Commands/OndemandCommand.php b/src/cli/Commands/OndemandCommand.php index 36aabcbe..2b60371a 100644 --- a/src/cli/Commands/OndemandCommand.php +++ b/src/cli/Commands/OndemandCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class OndemandCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/ProxyCommand.php b/src/cli/Commands/ProxyCommand.php index b4f77bbb..1397226a 100644 --- a/src/cli/Commands/ProxyCommand.php +++ b/src/cli/Commands/ProxyCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ProxyCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/QueueCommand.php b/src/cli/Commands/QueueCommand.php index fc5ba159..440e2fb4 100644 --- a/src/cli/Commands/QueueCommand.php +++ b/src/cli/Commands/QueueCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../DaemonTrait.php'; class QueueCommand implements CommandInterface { diff --git a/src/cli/Commands/RecordCommand.php b/src/cli/Commands/RecordCommand.php index 2a0c0f85..a0f1e54d 100644 --- a/src/cli/Commands/RecordCommand.php +++ b/src/cli/Commands/RecordCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class RecordCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/ScannerCommand.php b/src/cli/Commands/ScannerCommand.php index 59562eff..4478fa94 100644 --- a/src/cli/Commands/ScannerCommand.php +++ b/src/cli/Commands/ScannerCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../DaemonTrait.php'; class ScannerCommand implements CommandInterface { diff --git a/src/cli/Commands/ServiceCommand.php b/src/cli/Commands/ServiceCommand.php index 909fb2cf..adbba28c 100644 --- a/src/cli/Commands/ServiceCommand.php +++ b/src/cli/Commands/ServiceCommand.php @@ -8,7 +8,14 @@ * * Заменяет shell-логику из src/service, оставляя shell-обёртку * для systemd, которая делегирует сюда. + * + * @package XC_VM_CLI_Commands + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ServiceCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/SignalsCommand.php b/src/cli/Commands/SignalsCommand.php index e3c78efc..84ed7790 100644 --- a/src/cli/Commands/SignalsCommand.php +++ b/src/cli/Commands/SignalsCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../DaemonTrait.php'; class SignalsCommand implements CommandInterface { diff --git a/src/cli/Commands/StartupCommand.php b/src/cli/Commands/StartupCommand.php index 4041486f..e6d0d63a 100644 --- a/src/cli/Commands/StartupCommand.php +++ b/src/cli/Commands/StartupCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../DaemonTrait.php'; class StartupCommand implements CommandInterface { diff --git a/src/cli/Commands/StatusCommand.php b/src/cli/Commands/StatusCommand.php index cee909ca..255210e7 100644 --- a/src/cli/Commands/StatusCommand.php +++ b/src/cli/Commands/StatusCommand.php @@ -8,7 +8,14 @@ * * Заменяет src/status. При первом запуске (аргумент "first-run") * пропускает вывод статуса и сразу выполняет миграции/конфигурацию. + * + * @package XC_VM_CLI_Commands + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class StatusCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/ThumbnailCommand.php b/src/cli/Commands/ThumbnailCommand.php index 304e1f74..880bbd81 100644 --- a/src/cli/Commands/ThumbnailCommand.php +++ b/src/cli/Commands/ThumbnailCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ThumbnailCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/ToolsCommand.php b/src/cli/Commands/ToolsCommand.php index eaaf5d6c..3119c2e6 100644 --- a/src/cli/Commands/ToolsCommand.php +++ b/src/cli/Commands/ToolsCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ToolsCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/UpdateCommand.php b/src/cli/Commands/UpdateCommand.php index e1acf605..684dcb60 100644 --- a/src/cli/Commands/UpdateCommand.php +++ b/src/cli/Commands/UpdateCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class UpdateCommand implements CommandInterface { public function getName(): string { diff --git a/src/cli/Commands/WatchdogCommand.php b/src/cli/Commands/WatchdogCommand.php index 3d0c4925..49472e44 100644 --- a/src/cli/Commands/WatchdogCommand.php +++ b/src/cli/Commands/WatchdogCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../DaemonTrait.php'; class WatchdogCommand implements CommandInterface { diff --git a/src/cli/CronJobs/ActivityCronJob.php b/src/cli/CronJobs/ActivityCronJob.php index a0c04f53..2680f5cb 100644 --- a/src/cli/CronJobs/ActivityCronJob.php +++ b/src/cli/CronJobs/ActivityCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class ActivityCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/BackupsCronJob.php b/src/cli/CronJobs/BackupsCronJob.php index 718e557a..abf9e688 100644 --- a/src/cli/CronJobs/BackupsCronJob.php +++ b/src/cli/CronJobs/BackupsCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class BackupsCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/CacheCronJob.php b/src/cli/CronJobs/CacheCronJob.php index 378ee0d8..ed31e64e 100644 --- a/src/cli/CronJobs/CacheCronJob.php +++ b/src/cli/CronJobs/CacheCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class CacheCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/CacheEngineCronJob.php b/src/cli/CronJobs/CacheEngineCronJob.php index 950930e6..48e77ea2 100644 --- a/src/cli/CronJobs/CacheEngineCronJob.php +++ b/src/cli/CronJobs/CacheEngineCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class CacheEngineCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/CertbotCronJob.php b/src/cli/CronJobs/CertbotCronJob.php index 65237bf0..3996ecf7 100644 --- a/src/cli/CronJobs/CertbotCronJob.php +++ b/src/cli/CronJobs/CertbotCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class CertbotCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/CleanupCronJob.php b/src/cli/CronJobs/CleanupCronJob.php index 92a9d6a9..a2cfc3f4 100644 --- a/src/cli/CronJobs/CleanupCronJob.php +++ b/src/cli/CronJobs/CleanupCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class CleanupCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/EpgCronJob.php b/src/cli/CronJobs/EpgCronJob.php index 58487256..9b1262f8 100644 --- a/src/cli/CronJobs/EpgCronJob.php +++ b/src/cli/CronJobs/EpgCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class EpgCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/ErrorsCronJob.php b/src/cli/CronJobs/ErrorsCronJob.php index 5bea8716..45fc50d4 100644 --- a/src/cli/CronJobs/ErrorsCronJob.php +++ b/src/cli/CronJobs/ErrorsCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class ErrorsCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/LinesLogsCronJob.php b/src/cli/CronJobs/LinesLogsCronJob.php index 5bed2b4f..41e8249c 100644 --- a/src/cli/CronJobs/LinesLogsCronJob.php +++ b/src/cli/CronJobs/LinesLogsCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class LinesLogsCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/ProvidersCronJob.php b/src/cli/CronJobs/ProvidersCronJob.php index aeb6a563..727e37e2 100644 --- a/src/cli/CronJobs/ProvidersCronJob.php +++ b/src/cli/CronJobs/ProvidersCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class ProvidersCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/RootMysqlCronJob.php b/src/cli/CronJobs/RootMysqlCronJob.php index 9a6b11cd..88a06ac6 100644 --- a/src/cli/CronJobs/RootMysqlCronJob.php +++ b/src/cli/CronJobs/RootMysqlCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class RootMysqlCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/RootSignalsCronJob.php b/src/cli/CronJobs/RootSignalsCronJob.php index d032578e..0bf69c13 100644 --- a/src/cli/CronJobs/RootSignalsCronJob.php +++ b/src/cli/CronJobs/RootSignalsCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class RootSignalsCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/SeriesCronJob.php b/src/cli/CronJobs/SeriesCronJob.php index 7b5e13c1..d387b6fb 100644 --- a/src/cli/CronJobs/SeriesCronJob.php +++ b/src/cli/CronJobs/SeriesCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class SeriesCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/ServersCronJob.php b/src/cli/CronJobs/ServersCronJob.php index 2b32beb9..582768a0 100644 --- a/src/cli/CronJobs/ServersCronJob.php +++ b/src/cli/CronJobs/ServersCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class ServersCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/StatsCronJob.php b/src/cli/CronJobs/StatsCronJob.php index 030813c1..13aac71c 100644 --- a/src/cli/CronJobs/StatsCronJob.php +++ b/src/cli/CronJobs/StatsCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class StatsCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/StreamsCronJob.php b/src/cli/CronJobs/StreamsCronJob.php index 8f86f943..83e32949 100644 --- a/src/cli/CronJobs/StreamsCronJob.php +++ b/src/cli/CronJobs/StreamsCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class StreamsCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/StreamsLogsCronJob.php b/src/cli/CronJobs/StreamsLogsCronJob.php index 9a8ceff9..20471075 100644 --- a/src/cli/CronJobs/StreamsLogsCronJob.php +++ b/src/cli/CronJobs/StreamsLogsCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class StreamsLogsCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/TmpCronJob.php b/src/cli/CronJobs/TmpCronJob.php index fe05a4d6..b13ed663 100644 --- a/src/cli/CronJobs/TmpCronJob.php +++ b/src/cli/CronJobs/TmpCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class TmpCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/UpdateCronJob.php b/src/cli/CronJobs/UpdateCronJob.php index 353116bb..b11384a3 100644 --- a/src/cli/CronJobs/UpdateCronJob.php +++ b/src/cli/CronJobs/UpdateCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class UpdateCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/UsersCronJob.php b/src/cli/CronJobs/UsersCronJob.php index 6fd71545..e53476a8 100644 --- a/src/cli/CronJobs/UsersCronJob.php +++ b/src/cli/CronJobs/UsersCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class UsersCronJob implements CommandInterface { diff --git a/src/cli/CronJobs/VodCronJob.php b/src/cli/CronJobs/VodCronJob.php index 82a8bc87..a73f8421 100644 --- a/src/cli/CronJobs/VodCronJob.php +++ b/src/cli/CronJobs/VodCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once __DIR__ . '/../CronTrait.php'; class VodCronJob implements CommandInterface { diff --git a/src/cli/CronTrait.php b/src/cli/CronTrait.php index 20460195..25544aa1 100644 --- a/src/cli/CronTrait.php +++ b/src/cli/CronTrait.php @@ -5,7 +5,14 @@ * * Выносит повторяющийся boilerplate: проверка пользователя, cron lock, * shutdown handler (закрытие БД + удаление lock-файла). + * + * @package XC_VM_CLI + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + trait CronTrait { /** @var string|null Путь к lock-файлу */ diff --git a/src/cli/DaemonTrait.php b/src/cli/DaemonTrait.php index 0bd7af86..63454f24 100644 --- a/src/cli/DaemonTrait.php +++ b/src/cli/DaemonTrait.php @@ -5,7 +5,14 @@ * * Выносит повторяющийся boilerplate: проверка пользователя, убийство предыдущих * инстансов, обнаружение изменений файла, авторестарт через console.php. + * + * @package XC_VM_CLI + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + trait DaemonTrait { /** @var string MD5 файла команды при запуске */ diff --git a/src/cli/migration_logic.php b/src/cli/migration_logic.php index f0068625..5a745ca5 100644 --- a/src/cli/migration_logic.php +++ b/src/cli/migration_logic.php @@ -1,4 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + // Migration logic — loaded from MigrateCommand // Requires admin.php already loaded, $db available set_time_limit(0); diff --git a/src/config/modules.php b/src/config/modules.php index fd634dff..79703784 100644 --- a/src/config/modules.php +++ b/src/config/modules.php @@ -20,6 +20,12 @@ * * @see ModuleInterface * @see ModuleLoader + * + * @package XC_VM_Config + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ return [ diff --git a/src/console.php b/src/console.php index 5c104391..72217ae0 100644 --- a/src/console.php +++ b/src/console.php @@ -15,6 +15,12 @@ * * Команды регистрируются ниже явно — добавьте свою команду в секцию * "Register commands" после создания класса, реализующего CommandInterface. + * + * @package XC_VM + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ // ─── Guard: CLI only ───────────────────────────────────────────── diff --git a/src/core/Auth/Authenticator.php b/src/core/Auth/Authenticator.php index cd85cd3b..1ed1cc44 100644 --- a/src/core/Auth/Authenticator.php +++ b/src/core/Auth/Authenticator.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class Authenticator { public static function login($rData, $rBypassRecaptcha = false) { global $db, $rSettings; diff --git a/src/core/Auth/Authorization.php b/src/core/Auth/Authorization.php index 8d29d388..680aada9 100644 --- a/src/core/Auth/Authorization.php +++ b/src/core/Auth/Authorization.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class Authorization { public static function hasResellerPermissions($rType) { global $rPermissions; diff --git a/src/core/Auth/BruteforceGuard.php b/src/core/Auth/BruteforceGuard.php index 94b7ddea..cc1001d6 100644 --- a/src/core/Auth/BruteforceGuard.php +++ b/src/core/Auth/BruteforceGuard.php @@ -5,6 +5,12 @@ * * Centralized rate-limiting and brute-force protection. * (identical logic, unified here). + * + * @package XC_VM_Core_Auth + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class BruteforceGuard { diff --git a/src/core/Auth/SessionManager.php b/src/core/Auth/SessionManager.php index c1879ec2..e1c67a91 100644 --- a/src/core/Auth/SessionManager.php +++ b/src/core/Auth/SessionManager.php @@ -36,6 +36,12 @@ * * @see admin/session.php * @see reseller/session.php + * + * @package XC_VM_Core_Auth + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class SessionManager { diff --git a/src/core/Backup/BackupService.php b/src/core/Backup/BackupService.php index e3ca348e..dd8b9530 100644 --- a/src/core/Backup/BackupService.php +++ b/src/core/Backup/BackupService.php @@ -5,7 +5,14 @@ * * All methods accept explicit dependencies (config array, db object) * instead of reading CoreUtilities static properties. + * + * @package XC_VM_Core_Backup + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class BackupService { /** diff --git a/src/core/Cache/CacheInterface.php b/src/core/Cache/CacheInterface.php index f828b5ca..ef7b7e4c 100644 --- a/src/core/Cache/CacheInterface.php +++ b/src/core/Cache/CacheInterface.php @@ -31,6 +31,12 @@ * CoreUtilities::setCache() and CoreUtilities::getCache() will * delegate to FileCache. No changes needed in existing code. * New code should use the CacheInterface via ServiceContainer. + * + * @package XC_VM_Core_Cache + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ interface CacheInterface { diff --git a/src/core/Cache/FileCache.php b/src/core/Cache/FileCache.php index 1f4f7b80..2c6fc4be 100644 --- a/src/core/Cache/FileCache.php +++ b/src/core/Cache/FileCache.php @@ -23,6 +23,12 @@ * }); * * @see CacheInterface + * + * @package XC_VM_Core_Cache + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class FileCache implements CacheInterface { diff --git a/src/core/Cache/RedisCache.php b/src/core/Cache/RedisCache.php index 3aaa5e8e..2074e573 100644 --- a/src/core/Cache/RedisCache.php +++ b/src/core/Cache/RedisCache.php @@ -28,6 +28,12 @@ * * @see CacheInterface * @see RedisManager::ensureConnected() + * + * @package XC_VM_Core_Cache + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class RedisCache implements CacheInterface { diff --git a/src/core/Config/Binaries.php b/src/core/Config/Binaries.php index ce229820..ec9dbf41 100644 --- a/src/core/Config/Binaries.php +++ b/src/core/Config/Binaries.php @@ -5,6 +5,12 @@ * * FFmpeg, FFprobe, GeoIP, PHP CLI и другие исполняемые файлы. * Зависимость: BIN_PATH должен быть определён (из Paths.php). + * + * @package XC_VM_Core_Config + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ // ── PHP & утилиты ───────────────────────────────────────────── diff --git a/src/core/Config/ConfigLoader.php b/src/core/Config/ConfigLoader.php index 5d965c5a..b0f16ed9 100644 --- a/src/core/Config/ConfigLoader.php +++ b/src/core/Config/ConfigLoader.php @@ -12,6 +12,12 @@ * 'database' — имя базы данных * 'hostname' — хост MySQL * 'port' — порт MySQL + * + * @package XC_VM_Core_Config + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ global $_INFO; diff --git a/src/core/Config/ConfigReader.php b/src/core/Config/ConfigReader.php index 793fa40e..3e829bb7 100644 --- a/src/core/Config/ConfigReader.php +++ b/src/core/Config/ConfigReader.php @@ -4,7 +4,14 @@ * Доступ к config.ini (singleton-кеш) * * Читает и кеширует config.ini один раз за процесс. + * + * @package XC_VM_Core_Config + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ConfigReader { private static $config = null; diff --git a/src/core/Config/DomainResolver.php b/src/core/Config/DomainResolver.php index a03fd106..bda16c75 100644 --- a/src/core/Config/DomainResolver.php +++ b/src/core/Config/DomainResolver.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class DomainResolver { public static function resolve($rServerID, $rForceSSL = false) { global $rServers, $rSettings; diff --git a/src/core/Config/Paths.php b/src/core/Config/Paths.php index b4285d49..1d70e1e0 100644 --- a/src/core/Config/Paths.php +++ b/src/core/Config/Paths.php @@ -12,6 +12,12 @@ * 3. Контент-директории (streams/, epg/, vod/, archive/, ...) * 4. Временные директории (cache/, flood/, logs/, ...) * 5. Веб-ресурсы (images/, enigma2/) + * + * @package XC_VM_Core_Config + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ // ───────────────────────────────────────────────────────────────── diff --git a/src/core/Config/SettingsManager.php b/src/core/Config/SettingsManager.php index c67d611f..ce477882 100644 --- a/src/core/Config/SettingsManager.php +++ b/src/core/Config/SettingsManager.php @@ -4,7 +4,14 @@ * SettingsManager — singleton-хранилище настроек приложения. * * Entry points вызывают set(), потребители — getAll() или get(). + * + * @package XC_VM_Core_Config + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class SettingsManager { /** @var array */ private static $settings = array(); diff --git a/src/core/Config/SettingsRepository.php b/src/core/Config/SettingsRepository.php index 2fd87fa4..79536e75 100644 --- a/src/core/Config/SettingsRepository.php +++ b/src/core/Config/SettingsRepository.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class SettingsRepository { public static function getAll($rForce = false) { global $db; diff --git a/src/core/Container/ServiceContainer.php b/src/core/Container/ServiceContainer.php index da09967e..4ef5dd8e 100644 --- a/src/core/Container/ServiceContainer.php +++ b/src/core/Container/ServiceContainer.php @@ -69,6 +69,12 @@ * }); * } * } + * + * @package XC_VM_Core_Container + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class ServiceContainer { diff --git a/src/core/Database/Database.php b/src/core/Database/Database.php index 17e2ad69..380a3c95 100644 --- a/src/core/Database/Database.php +++ b/src/core/Database/Database.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class Database { public $result = null; public $last_query = null; diff --git a/src/core/Database/DatabaseHandler.php b/src/core/Database/DatabaseHandler.php index 0190b9f7..ea272198 100644 --- a/src/core/Database/DatabaseHandler.php +++ b/src/core/Database/DatabaseHandler.php @@ -59,6 +59,12 @@ * * @see core/Database/Database.php Base PDO wrapper class * @see core/Container/ServiceContainer.php DI container + * + * @package XC_VM_Core_Database + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ require_once __DIR__ . '/Database.php'; diff --git a/src/core/Database/MigrationRunner.php b/src/core/Database/MigrationRunner.php index 2011c9c9..05fdc53b 100644 --- a/src/core/Database/MigrationRunner.php +++ b/src/core/Database/MigrationRunner.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class MigrationRunner { public static function run($db): void { diff --git a/src/core/Diagnostics/DiagnosticsService.php b/src/core/Diagnostics/DiagnosticsService.php index 0079b5d9..38b35a90 100644 --- a/src/core/Diagnostics/DiagnosticsService.php +++ b/src/core/Diagnostics/DiagnosticsService.php @@ -6,7 +6,14 @@ * downloadPanelLogs, submitPanelLogs, getApiIP. * * Panel-log methods accept a $db parameter; other methods are stateless. + * + * @package XC_VM_Core_Diagnostics + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class DiagnosticsService { /** diff --git a/src/core/Error/ErrorCodes.php b/src/core/Error/ErrorCodes.php index a1a38add..bbcd5c50 100644 --- a/src/core/Error/ErrorCodes.php +++ b/src/core/Error/ErrorCodes.php @@ -9,6 +9,12 @@ * Коды добавляются сюда централизованно. * stream/init.php имеет дополнительные коды (CACHE_INCOMPLETE, etc.), * которые при миграции будут перенесены сюда. + * + * @package XC_VM_Core_Error + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ global $rErrorCodes; diff --git a/src/core/Error/ErrorHandler.php b/src/core/Error/ErrorHandler.php index 14847667..8c432a96 100644 --- a/src/core/Error/ErrorHandler.php +++ b/src/core/Error/ErrorHandler.php @@ -13,6 +13,12 @@ * Зависимости: * $rErrorCodes (глобальный массив из ErrorCodes.php) * $rSettings (глобальный массив настроек, загружается позже) + * + * @package XC_VM_Core_Error + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ /** diff --git a/src/core/Events/EventDispatcher.php b/src/core/Events/EventDispatcher.php index 770bd646..3dcba609 100644 --- a/src/core/Events/EventDispatcher.php +++ b/src/core/Events/EventDispatcher.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class EventDispatcher { private static $listeners = array(); diff --git a/src/core/Events/EventInterface.php b/src/core/Events/EventInterface.php index b560c751..533aa49e 100644 --- a/src/core/Events/EventInterface.php +++ b/src/core/Events/EventInterface.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + interface EventInterface { public function getName(); public function getPayload(); diff --git a/src/core/GeoIP/GeoIPService.php b/src/core/GeoIP/GeoIPService.php index 0f3bb2ab..b2c2d25f 100644 --- a/src/core/GeoIP/GeoIPService.php +++ b/src/core/GeoIP/GeoIPService.php @@ -4,7 +4,14 @@ * GeoIPService — GeoIP/ISP lookup и CIDR matching. * * Использует MaxMind GeoLite2 и GeoISP базы с файловым кэшированием. + * + * @package XC_VM_Core_GeoIP + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class GeoIPService { /** diff --git a/src/core/Http/CurlClient.php b/src/core/Http/CurlClient.php index 11e6ef0c..4350bf6d 100644 --- a/src/core/Http/CurlClient.php +++ b/src/core/Http/CurlClient.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class CurlClient { public static function getMultiCURL($rURLs, $callback = null, $rTimeout = 5) { global $rServers; diff --git a/src/core/Http/Request.php b/src/core/Http/Request.php index 867f6dcd..ffd6331d 100644 --- a/src/core/Http/Request.php +++ b/src/core/Http/Request.php @@ -15,6 +15,12 @@ * Request::parseCleanValue($value); * * @see Request::cleanGlobals() + * + * @package XC_VM_Core_Http + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class Request { diff --git a/src/core/Http/RequestGuard.php b/src/core/Http/RequestGuard.php index 20d5d7d8..378be408 100644 --- a/src/core/Http/RequestGuard.php +++ b/src/core/Http/RequestGuard.php @@ -19,6 +19,12 @@ * Заполняет глобальные переменные: * $rSettings — массив настроек панели (из файлового кэша) * $rShowErrors — флаг показа ошибок + * + * @package XC_VM_Core_Http + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ $rShowErrors = false; diff --git a/src/core/Http/RequestManager.php b/src/core/Http/RequestManager.php index 5f769e1a..ca9002dc 100644 --- a/src/core/Http/RequestManager.php +++ b/src/core/Http/RequestManager.php @@ -5,7 +5,14 @@ * * Entry point — LegacyInitializer::initCore() вызывает set(). * Потребители используют getAll() или get(). + * + * @package XC_VM_Core_Http + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class RequestManager { /** @var array */ private static $request = array(); diff --git a/src/core/Http/Response.php b/src/core/Http/Response.php index 2ddca7d8..797a7412 100644 --- a/src/core/Http/Response.php +++ b/src/core/Http/Response.php @@ -25,6 +25,12 @@ * Response::noCache(); * * @see core/Http/Request.php + * + * @package XC_VM_Core_Http + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class Response { diff --git a/src/core/Http/Router.php b/src/core/Http/Router.php index 77f6e3d2..e4e105de 100644 --- a/src/core/Http/Router.php +++ b/src/core/Http/Router.php @@ -58,6 +58,12 @@ * @see core/Http/Request.php * @see core/Http/Response.php * @see ModuleInterface::registerRoutes() + * + * @package XC_VM_Core_Http + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class Router { diff --git a/src/core/Init/LegacyInitializer.php b/src/core/Init/LegacyInitializer.php index d88d34f1..fd7d847b 100644 --- a/src/core/Init/LegacyInitializer.php +++ b/src/core/Init/LegacyInitializer.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class LegacyInitializer { public static function initCore($rUseCache = false) { if (!empty($_GET)) { diff --git a/src/core/Logging/DatabaseLogger.php b/src/core/Logging/DatabaseLogger.php index 7f9dd6c8..643ee61a 100644 --- a/src/core/Logging/DatabaseLogger.php +++ b/src/core/Logging/DatabaseLogger.php @@ -13,6 +13,12 @@ * COUNTRY_DISALLOW, RESTREAM_DETECT, LINE_CREATE_FAIL и т.д. * * @see LoggerInterface + * + * @package XC_VM_Core_Logging + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ require_once __DIR__ . '/LoggerInterface.php'; diff --git a/src/core/Logging/FileLogger.php b/src/core/Logging/FileLogger.php index 51835494..7a5fea72 100644 --- a/src/core/Logging/FileLogger.php +++ b/src/core/Logging/FileLogger.php @@ -14,6 +14,12 @@ * - Игнорируются 'timeout exceeded', 'lock wait timeout', 'duplicate entry' (шумные ошибки MySQL) * * @see LoggerInterface + * + * @package XC_VM_Core_Logging + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ require_once __DIR__ . '/LoggerInterface.php'; diff --git a/src/core/Logging/LoggerInterface.php b/src/core/Logging/LoggerInterface.php index 5caab02b..9a662267 100644 --- a/src/core/Logging/LoggerInterface.php +++ b/src/core/Logging/LoggerInterface.php @@ -8,7 +8,14 @@ * * @see FileLogger Логирование в файл (ошибки PDO, EPG, и т.д.) * @see DatabaseLogger Логирование клиентских запросов стриминга + * + * @package XC_VM_Core_Logging + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + interface LoggerInterface { /** * Записать лог-сообщение. diff --git a/src/core/Module/ModuleInterface.php b/src/core/Module/ModuleInterface.php index 4d43d6cb..b2cf3203 100644 --- a/src/core/Module/ModuleInterface.php +++ b/src/core/Module/ModuleInterface.php @@ -36,6 +36,12 @@ * @see Router::group() * @see ServiceContainer::set() * @see CommandRegistry::register() + * + * @package XC_VM_Core_Module + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ interface ModuleInterface { diff --git a/src/core/Module/ModuleLoader.php b/src/core/Module/ModuleLoader.php index e3b390bd..46410d1e 100644 --- a/src/core/Module/ModuleLoader.php +++ b/src/core/Module/ModuleLoader.php @@ -26,6 +26,12 @@ * $loader->registerAllCommands($registry); * * @see ModuleInterface + * + * @package XC_VM_Core_Module + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class ModuleLoader { diff --git a/src/core/Process/Multithread.php b/src/core/Process/Multithread.php index 143c3383..842571ee 100644 --- a/src/core/Process/Multithread.php +++ b/src/core/Process/Multithread.php @@ -11,6 +11,12 @@ * $output = $mt->run(); * * @see Thread + * + * @package XC_VM_Core_Process + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class Multithread { diff --git a/src/core/Process/ProcessManager.php b/src/core/Process/ProcessManager.php index 66398a21..3a3be18b 100644 --- a/src/core/Process/ProcessManager.php +++ b/src/core/Process/ProcessManager.php @@ -26,6 +26,12 @@ * ProcessManager::acquireCronLock('/tmp/cron_streams.pid', 1800); * // ... do work ... * // Lock file cleaned up automatically on exit + * + * @package XC_VM_Core_Process + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class ProcessManager { diff --git a/src/core/Process/Thread.php b/src/core/Process/Thread.php index 5304cfce..3ce84070 100644 --- a/src/core/Process/Thread.php +++ b/src/core/Process/Thread.php @@ -7,6 +7,12 @@ * Используется совместно с Multithread для параллельного выполнения. * * @see Multithread + * + * @package XC_VM_Core_Process + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class Thread { diff --git a/src/core/Util/Encryption.php b/src/core/Util/Encryption.php index fa6b2aa1..a08b8b2a 100644 --- a/src/core/Util/Encryption.php +++ b/src/core/Util/Encryption.php @@ -7,6 +7,12 @@ * and random string generation. * * @see StreamingUtilities::mc_decrypt() + * + * @package XC_VM_Core_Util + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class Encryption { diff --git a/src/core/Util/GeoIP.php b/src/core/Util/GeoIP.php index 3b9a3b8f..45685cb6 100644 --- a/src/core/Util/GeoIP.php +++ b/src/core/Util/GeoIP.php @@ -12,6 +12,12 @@ * - GEOLITE2_BIN constant — path to GeoLite2-City.mmdb * - CONS_TMP_PATH constant — path for file cache * - MaxMind\Db\Reader class (included in bin/maxmind/) + * + * @package XC_VM_Core_Util + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class GeoIP { diff --git a/src/core/Util/ImageUtils.php b/src/core/Util/ImageUtils.php index 43bc2378..00d7d913 100644 --- a/src/core/Util/ImageUtils.php +++ b/src/core/Util/ImageUtils.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ImageUtils { public static function validateURL($rURL, $rForceProtocol = null) { if (substr($rURL, 0, 2) == 's:') { diff --git a/src/core/Util/NetworkUtils.php b/src/core/Util/NetworkUtils.php index e9e1bca6..f02aa72d 100644 --- a/src/core/Util/NetworkUtils.php +++ b/src/core/Util/NetworkUtils.php @@ -5,6 +5,12 @@ * * IP address operations, CIDR matching, subnet checks, * and user IP detection. + * + * @package XC_VM_Core_Util + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class NetworkUtils { diff --git a/src/core/Util/StreamUtils.php b/src/core/Util/StreamUtils.php index ad85be99..09ed3549 100644 --- a/src/core/Util/StreamUtils.php +++ b/src/core/Util/StreamUtils.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class StreamUtils { public static function fixCookie($rCookie) { $rPath = false; diff --git a/src/core/Util/SystemInfo.php b/src/core/Util/SystemInfo.php index c2406cf7..78cb27a0 100644 --- a/src/core/Util/SystemInfo.php +++ b/src/core/Util/SystemInfo.php @@ -5,6 +5,12 @@ * * Collects server hardware/OS metrics: CPU, memory, disk, network, * GPU, I/O, audio/video devices. + * + * @package XC_VM_Core_Util + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class SystemInfo { diff --git a/src/core/Util/TimeUtils.php b/src/core/Util/TimeUtils.php index fb078605..db3079a9 100644 --- a/src/core/Util/TimeUtils.php +++ b/src/core/Util/TimeUtils.php @@ -4,6 +4,12 @@ * Time Utilities * * Time formatting and conversion helpers. + * + * @package XC_VM_Core_Util + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class TimeUtils { diff --git a/src/core/Validation/InputValidator.php b/src/core/Validation/InputValidator.php index d797fa49..b8ea77c0 100644 --- a/src/core/Validation/InputValidator.php +++ b/src/core/Validation/InputValidator.php @@ -2,7 +2,14 @@ /** * Валидация входных данных для admin API. + * + * @package XC_VM_Core_Validation + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class InputValidator { /** * Проверяет минимальные требования к данным для указанного действия. diff --git a/src/domain/Auth/AuthRepository.php b/src/domain/Auth/AuthRepository.php index 15af3c71..30b87ac0 100644 --- a/src/domain/Auth/AuthRepository.php +++ b/src/domain/Auth/AuthRepository.php @@ -3,7 +3,14 @@ /** * Консолидированный репозиторий аутентификации. * Объединяет: CodeRepository, HMACRepository. + * + * @package XC_VM_Domain_Auth + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class AuthRepository { // ────────────────────────────────────────────── // Из CodeRepository diff --git a/src/domain/Auth/AuthService.php b/src/domain/Auth/AuthService.php index e684848d..866b90bd 100644 --- a/src/domain/Auth/AuthService.php +++ b/src/domain/Auth/AuthService.php @@ -3,7 +3,14 @@ /** * Консолидированный сервис аутентификации. * Объединяет: CodeService, HMACService, HMACValidator. + * + * @package XC_VM_Domain_Auth + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class AuthService { // ────────────────────────────────────────────── // Из CodeService diff --git a/src/domain/Bouquet/BouquetService.php b/src/domain/Bouquet/BouquetService.php index 75cefe2f..fd83f3af 100644 --- a/src/domain/Bouquet/BouquetService.php +++ b/src/domain/Bouquet/BouquetService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class BouquetService { public static function process($rData) { global $db; diff --git a/src/domain/Device/EnigmaService.php b/src/domain/Device/EnigmaService.php index a2f63fd4..8dbfb8df 100644 --- a/src/domain/Device/EnigmaService.php +++ b/src/domain/Device/EnigmaService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class EnigmaService { public static function massDelete($rData) { set_time_limit(0); diff --git a/src/domain/Device/MagService.php b/src/domain/Device/MagService.php index 28250fbf..22fc7390 100644 --- a/src/domain/Device/MagService.php +++ b/src/domain/Device/MagService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class MagService { public static function massDelete($rData) { set_time_limit(0); diff --git a/src/domain/Epg/EPG.php b/src/domain/Epg/EPG.php index 1965cf59..29075770 100644 --- a/src/domain/Epg/EPG.php +++ b/src/domain/Epg/EPG.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class EPG { public $rValid = false; public $rEPGSource; diff --git a/src/domain/Epg/EpgService.php b/src/domain/Epg/EpgService.php index ec381c30..80110391 100644 --- a/src/domain/Epg/EpgService.php +++ b/src/domain/Epg/EpgService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class EpgService { public static function process($rData) { global $db; diff --git a/src/domain/Line/LineRepository.php b/src/domain/Line/LineRepository.php index bdeded39..5a4b517f 100644 --- a/src/domain/Line/LineRepository.php +++ b/src/domain/Line/LineRepository.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class LineRepository { public static function deleteMany($rIDs) { global $db; diff --git a/src/domain/Line/LineService.php b/src/domain/Line/LineService.php index 27e8d6dc..5f679ea4 100644 --- a/src/domain/Line/LineService.php +++ b/src/domain/Line/LineService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class LineService { public static function massDelete($rData) { set_time_limit(0); diff --git a/src/domain/Line/PackageService.php b/src/domain/Line/PackageService.php index c0c2e48c..7de400bd 100644 --- a/src/domain/Line/PackageService.php +++ b/src/domain/Line/PackageService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class PackageService { public static function process($rData) { global $db; diff --git a/src/domain/Security/BlocklistService.php b/src/domain/Security/BlocklistService.php index 5a09ac8f..5446e7c0 100644 --- a/src/domain/Security/BlocklistService.php +++ b/src/domain/Security/BlocklistService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class BlocklistService { public static function blockIP($rData) { global $db; diff --git a/src/domain/Server/ServerRepository.php b/src/domain/Server/ServerRepository.php index c27a94b4..b6fa7140 100644 --- a/src/domain/Server/ServerRepository.php +++ b/src/domain/Server/ServerRepository.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ServerRepository { public static function getAll($rForce = false) { global $db, $rSettings; diff --git a/src/domain/Server/ServerService.php b/src/domain/Server/ServerService.php index 9e7a8cdc..18c30cbc 100644 --- a/src/domain/Server/ServerService.php +++ b/src/domain/Server/ServerService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ServerService { public static function process($rData) { global $db; diff --git a/src/domain/Server/SettingsService.php b/src/domain/Server/SettingsService.php index 7b4713b8..e135e130 100644 --- a/src/domain/Server/SettingsService.php +++ b/src/domain/Server/SettingsService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class SettingsService { public static function edit($rData) { global $db; diff --git a/src/domain/Stream/CategoryService.php b/src/domain/Stream/CategoryService.php index 06d76bb3..100cfb00 100644 --- a/src/domain/Stream/CategoryService.php +++ b/src/domain/Stream/CategoryService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class CategoryService { public static function reorder($rData) { global $db; diff --git a/src/domain/Stream/ChannelService.php b/src/domain/Stream/ChannelService.php index 142c59bd..c1bae188 100644 --- a/src/domain/Stream/ChannelService.php +++ b/src/domain/Stream/ChannelService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ChannelService { public static function process($rData) { global $db, $rSettings; diff --git a/src/domain/Stream/ConnectionTracker.php b/src/domain/Stream/ConnectionTracker.php index 26a80036..44a28eca 100644 --- a/src/domain/Stream/ConnectionTracker.php +++ b/src/domain/Stream/ConnectionTracker.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ConnectionTracker { public static function getCapacity($rProxy = false) { global $rSettings, $rServers, $db; diff --git a/src/domain/Stream/PlaylistGenerator.php b/src/domain/Stream/PlaylistGenerator.php index 606c1a52..f8573607 100644 --- a/src/domain/Stream/PlaylistGenerator.php +++ b/src/domain/Stream/PlaylistGenerator.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class PlaylistGenerator { public static function generate($rUserInfo, $rDeviceKey, $rOutputKey = 'ts', $rTypeKey = null, $rNoCache = false, $rProxy = false) { global $db, $rSettings, $rServers; diff --git a/src/domain/Stream/ProfileService.php b/src/domain/Stream/ProfileService.php index da221d8c..b4c54559 100644 --- a/src/domain/Stream/ProfileService.php +++ b/src/domain/Stream/ProfileService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ProfileService { public static function process($rData) { global $db; diff --git a/src/domain/Stream/ProviderService.php b/src/domain/Stream/ProviderService.php index f720500f..fcb95bf7 100644 --- a/src/domain/Stream/ProviderService.php +++ b/src/domain/Stream/ProviderService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ProviderService { public static function process($rData) { global $db; diff --git a/src/domain/Stream/RadioService.php b/src/domain/Stream/RadioService.php index 6445f112..45849611 100644 --- a/src/domain/Stream/RadioService.php +++ b/src/domain/Stream/RadioService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class RadioService { public static function process($rData) { global $db; diff --git a/src/domain/Stream/StreamConfigRepository.php b/src/domain/Stream/StreamConfigRepository.php index 199c1e09..adea8d12 100644 --- a/src/domain/Stream/StreamConfigRepository.php +++ b/src/domain/Stream/StreamConfigRepository.php @@ -2,7 +2,14 @@ /** * StreamConfigRepository — аргументы потоков и профили транскодирования. + * + * @package XC_VM_Domain_Stream + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class StreamConfigRepository { /** * Получить все аргументы потоков (streams_arguments), индексированные по argument_key. diff --git a/src/domain/Stream/StreamProcess.php b/src/domain/Stream/StreamProcess.php index 71987705..2643d918 100644 --- a/src/domain/Stream/StreamProcess.php +++ b/src/domain/Stream/StreamProcess.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class StreamProcess { /** * Write stream action log to file diff --git a/src/domain/Stream/StreamRepository.php b/src/domain/Stream/StreamRepository.php index 4f75c2cb..af92fff5 100644 --- a/src/domain/Stream/StreamRepository.php +++ b/src/domain/Stream/StreamRepository.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class StreamRepository { public static function getErrors($rStreamID, $rAmount = 250) { global $db; diff --git a/src/domain/Stream/StreamService.php b/src/domain/Stream/StreamService.php index 7532aed1..d2518a84 100644 --- a/src/domain/Stream/StreamService.php +++ b/src/domain/Stream/StreamService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class StreamService { public static function process($rData) { global $db, $rSettings; diff --git a/src/domain/Stream/StreamSorter.php b/src/domain/Stream/StreamSorter.php index d6f7ef09..131a4cd0 100644 --- a/src/domain/Stream/StreamSorter.php +++ b/src/domain/Stream/StreamSorter.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class StreamSorter { public static function formatTitle($rTitle, $rYear) { if (is_numeric($rYear) && 1900 <= $rYear && $rYear <= intval(date('Y') + 1)) { diff --git a/src/domain/User/GroupService.php b/src/domain/User/GroupService.php index cb79d443..8f6b1743 100644 --- a/src/domain/User/GroupService.php +++ b/src/domain/User/GroupService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class GroupService { public static function process($rData) { global $db; diff --git a/src/domain/User/UserRepository.php b/src/domain/User/UserRepository.php index 2f1f9b31..150a2e23 100644 --- a/src/domain/User/UserRepository.php +++ b/src/domain/User/UserRepository.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class UserRepository { public static function getAuthUserByCredentials($rUsername, $rPassword) { global $db; diff --git a/src/domain/User/UserService.php b/src/domain/User/UserService.php index 4ed29e15..35bc475b 100644 --- a/src/domain/User/UserService.php +++ b/src/domain/User/UserService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class UserService { public static function massDelete($rData) { set_time_limit(0); diff --git a/src/domain/Vod/EpisodeService.php b/src/domain/Vod/EpisodeService.php index 1873ec33..83b8510e 100644 --- a/src/domain/Vod/EpisodeService.php +++ b/src/domain/Vod/EpisodeService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class EpisodeService { public static function process($rData) { global $db, $rSettings; diff --git a/src/domain/Vod/MovieService.php b/src/domain/Vod/MovieService.php index 2a49dac9..c8bd68cd 100644 --- a/src/domain/Vod/MovieService.php +++ b/src/domain/Vod/MovieService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class MovieService { public static function process($rData) { global $db; diff --git a/src/domain/Vod/SeriesService.php b/src/domain/Vod/SeriesService.php index 5bfde7be..b55e4e50 100644 --- a/src/domain/Vod/SeriesService.php +++ b/src/domain/Vod/SeriesService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class SeriesService { public static function process($rData) { global $db; diff --git a/src/includes/admin.php b/src/includes/admin.php index 98107fe6..ff738cea 100644 --- a/src/includes/admin.php +++ b/src/includes/admin.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + // Импорт глобальных переменных — нужен когда файл включается // из метода контроллера (не из глобального scope). global $db, $rSettings, $rMobile, $rServers, $rProxyServers, $rDetect, diff --git a/src/includes/api/admin/table.php b/src/includes/api/admin/table.php index 4cf3088f..ed18674f 100644 --- a/src/includes/api/admin/table.php +++ b/src/includes/api/admin/table.php @@ -1,4 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + session_start(); session_write_close(); if (file_exists('../www/init.php')) { diff --git a/src/includes/api/reseller/table.php b/src/includes/api/reseller/table.php index 53c57480..0058e1ea 100644 --- a/src/includes/api/reseller/table.php +++ b/src/includes/api/reseller/table.php @@ -1,4 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + session_start(); session_write_close(); if (file_exists('../www/init.php')) { diff --git a/src/includes/data/permissions.php b/src/includes/data/permissions.php index d187f314..6b8430a0 100644 --- a/src/includes/data/permissions.php +++ b/src/includes/data/permissions.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + $rPermissionKeys = array( 'add_rtmp', 'add_bouquet', diff --git a/src/includes/libs/AsyncFileOperations.php b/src/includes/libs/AsyncFileOperations.php index f8cad0fb..433bdd05 100644 --- a/src/includes/libs/AsyncFileOperations.php +++ b/src/includes/libs/AsyncFileOperations.php @@ -5,9 +5,8 @@ * * @package VateronMedia_AsyncFileOperations * @author Divarion_D - * @copyright 2026 Vateron Media + * @copyright 2025-2026 Vateron Media * @link https://github.com/Vateron-Media/XC_VM - * @version 0.1.0 * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html * * A PHP class created specifically for the XC_VM project to perform diff --git a/src/includes/libs/GithubReleases.php b/src/includes/libs/GithubReleases.php index 35a11a82..5d780a42 100644 --- a/src/includes/libs/GithubReleases.php +++ b/src/includes/libs/GithubReleases.php @@ -7,7 +7,6 @@ * @author Divarion_D * @copyright 2025-2026 Vateron Media * @link https://github.com/Vateron-Media/XC_VM - * @version 0.1.0 * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html * * A PHP class created specifically for the XC_VM project to interact with the GitHub Releases API. diff --git a/src/includes/libs/Logger.php b/src/includes/libs/Logger.php index 743378b0..c6c2d2d0 100644 --- a/src/includes/libs/Logger.php +++ b/src/includes/libs/Logger.php @@ -3,7 +3,14 @@ /** * A centralized logger class for handling PHP errors, exceptions, and fatal errors. * Logs all events to a file in base64-encoded JSON format and optionally displays them on screen in development mode. + * + * @package XC_VM_Includes_Libs + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + final class Logger { /** @var bool Whether development mode is enabled (errors are displayed on screen) */ private static bool $development = false; diff --git a/src/includes/libs/iptables.php b/src/includes/libs/iptables.php index cec40519..75a3710d 100644 --- a/src/includes/libs/iptables.php +++ b/src/includes/libs/iptables.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class Chain { private $name; private $table; diff --git a/src/includes/libs/m3u.php b/src/includes/libs/m3u.php index 001d46d7..63dc5b88 100644 --- a/src/includes/libs/m3u.php +++ b/src/includes/libs/m3u.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + trait TagAttributesTrait { /** * @var array diff --git a/src/includes/libs/m3u_v2.php b/src/includes/libs/m3u_v2.php index 9910b4c3..9569fb5f 100644 --- a/src/includes/libs/m3u_v2.php +++ b/src/includes/libs/m3u_v2.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class Config { private $data; diff --git a/src/includes/reseller_api.php b/src/includes/reseller_api.php index f8633227..c503d324 100644 --- a/src/includes/reseller_api.php +++ b/src/includes/reseller_api.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ResellerAPI { public static $rSettings = array(); public static $rServers = array(); diff --git a/src/includes/ts.php b/src/includes/ts.php index c344f1a0..475f60b4 100644 --- a/src/includes/ts.php +++ b/src/includes/ts.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class TS { public static $rBuffer = null; public static $rPosition = null; diff --git a/src/infrastructure/bootstrap/admin_functions_fc.php b/src/infrastructure/bootstrap/admin_functions_fc.php index 4aadc63a..8fa635e7 100644 --- a/src/infrastructure/bootstrap/admin_functions_fc.php +++ b/src/infrastructure/bootstrap/admin_functions_fc.php @@ -8,6 +8,12 @@ * * @see admin/functions.php — оригинал (для direct nginx access) * @since Phase 10.5 + * + * @package XC_VM_Infrastructure_Bootstrap + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ if (!defined('MAIN_HOME')) { diff --git a/src/infrastructure/bootstrap/admin_session_fc.php b/src/infrastructure/bootstrap/admin_session_fc.php index fb0f86c2..25c4d66c 100644 --- a/src/infrastructure/bootstrap/admin_session_fc.php +++ b/src/infrastructure/bootstrap/admin_session_fc.php @@ -9,6 +9,12 @@ * * @see admin/session.php — оригинал (для direct nginx access) * @since Phase 10.5 + * + * @package XC_VM_Infrastructure_Bootstrap + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ $rSessionTimeout = 60; diff --git a/src/infrastructure/bootstrap/player_functions.php b/src/infrastructure/bootstrap/player_functions.php index 582a2447..21f12061 100644 --- a/src/infrastructure/bootstrap/player_functions.php +++ b/src/infrastructure/bootstrap/player_functions.php @@ -7,6 +7,12 @@ * * Equivalent to the bootstrap section of player/functions.php, * but using the standard includes/admin.php chain. + * + * @package XC_VM_Infrastructure_Bootstrap + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ // Mark bootstrap as done to prevent double-init when legacy files diff --git a/src/infrastructure/bootstrap/player_session.php b/src/infrastructure/bootstrap/player_session.php index 9e263dbf..f01e9f14 100644 --- a/src/infrastructure/bootstrap/player_session.php +++ b/src/infrastructure/bootstrap/player_session.php @@ -4,6 +4,12 @@ * * Manages player session lifecycle: start session, redirect if not authenticated. * Session keys: 'phash' (user ID), 'pverify' (md5 of username||password) + * + * @package XC_VM_Infrastructure_Bootstrap + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ if (session_status() === PHP_SESSION_NONE && !headers_sent()) { diff --git a/src/infrastructure/bootstrap/player_utility_functions.php b/src/infrastructure/bootstrap/player_utility_functions.php index 0d0c00f1..274c5067 100644 --- a/src/infrastructure/bootstrap/player_utility_functions.php +++ b/src/infrastructure/bootstrap/player_utility_functions.php @@ -11,6 +11,12 @@ * * Shared with includes/admin.php: sortArrayByArray, getSerie, * getMovieTMDB, getSeriesTMDB, getSeasonTMDB. + * + * @package XC_VM_Infrastructure_Bootstrap + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ function sortArrayStreamName($a, $b) { diff --git a/src/infrastructure/bootstrap/reseller_functions.php b/src/infrastructure/bootstrap/reseller_functions.php index ee40b684..a8d6998e 100644 --- a/src/infrastructure/bootstrap/reseller_functions.php +++ b/src/infrastructure/bootstrap/reseller_functions.php @@ -5,6 +5,12 @@ * Extracted from reseller/functions.php for Front Controller use. * Loads includes/admin.php, then sets up $rUserInfo, $rPermissions * and validates reseller session integrity. + * + * @package XC_VM_Infrastructure_Bootstrap + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ if (!defined('MAIN_HOME')) { diff --git a/src/infrastructure/bootstrap/reseller_session.php b/src/infrastructure/bootstrap/reseller_session.php index f254a0d8..ba22b446 100644 --- a/src/infrastructure/bootstrap/reseller_session.php +++ b/src/infrastructure/bootstrap/reseller_session.php @@ -6,6 +6,12 @@ * Manages reseller session lifecycle: timeout, login redirect, heartbeat. * * Session keys: 'reseller' (user ID), 'rip', 'rcode', 'rverify', 'rlast_activity' + * + * @package XC_VM_Infrastructure_Bootstrap + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ $rSessionTimeout = 60; diff --git a/src/infrastructure/cache/CacheReader.php b/src/infrastructure/cache/CacheReader.php index 8b92c22c..8abdf9d6 100644 --- a/src/infrastructure/cache/CacheReader.php +++ b/src/infrastructure/cache/CacheReader.php @@ -2,7 +2,14 @@ /** * CacheReader — чтение бинарных кэш-файлов (igbinary). + * + * @package XC_VM_Infrastructure_Cache + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class CacheReader { /** * Читает и десериализует igbinary-файл из CACHE_TMP_PATH. diff --git a/src/infrastructure/database/DatabaseFactory.php b/src/infrastructure/database/DatabaseFactory.php index f1e6f89d..03a32a1c 100644 --- a/src/infrastructure/database/DatabaseFactory.php +++ b/src/infrastructure/database/DatabaseFactory.php @@ -4,7 +4,14 @@ * DatabaseFactory — создание, хранение и закрытие глобального подключения к БД. * * Singleton-реестр: entry points вызывают set($db), потребители — get(). + * + * @package XC_VM_Infrastructure_Database + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class DatabaseFactory { /** @var DatabaseHandler|null */ private static $instance = null; diff --git a/src/infrastructure/legacy/player_resize_body.php b/src/infrastructure/legacy/player_resize_body.php index 7aef5bdd..a40147ad 100644 --- a/src/infrastructure/legacy/player_resize_body.php +++ b/src/infrastructure/legacy/player_resize_body.php @@ -3,7 +3,14 @@ * Legacy player resize image handler. * Extracted from player/resize.php. * Variables expected from caller: MAIN_HOME, $rServers (from bootstrap). + * + * @package XC_VM_Infrastructure_Legacy + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + set_time_limit(2); ini_set('default_socket_timeout', 2); if (!defined('IMAGES_PATH')) { diff --git a/src/infrastructure/legacy/reseller_api_actions.php b/src/infrastructure/legacy/reseller_api_actions.php index ac5b9c56..4784d270 100644 --- a/src/infrastructure/legacy/reseller_api_actions.php +++ b/src/infrastructure/legacy/reseller_api_actions.php @@ -7,6 +7,12 @@ * $rUserInfo — authenticated reseller user info * $rPermissions — reseller permissions array * $db — database connection + * + * @package XC_VM_Infrastructure_Legacy + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ if ($action == 'dashboard') { diff --git a/src/infrastructure/legacy/reseller_resize_body.php b/src/infrastructure/legacy/reseller_resize_body.php index 4289e46d..a42c5ebd 100644 --- a/src/infrastructure/legacy/reseller_resize_body.php +++ b/src/infrastructure/legacy/reseller_resize_body.php @@ -3,7 +3,14 @@ * Legacy reseller resize image handler. * Extracted from reseller/resize.php. * Variables expected from caller: MAIN_HOME, WWW_PATH, IMAGES_PATH, TMP_PATH, CACHE_TMP_PATH already defined. + * + * @package XC_VM_Infrastructure_Legacy + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + set_time_limit(2); ini_set('default_socket_timeout', 2); diff --git a/src/infrastructure/legacy/reseller_table_body.php b/src/infrastructure/legacy/reseller_table_body.php index 5d6095cb..be3a33b7 100644 --- a/src/infrastructure/legacy/reseller_table_body.php +++ b/src/infrastructure/legacy/reseller_table_body.php @@ -3,7 +3,14 @@ * Legacy reseller table data handler. * Extracted from reseller/table.php (lines 50+). * Variables expected from caller: $rReturn, $rIsAPI, $rUserInfo, $rPermissions, $rSettings, $db + * + * @package XC_VM_Infrastructure_Legacy + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + if (isset($rUserInfo['reports'])) { $rType = RequestManager::getAll()['id']; $rStart = intval(RequestManager::getAll()['start']); diff --git a/src/infrastructure/redis/RedisManager.php b/src/infrastructure/redis/RedisManager.php index d48c53b0..06ef15e5 100644 --- a/src/infrastructure/redis/RedisManager.php +++ b/src/infrastructure/redis/RedisManager.php @@ -4,7 +4,14 @@ * RedisManager — управление жизненным циклом Redis-подключения. * * Singleton хранит активный экземпляр Redis. + * + * @package XC_VM_Infrastructure_Redis + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class RedisManager { /** @var Redis|null Singleton-экземпляр */ private static $instance = null; diff --git a/src/modules/fingerprint/FingerprintModule.php b/src/modules/fingerprint/FingerprintModule.php index aa423b47..f61ee06f 100644 --- a/src/modules/fingerprint/FingerprintModule.php +++ b/src/modules/fingerprint/FingerprintModule.php @@ -21,6 +21,12 @@ * - line_activity — принудительное завершение соединения * * @see admin/fingerprint.php + * + * @package XC_VM_Module_Fingerprint + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class FingerprintModule implements ModuleInterface { diff --git a/src/modules/magscan/MagscanModule.php b/src/modules/magscan/MagscanModule.php index 295df609..e32f1468 100644 --- a/src/modules/magscan/MagscanModule.php +++ b/src/modules/magscan/MagscanModule.php @@ -19,6 +19,12 @@ * - submit_magscan — POST-обработка сохранения настроек * * @see admin/magscan_settings.php + * + * @package XC_VM_Module_Magscan + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class MagscanModule implements ModuleInterface { diff --git a/src/modules/ministra/MinistraModule.php b/src/modules/ministra/MinistraModule.php index 2e440365..8e81a90c 100644 --- a/src/modules/ministra/MinistraModule.php +++ b/src/modules/ministra/MinistraModule.php @@ -27,6 +27,12 @@ * * @see PortalHandler * @see PortalHelpers + * + * @package XC_VM_Module_Ministra + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class MinistraModule implements ModuleInterface { diff --git a/src/modules/ministra/PortalHandler.php b/src/modules/ministra/PortalHandler.php index 5a258b37..c62866fc 100644 --- a/src/modules/ministra/PortalHandler.php +++ b/src/modules/ministra/PortalHandler.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class PortalHandler { /** * Phase 1: Pre-init stub responses (no DB needed). diff --git a/src/modules/ministra/PortalHelpers.php b/src/modules/ministra/PortalHelpers.php index 929bb7d5..c272c168 100644 --- a/src/modules/ministra/PortalHelpers.php +++ b/src/modules/ministra/PortalHelpers.php @@ -4,7 +4,14 @@ * PortalHelpers — статические хелперы для Ministra/Stalker портала. * * (каналы, фильмы, сериалы, радио, EPG) и управления устройствами. + * + * @package XC_VM_Module_Ministra + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class PortalHelpers { // ─── Устройство / кэш ─────────────────────────────────────────── diff --git a/src/modules/plex/PlexAuth.php b/src/modules/plex/PlexAuth.php index 58a97f3e..bf7af5f4 100644 --- a/src/modules/plex/PlexAuth.php +++ b/src/modules/plex/PlexAuth.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class PlexAuth { public static function getPlexToken($plexIP = null, $plexPort = null, $plexUsername = null, $plexPassword = null) { $serverKey = self::getPlexServerCacheKey($plexIP, $plexPort, $plexUsername, $plexPassword); diff --git a/src/modules/plex/PlexController.php b/src/modules/plex/PlexController.php index 38f44004..8815eec8 100644 --- a/src/modules/plex/PlexController.php +++ b/src/modules/plex/PlexController.php @@ -36,6 +36,12 @@ * @see PlexService * @see PlexRepository * @see PlexModule + * + * @package XC_VM_Module_Plex + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class PlexController { diff --git a/src/modules/plex/PlexCron.php b/src/modules/plex/PlexCron.php index be3f68fe..c9a77125 100644 --- a/src/modules/plex/PlexCron.php +++ b/src/modules/plex/PlexCron.php @@ -2,6 +2,12 @@ /** * PlexCron — модуль синхронизации Plex (крон-задача). + * + * @package XC_VM_Module_Plex + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ require_once __DIR__ . '/../../core/Process/Thread.php'; diff --git a/src/modules/plex/PlexCronJob.php b/src/modules/plex/PlexCronJob.php index 90877481..ee5cec28 100644 --- a/src/modules/plex/PlexCronJob.php +++ b/src/modules/plex/PlexCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once MAIN_HOME . 'cli/CronTrait.php'; class PlexCronJob implements CommandInterface { diff --git a/src/modules/plex/PlexItem.php b/src/modules/plex/PlexItem.php index 703ab890..9fca70b7 100644 --- a/src/modules/plex/PlexItem.php +++ b/src/modules/plex/PlexItem.php @@ -4,6 +4,12 @@ * PlexItem — модуль обработки отдельного элемента Plex (фильм/сериал). * * Содержит логику импорта/обновления фильмов и эпизодов из Plex. + * + * @package XC_VM_Module_Plex + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class PlexItem { diff --git a/src/modules/plex/PlexItemCommand.php b/src/modules/plex/PlexItemCommand.php index e7ffc34a..553ef2a1 100644 --- a/src/modules/plex/PlexItemCommand.php +++ b/src/modules/plex/PlexItemCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class PlexItemCommand implements CommandInterface { public function getName(): string { diff --git a/src/modules/plex/PlexModule.php b/src/modules/plex/PlexModule.php index 1c54f5d2..1e1db774 100644 --- a/src/modules/plex/PlexModule.php +++ b/src/modules/plex/PlexModule.php @@ -36,6 +36,12 @@ * @see PlexRepository * @see PlexAuth * @see PlexController + * + * @package XC_VM_Module_Plex + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class PlexModule implements ModuleInterface { diff --git a/src/modules/plex/PlexRepository.php b/src/modules/plex/PlexRepository.php index b0551b83..d6e27eb5 100644 --- a/src/modules/plex/PlexRepository.php +++ b/src/modules/plex/PlexRepository.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class PlexRepository { public static function getPlexServers() { global $db; diff --git a/src/modules/plex/PlexService.php b/src/modules/plex/PlexService.php index d3e4dde3..55e54a46 100644 --- a/src/modules/plex/PlexService.php +++ b/src/modules/plex/PlexService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class PlexService { public static function editPlexSettings($rData) { global $db; diff --git a/src/modules/theft-detection/TheftDetectionModule.php b/src/modules/theft-detection/TheftDetectionModule.php index 8ec56986..7de2b0ac 100644 --- a/src/modules/theft-detection/TheftDetectionModule.php +++ b/src/modules/theft-detection/TheftDetectionModule.php @@ -20,6 +20,12 @@ * генерирует кеш-файл (igbinary) в CACHE_TMP_PATH/theft_detection * * @see admin/theft_detection.php + * + * @package XC_VM_Module_TheftDetection + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class TheftDetectionModule implements ModuleInterface { diff --git a/src/modules/tmdb/TmdbCron.php b/src/modules/tmdb/TmdbCron.php index fe267fa5..d9b00642 100644 --- a/src/modules/tmdb/TmdbCron.php +++ b/src/modules/tmdb/TmdbCron.php @@ -9,7 +9,14 @@ * - Обработка очереди watch_refresh (фильмы, сериалы, эпизоды) * - Поиск совпадений в TMDB API * - Обновление метаданных в БД + * + * @package XC_VM_Module_Tmdb + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class TmdbCron { /** * Создать TMDB-клиент с корректным языком. diff --git a/src/modules/tmdb/TmdbCronJob.php b/src/modules/tmdb/TmdbCronJob.php index 39e029fd..65695d01 100644 --- a/src/modules/tmdb/TmdbCronJob.php +++ b/src/modules/tmdb/TmdbCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once MAIN_HOME . 'cli/CronTrait.php'; class TmdbCronJob implements CommandInterface { diff --git a/src/modules/tmdb/TmdbModule.php b/src/modules/tmdb/TmdbModule.php index 557e3342..25aca1c1 100644 --- a/src/modules/tmdb/TmdbModule.php +++ b/src/modules/tmdb/TmdbModule.php @@ -27,6 +27,12 @@ * @see TmdbService * @see TmdbCron * @see TmdbPopularCron + * + * @package XC_VM_Module_Tmdb + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class TmdbModule implements ModuleInterface { diff --git a/src/modules/tmdb/TmdbPopularCron.php b/src/modules/tmdb/TmdbPopularCron.php index 1f67f1d5..a0ee4692 100644 --- a/src/modules/tmdb/TmdbPopularCron.php +++ b/src/modules/tmdb/TmdbPopularCron.php @@ -11,7 +11,14 @@ * - Сбор «похожих» (similar) фильмов/сериалов * - Сбор популярных live-потоков по активности * - Запись результатов в файлы (tmdb_popular, live_popular) + * + * @package XC_VM_Module_Tmdb + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class TmdbPopularCron { /** * Собрать популярные фильмы и сериалы из TMDB. diff --git a/src/modules/tmdb/TmdbPopularCronJob.php b/src/modules/tmdb/TmdbPopularCronJob.php index 3047126f..aedbe69e 100644 --- a/src/modules/tmdb/TmdbPopularCronJob.php +++ b/src/modules/tmdb/TmdbPopularCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once MAIN_HOME . 'cli/CronTrait.php'; class TmdbPopularCronJob implements CommandInterface { diff --git a/src/modules/tmdb/TmdbService.php b/src/modules/tmdb/TmdbService.php index c9011ec8..58fd26cf 100644 --- a/src/modules/tmdb/TmdbService.php +++ b/src/modules/tmdb/TmdbService.php @@ -15,7 +15,14 @@ * - includes/libs/tmdb.php (класс TMDB) * - includes/libs/tmdb_release.php (parserelease) * - includes/admin.php (getSeriesTrailer) + * + * @package XC_VM_Module_Tmdb + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class TmdbService { /** diff --git a/src/modules/tmdb/lib.php b/src/modules/tmdb/lib.php index a2cb5489..024aa9ee 100644 --- a/src/modules/tmdb/lib.php +++ b/src/modules/tmdb/lib.php @@ -12,6 +12,12 @@ * @see includes/libs/tmdb.php * @see includes/libs/TMDb/ * @see includes/libs/tmdb_release.php + * + * @package XC_VM_Module_Tmdb + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ require_once INCLUDES_PATH . 'libs/tmdb.php'; diff --git a/src/modules/watch/RecordingService.php b/src/modules/watch/RecordingService.php index dc53507f..f73117b9 100644 --- a/src/modules/watch/RecordingService.php +++ b/src/modules/watch/RecordingService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class RecordingService { public static function schedule($rData) { global $db; diff --git a/src/modules/watch/WatchController.php b/src/modules/watch/WatchController.php index fe599df9..394f68d0 100644 --- a/src/modules/watch/WatchController.php +++ b/src/modules/watch/WatchController.php @@ -41,6 +41,12 @@ * @see WatchService * @see RecordingService * @see WatchModule + * + * @package XC_VM_Module_Watch + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class WatchController { diff --git a/src/modules/watch/WatchCron.php b/src/modules/watch/WatchCron.php index c0c558cc..3b5638b9 100644 --- a/src/modules/watch/WatchCron.php +++ b/src/modules/watch/WatchCron.php @@ -2,6 +2,12 @@ /** * WatchCron — крон-задача Watch Folder. + * + * @package XC_VM_Module_Watch + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ require_once __DIR__ . '/../../core/Process/Thread.php'; diff --git a/src/modules/watch/WatchCronJob.php b/src/modules/watch/WatchCronJob.php index a421da12..586db644 100644 --- a/src/modules/watch/WatchCronJob.php +++ b/src/modules/watch/WatchCronJob.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once MAIN_HOME . 'cli/CronTrait.php'; class WatchCronJob implements CommandInterface { diff --git a/src/modules/watch/WatchItem.php b/src/modules/watch/WatchItem.php index bda5c5bc..633fcd3f 100644 --- a/src/modules/watch/WatchItem.php +++ b/src/modules/watch/WatchItem.php @@ -2,6 +2,12 @@ /** * WatchItem — модуль обработки отдельного элемента Watch Folder (фильм/сериал). + * + * @package XC_VM_Module_Watch + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class WatchItem { diff --git a/src/modules/watch/WatchItemCommand.php b/src/modules/watch/WatchItemCommand.php index 6fb82209..466b5827 100644 --- a/src/modules/watch/WatchItemCommand.php +++ b/src/modules/watch/WatchItemCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class WatchItemCommand implements CommandInterface { public function getName(): string { diff --git a/src/modules/watch/WatchModule.php b/src/modules/watch/WatchModule.php index b333ac85..97f71941 100644 --- a/src/modules/watch/WatchModule.php +++ b/src/modules/watch/WatchModule.php @@ -33,6 +33,12 @@ * @see WatchService * @see RecordingService * @see WatchController + * + * @package XC_VM_Module_Watch + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class WatchModule implements ModuleInterface { diff --git a/src/modules/watch/WatchService.php b/src/modules/watch/WatchService.php index 9136d784..ccc7ddb2 100644 --- a/src/modules/watch/WatchService.php +++ b/src/modules/watch/WatchService.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class WatchService { public static function editWatchSettings($rData) { global $db; diff --git a/src/public/Controllers/Admin/AdminLogoutController.php b/src/public/Controllers/Admin/AdminLogoutController.php index feb70dd5..60075eef 100644 --- a/src/public/Controllers/Admin/AdminLogoutController.php +++ b/src/public/Controllers/Admin/AdminLogoutController.php @@ -2,7 +2,14 @@ /** * AdminLogoutController — Уничтожение сессии + редирект на login. + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class AdminLogoutController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/AdminPlexController.php b/src/public/Controllers/Admin/AdminPlexController.php index 0170a050..7d03d8a9 100644 --- a/src/public/Controllers/Admin/AdminPlexController.php +++ b/src/public/Controllers/Admin/AdminPlexController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class AdminPlexController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/AdminWatchController.php b/src/public/Controllers/Admin/AdminWatchController.php index 02f5003c..a4220832 100644 --- a/src/public/Controllers/Admin/AdminWatchController.php +++ b/src/public/Controllers/Admin/AdminWatchController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class AdminWatchController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/AjaxController.php b/src/public/Controllers/Admin/AjaxController.php index b5387c74..e45d8b26 100644 --- a/src/public/Controllers/Admin/AjaxController.php +++ b/src/public/Controllers/Admin/AjaxController.php @@ -9,7 +9,14 @@ * * @see admin/api.php * @since Phase 10.4 + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class AjaxController extends BaseAdminController { public function index() { diff --git a/src/public/Controllers/Admin/ArchiveController.php b/src/public/Controllers/Admin/ArchiveController.php index 4c5cd253..32f88f12 100644 --- a/src/public/Controllers/Admin/ArchiveController.php +++ b/src/public/Controllers/Admin/ArchiveController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ArchiveController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/AsnsController.php b/src/public/Controllers/Admin/AsnsController.php index cd065e2d..5fd6e38f 100644 --- a/src/public/Controllers/Admin/AsnsController.php +++ b/src/public/Controllers/Admin/AsnsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class AsnsController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/BackupsController.php b/src/public/Controllers/Admin/BackupsController.php index 491931a7..642e3d4d 100644 --- a/src/public/Controllers/Admin/BackupsController.php +++ b/src/public/Controllers/Admin/BackupsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class BackupsController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/BaseAdminController.php b/src/public/Controllers/Admin/BaseAdminController.php index 9bd00cdf..f8b71142 100644 --- a/src/public/Controllers/Admin/BaseAdminController.php +++ b/src/public/Controllers/Admin/BaseAdminController.php @@ -17,7 +17,14 @@ * @see public/Views/layouts/admin.php — renderUnifiedLayoutHeader() * @see public/Views/layouts/footer.php — renderUnifiedLayoutFooter() * @see core/Http/Router.php — callHandler() → new Controller()->method() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class BaseAdminController { /** @var string Scope: 'admin' или 'reseller' */ diff --git a/src/public/Controllers/Admin/BouquetController.php b/src/public/Controllers/Admin/BouquetController.php index dee1511b..fe8c93cb 100644 --- a/src/public/Controllers/Admin/BouquetController.php +++ b/src/public/Controllers/Admin/BouquetController.php @@ -9,7 +9,14 @@ * * Legacy: admin/bouquet.php (495 строк) * Route: GET /admin/bouquet → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class BouquetController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/BouquetListController.php b/src/public/Controllers/Admin/BouquetListController.php index e88bbfad..a2c192ee 100644 --- a/src/public/Controllers/Admin/BouquetListController.php +++ b/src/public/Controllers/Admin/BouquetListController.php @@ -7,7 +7,14 @@ * * Legacy: admin/bouquets.php (163 строк) * Route: GET /admin/bouquets → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class BouquetListController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/BouquetOrderController.php b/src/public/Controllers/Admin/BouquetOrderController.php index f027e9a1..3a96d391 100644 --- a/src/public/Controllers/Admin/BouquetOrderController.php +++ b/src/public/Controllers/Admin/BouquetOrderController.php @@ -7,7 +7,14 @@ * * Legacy: admin/bouquet_order.php (167 строк) * Route: GET /admin/bouquet_order → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class BouquetOrderController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/BouquetSortController.php b/src/public/Controllers/Admin/BouquetSortController.php index 303814d7..08c83ab8 100644 --- a/src/public/Controllers/Admin/BouquetSortController.php +++ b/src/public/Controllers/Admin/BouquetSortController.php @@ -8,7 +8,14 @@ * * Legacy: admin/bouquet_sort.php (589 строк) * Route: GET /admin/bouquet_sort → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class BouquetSortController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/CacheController.php b/src/public/Controllers/Admin/CacheController.php index 648191f9..857d3329 100644 --- a/src/public/Controllers/Admin/CacheController.php +++ b/src/public/Controllers/Admin/CacheController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class CacheController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/ChannelOrderController.php b/src/public/Controllers/Admin/ChannelOrderController.php index 806dbfe7..dde3bd51 100644 --- a/src/public/Controllers/Admin/ChannelOrderController.php +++ b/src/public/Controllers/Admin/ChannelOrderController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ChannelOrderController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/ClientLogController.php b/src/public/Controllers/Admin/ClientLogController.php index 2d547679..b2802d36 100644 --- a/src/public/Controllers/Admin/ClientLogController.php +++ b/src/public/Controllers/Admin/ClientLogController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ClientLogController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/CodeController.php b/src/public/Controllers/Admin/CodeController.php index 02370b3c..f6811bfa 100644 --- a/src/public/Controllers/Admin/CodeController.php +++ b/src/public/Controllers/Admin/CodeController.php @@ -7,7 +7,14 @@ * * Legacy: admin/codes.php (273 строки) * Route: GET /admin/codes → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class CodeController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/CodeEditController.php b/src/public/Controllers/Admin/CodeEditController.php index 5c72d1d7..c257bcd8 100644 --- a/src/public/Controllers/Admin/CodeEditController.php +++ b/src/public/Controllers/Admin/CodeEditController.php @@ -3,7 +3,14 @@ * CodeEditController — add/edit access code. * * Route: GET /admin/code → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class CodeEditController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/CreatedChannelController.php b/src/public/Controllers/Admin/CreatedChannelController.php index e0b3b254..0afb6740 100644 --- a/src/public/Controllers/Admin/CreatedChannelController.php +++ b/src/public/Controllers/Admin/CreatedChannelController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class CreatedChannelController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/CreatedChannelListController.php b/src/public/Controllers/Admin/CreatedChannelListController.php index aeb91c59..2b86320c 100644 --- a/src/public/Controllers/Admin/CreatedChannelListController.php +++ b/src/public/Controllers/Admin/CreatedChannelListController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class CreatedChannelListController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/CreatedChannelMassController.php b/src/public/Controllers/Admin/CreatedChannelMassController.php index 272b4ae6..8d48504c 100644 --- a/src/public/Controllers/Admin/CreatedChannelMassController.php +++ b/src/public/Controllers/Admin/CreatedChannelMassController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class CreatedChannelMassController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/CreditLogsController.php b/src/public/Controllers/Admin/CreditLogsController.php index 3563742e..6c85fba5 100644 --- a/src/public/Controllers/Admin/CreditLogsController.php +++ b/src/public/Controllers/Admin/CreditLogsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class CreditLogsController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/DashboardController.php b/src/public/Controllers/Admin/DashboardController.php index 251a8396..c68cfe9c 100644 --- a/src/public/Controllers/Admin/DashboardController.php +++ b/src/public/Controllers/Admin/DashboardController.php @@ -4,7 +4,14 @@ * * Complex data-prep: theme colours, connection map queries, server stats. * Dashboard has NO checkPermissions() — it uses server_id validation instead. + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class DashboardController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/EditProfileController.php b/src/public/Controllers/Admin/EditProfileController.php index 3e0cbff2..a1f87679 100644 --- a/src/public/Controllers/Admin/EditProfileController.php +++ b/src/public/Controllers/Admin/EditProfileController.php @@ -2,7 +2,14 @@ /** * EditProfileController — Edit Profile. * Note: no checkPermissions — profile is accessible to any logged-in admin. + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class EditProfileController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/EnigmaController.php b/src/public/Controllers/Admin/EnigmaController.php index 9ccaca8c..434e8fe2 100644 --- a/src/public/Controllers/Admin/EnigmaController.php +++ b/src/public/Controllers/Admin/EnigmaController.php @@ -1,6 +1,12 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class EnigmaController extends BaseAdminController { diff --git a/src/public/Controllers/Admin/EnigmaMassController.php b/src/public/Controllers/Admin/EnigmaMassController.php index e2ca9527..7aa195b9 100644 --- a/src/public/Controllers/Admin/EnigmaMassController.php +++ b/src/public/Controllers/Admin/EnigmaMassController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class EnigmaMassController extends BaseAdminController { public function index() { $this->requirePermission(); diff --git a/src/public/Controllers/Admin/EnigmasController.php b/src/public/Controllers/Admin/EnigmasController.php index 3f358a35..1bc741ea 100644 --- a/src/public/Controllers/Admin/EnigmasController.php +++ b/src/public/Controllers/Admin/EnigmasController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class EnigmasController extends BaseAdminController { public function index() { $this->requirePermission(); diff --git a/src/public/Controllers/Admin/EpgController.php b/src/public/Controllers/Admin/EpgController.php index fb0b7543..7060ccb5 100644 --- a/src/public/Controllers/Admin/EpgController.php +++ b/src/public/Controllers/Admin/EpgController.php @@ -1,6 +1,12 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class EpgController extends BaseAdminController { diff --git a/src/public/Controllers/Admin/EpgListController.php b/src/public/Controllers/Admin/EpgListController.php index 7cdfb978..7a583e5d 100644 --- a/src/public/Controllers/Admin/EpgListController.php +++ b/src/public/Controllers/Admin/EpgListController.php @@ -8,7 +8,14 @@ * * Legacy: admin/epgs.php (233 строк) * Route: GET /admin/epgs → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class EpgListController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/EpgViewController.php b/src/public/Controllers/Admin/EpgViewController.php index ae6f6a45..62fae51c 100644 --- a/src/public/Controllers/Admin/EpgViewController.php +++ b/src/public/Controllers/Admin/EpgViewController.php @@ -1,6 +1,12 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class EpgViewController extends BaseAdminController { diff --git a/src/public/Controllers/Admin/EpisodeController.php b/src/public/Controllers/Admin/EpisodeController.php index 61e7dbf6..6ded822e 100644 --- a/src/public/Controllers/Admin/EpisodeController.php +++ b/src/public/Controllers/Admin/EpisodeController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class EpisodeController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/EpisodeListController.php b/src/public/Controllers/Admin/EpisodeListController.php index b1dfaf93..f000c5c0 100644 --- a/src/public/Controllers/Admin/EpisodeListController.php +++ b/src/public/Controllers/Admin/EpisodeListController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class EpisodeListController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/EpisodeMassController.php b/src/public/Controllers/Admin/EpisodeMassController.php index 63714102..9732eaed 100644 --- a/src/public/Controllers/Admin/EpisodeMassController.php +++ b/src/public/Controllers/Admin/EpisodeMassController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class EpisodeMassController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/FingerprintController.php b/src/public/Controllers/Admin/FingerprintController.php index 929aa4e0..3455a957 100644 --- a/src/public/Controllers/Admin/FingerprintController.php +++ b/src/public/Controllers/Admin/FingerprintController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class FingerprintController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/GroupController.php b/src/public/Controllers/Admin/GroupController.php index b2dbde74..6cdb4415 100644 --- a/src/public/Controllers/Admin/GroupController.php +++ b/src/public/Controllers/Admin/GroupController.php @@ -7,7 +7,14 @@ * * Legacy: admin/groups.php (240 строк) * Route: GET /admin/groups → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class GroupController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/GroupEditController.php b/src/public/Controllers/Admin/GroupEditController.php index ff0a27a2..9ca6d541 100644 --- a/src/public/Controllers/Admin/GroupEditController.php +++ b/src/public/Controllers/Admin/GroupEditController.php @@ -3,7 +3,14 @@ * GroupEditController — add/edit member group. * * Route: GET /admin/group → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class GroupEditController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/HmacController.php b/src/public/Controllers/Admin/HmacController.php index 480de5e2..0c3975fa 100644 --- a/src/public/Controllers/Admin/HmacController.php +++ b/src/public/Controllers/Admin/HmacController.php @@ -7,7 +7,14 @@ * * Legacy: admin/hmacs.php (273 строки) * Route: GET /admin/hmacs → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class HmacController extends BaseAdminController { public function index() { $this->requirePermission(); diff --git a/src/public/Controllers/Admin/HmacEditController.php b/src/public/Controllers/Admin/HmacEditController.php index 3ba0f830..78f74817 100644 --- a/src/public/Controllers/Admin/HmacEditController.php +++ b/src/public/Controllers/Admin/HmacEditController.php @@ -4,7 +4,14 @@ * HmacEditController — add/edit HMAC key. * * Route: GET /admin/hmac → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class HmacEditController extends BaseAdminController { public function index() { $this->requirePermission(); diff --git a/src/public/Controllers/Admin/IpController.php b/src/public/Controllers/Admin/IpController.php index ed322f78..7a618e88 100644 --- a/src/public/Controllers/Admin/IpController.php +++ b/src/public/Controllers/Admin/IpController.php @@ -7,7 +7,14 @@ * * Legacy: admin/ips.php (227 строк) * Route: GET /admin/ips → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class IpController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/IpEditController.php b/src/public/Controllers/Admin/IpEditController.php index 4d081d59..85092fe8 100644 --- a/src/public/Controllers/Admin/IpEditController.php +++ b/src/public/Controllers/Admin/IpEditController.php @@ -3,7 +3,14 @@ * IpEditController — add/edit blocked IP. * * Route: GET /admin/ip → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class IpEditController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/IspController.php b/src/public/Controllers/Admin/IspController.php index 44e6872e..5ddbff02 100644 --- a/src/public/Controllers/Admin/IspController.php +++ b/src/public/Controllers/Admin/IspController.php @@ -7,7 +7,14 @@ * * Legacy: admin/isps.php (264 строки) * Route: GET /admin/isps → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class IspController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/IspEditController.php b/src/public/Controllers/Admin/IspEditController.php index 3d69ef5d..6827ff39 100644 --- a/src/public/Controllers/Admin/IspEditController.php +++ b/src/public/Controllers/Admin/IspEditController.php @@ -3,7 +3,14 @@ * IspEditController — add/edit blocked ISP. * * Route: GET /admin/isp → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class IspEditController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/LineActivityController.php b/src/public/Controllers/Admin/LineActivityController.php index 3b85988b..17752c50 100644 --- a/src/public/Controllers/Admin/LineActivityController.php +++ b/src/public/Controllers/Admin/LineActivityController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class LineActivityController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/LineController.php b/src/public/Controllers/Admin/LineController.php index 521302bd..aca8ae0c 100644 --- a/src/public/Controllers/Admin/LineController.php +++ b/src/public/Controllers/Admin/LineController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class LineController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/LineIpsController.php b/src/public/Controllers/Admin/LineIpsController.php index 27ac1afc..253e728d 100644 --- a/src/public/Controllers/Admin/LineIpsController.php +++ b/src/public/Controllers/Admin/LineIpsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class LineIpsController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/LineListController.php b/src/public/Controllers/Admin/LineListController.php index db83d7c6..116b4bcf 100644 --- a/src/public/Controllers/Admin/LineListController.php +++ b/src/public/Controllers/Admin/LineListController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class LineListController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/LineMassController.php b/src/public/Controllers/Admin/LineMassController.php index 5959c746..b92a147d 100644 --- a/src/public/Controllers/Admin/LineMassController.php +++ b/src/public/Controllers/Admin/LineMassController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class LineMassController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/LiveConnectionsController.php b/src/public/Controllers/Admin/LiveConnectionsController.php index 1efb4b63..c562467a 100644 --- a/src/public/Controllers/Admin/LiveConnectionsController.php +++ b/src/public/Controllers/Admin/LiveConnectionsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class LiveConnectionsController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/LoginController.php b/src/public/Controllers/Admin/LoginController.php index 40d09f83..11105fba 100644 --- a/src/public/Controllers/Admin/LoginController.php +++ b/src/public/Controllers/Admin/LoginController.php @@ -6,7 +6,14 @@ * Login имеет собственный HTML-документ (не использует layout header/footer). * Файл admin/login.php содержит полный bootstrap через functions.php. * Контроллер делегирует напрямую в legacy-файл. + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class LoginController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/LoginLogController.php b/src/public/Controllers/Admin/LoginLogController.php index 0e2d567c..3ee3e843 100644 --- a/src/public/Controllers/Admin/LoginLogController.php +++ b/src/public/Controllers/Admin/LoginLogController.php @@ -7,7 +7,14 @@ * * Legacy: admin/login_logs.php (257 строк) * Route: GET /admin/login_logs → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class LoginLogController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/MagController.php b/src/public/Controllers/Admin/MagController.php index 86f9d530..82dd2bf4 100644 --- a/src/public/Controllers/Admin/MagController.php +++ b/src/public/Controllers/Admin/MagController.php @@ -1,6 +1,12 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class MagController extends BaseAdminController { diff --git a/src/public/Controllers/Admin/MagEventController.php b/src/public/Controllers/Admin/MagEventController.php index 1751688f..87b28cb5 100644 --- a/src/public/Controllers/Admin/MagEventController.php +++ b/src/public/Controllers/Admin/MagEventController.php @@ -7,7 +7,14 @@ * * Legacy: admin/mag_events.php (176 строк) * Route: GET /admin/mag_events → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class MagEventController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/MagMassController.php b/src/public/Controllers/Admin/MagMassController.php index 3fb1a5ea..a0683682 100644 --- a/src/public/Controllers/Admin/MagMassController.php +++ b/src/public/Controllers/Admin/MagMassController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class MagMassController extends BaseAdminController { public function index() { $this->requirePermission(); diff --git a/src/public/Controllers/Admin/MagsController.php b/src/public/Controllers/Admin/MagsController.php index e2c309da..24bc6788 100644 --- a/src/public/Controllers/Admin/MagsController.php +++ b/src/public/Controllers/Admin/MagsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class MagsController extends BaseAdminController { public function index() { $this->requirePermission(); diff --git a/src/public/Controllers/Admin/MagscanSettingsController.php b/src/public/Controllers/Admin/MagscanSettingsController.php index 6a5feaf9..d0148a76 100644 --- a/src/public/Controllers/Admin/MagscanSettingsController.php +++ b/src/public/Controllers/Admin/MagscanSettingsController.php @@ -5,7 +5,14 @@ * * GET /magscan_settings * 3-tab form for MAC whitelist/blacklist and IP whitelist. + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class MagscanSettingsController extends BaseAdminController { public function index(): void diff --git a/src/public/Controllers/Admin/MassDeleteController.php b/src/public/Controllers/Admin/MassDeleteController.php index 3666b7e2..f23c937d 100644 --- a/src/public/Controllers/Admin/MassDeleteController.php +++ b/src/public/Controllers/Admin/MassDeleteController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class MassDeleteController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/MovieController.php b/src/public/Controllers/Admin/MovieController.php index 6a52fbe4..08db27a9 100644 --- a/src/public/Controllers/Admin/MovieController.php +++ b/src/public/Controllers/Admin/MovieController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class MovieController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/MovieListController.php b/src/public/Controllers/Admin/MovieListController.php index 64dae22b..7584a5d0 100644 --- a/src/public/Controllers/Admin/MovieListController.php +++ b/src/public/Controllers/Admin/MovieListController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class MovieListController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/MovieMassController.php b/src/public/Controllers/Admin/MovieMassController.php index 80da20c5..02e4d0e7 100644 --- a/src/public/Controllers/Admin/MovieMassController.php +++ b/src/public/Controllers/Admin/MovieMassController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class MovieMassController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/MysqlSyslogController.php b/src/public/Controllers/Admin/MysqlSyslogController.php index 35645efd..f73d006a 100644 --- a/src/public/Controllers/Admin/MysqlSyslogController.php +++ b/src/public/Controllers/Admin/MysqlSyslogController.php @@ -7,7 +7,14 @@ * * Legacy: admin/mysql_syslog.php (251 строк) * Route: GET /admin/mysql_syslog → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class MysqlSyslogController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/OndemandController.php b/src/public/Controllers/Admin/OndemandController.php index 88b8dc29..d0776a39 100644 --- a/src/public/Controllers/Admin/OndemandController.php +++ b/src/public/Controllers/Admin/OndemandController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class OndemandController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/PackageController.php b/src/public/Controllers/Admin/PackageController.php index 649a1d1c..99d03040 100644 --- a/src/public/Controllers/Admin/PackageController.php +++ b/src/public/Controllers/Admin/PackageController.php @@ -7,7 +7,14 @@ * * Legacy: admin/packages.php (239 строк) * Route: GET /admin/packages → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class PackageController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/PackageEditController.php b/src/public/Controllers/Admin/PackageEditController.php index 70c2af35..556e6cf3 100644 --- a/src/public/Controllers/Admin/PackageEditController.php +++ b/src/public/Controllers/Admin/PackageEditController.php @@ -3,7 +3,14 @@ * PackageEditController — add/edit package. * * Route: GET /admin/package → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class PackageEditController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/PanelLogController.php b/src/public/Controllers/Admin/PanelLogController.php index 9814a22d..ae1afa2f 100644 --- a/src/public/Controllers/Admin/PanelLogController.php +++ b/src/public/Controllers/Admin/PanelLogController.php @@ -7,7 +7,14 @@ * * Legacy: admin/panel_logs.php (292 строк) * Route: GET /admin/panel_logs → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class PanelLogController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/PlayerEmbedController.php b/src/public/Controllers/Admin/PlayerEmbedController.php index dd8aacdb..e175c08c 100644 --- a/src/public/Controllers/Admin/PlayerEmbedController.php +++ b/src/public/Controllers/Admin/PlayerEmbedController.php @@ -5,7 +5,14 @@ * * Плеер открывается из admin UI (stream_view, live_connections и т.д.) * в popup/iframe. Имеет собственный HTML-документ (не layout header/footer). + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class PlayerEmbedController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/PlexAddController.php b/src/public/Controllers/Admin/PlexAddController.php index f8e01636..de234898 100644 --- a/src/public/Controllers/Admin/PlexAddController.php +++ b/src/public/Controllers/Admin/PlexAddController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class PlexAddController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/PostController.php b/src/public/Controllers/Admin/PostController.php index b89873aa..c6ed3e22 100644 --- a/src/public/Controllers/Admin/PostController.php +++ b/src/public/Controllers/Admin/PostController.php @@ -12,7 +12,14 @@ * * Через FC post.php попадает сюда после bootstrap, поэтому $rICount > 1. * Чтобы активировать POST-обработку, принудительно переопределяем условие. + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class PostController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/ProcessMonitorController.php b/src/public/Controllers/Admin/ProcessMonitorController.php index 534c1422..be19c0cb 100644 --- a/src/public/Controllers/Admin/ProcessMonitorController.php +++ b/src/public/Controllers/Admin/ProcessMonitorController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ProcessMonitorController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/ProfileController.php b/src/public/Controllers/Admin/ProfileController.php index ec5eee5e..664648b4 100644 --- a/src/public/Controllers/Admin/ProfileController.php +++ b/src/public/Controllers/Admin/ProfileController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ProfileController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/ProfileEditController.php b/src/public/Controllers/Admin/ProfileEditController.php index 4a8fcf1b..6f604d49 100644 --- a/src/public/Controllers/Admin/ProfileEditController.php +++ b/src/public/Controllers/Admin/ProfileEditController.php @@ -3,7 +3,14 @@ * ProfileEditController — add/edit transcoding profile. * * Route: GET /admin/profile → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ProfileEditController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/ProviderController.php b/src/public/Controllers/Admin/ProviderController.php index 4d98130e..36dfb242 100644 --- a/src/public/Controllers/Admin/ProviderController.php +++ b/src/public/Controllers/Admin/ProviderController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ProviderController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/ProviderEditController.php b/src/public/Controllers/Admin/ProviderEditController.php index e77babeb..4deb3aa4 100644 --- a/src/public/Controllers/Admin/ProviderEditController.php +++ b/src/public/Controllers/Admin/ProviderEditController.php @@ -3,7 +3,14 @@ * ProviderEditController — add/edit stream provider. * * Route: GET /admin/provider → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ProviderEditController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/ProxiesController.php b/src/public/Controllers/Admin/ProxiesController.php index f392fce4..812cc6d5 100644 --- a/src/public/Controllers/Admin/ProxiesController.php +++ b/src/public/Controllers/Admin/ProxiesController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ProxiesController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/ProxyController.php b/src/public/Controllers/Admin/ProxyController.php index 93395c9c..20f486d9 100644 --- a/src/public/Controllers/Admin/ProxyController.php +++ b/src/public/Controllers/Admin/ProxyController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ProxyController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/QueueController.php b/src/public/Controllers/Admin/QueueController.php index efd11c3b..87818977 100644 --- a/src/public/Controllers/Admin/QueueController.php +++ b/src/public/Controllers/Admin/QueueController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class QueueController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/QuickToolsController.php b/src/public/Controllers/Admin/QuickToolsController.php index 7feb14c4..c23d59a6 100644 --- a/src/public/Controllers/Admin/QuickToolsController.php +++ b/src/public/Controllers/Admin/QuickToolsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class QuickToolsController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/RadioController.php b/src/public/Controllers/Admin/RadioController.php index 81ce705b..14269fc5 100644 --- a/src/public/Controllers/Admin/RadioController.php +++ b/src/public/Controllers/Admin/RadioController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class RadioController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/RadioListController.php b/src/public/Controllers/Admin/RadioListController.php index ffbf0957..b7fec6ef 100644 --- a/src/public/Controllers/Admin/RadioListController.php +++ b/src/public/Controllers/Admin/RadioListController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class RadioListController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/RadioMassController.php b/src/public/Controllers/Admin/RadioMassController.php index 941f8f18..c1de439c 100644 --- a/src/public/Controllers/Admin/RadioMassController.php +++ b/src/public/Controllers/Admin/RadioMassController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class RadioMassController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/RecordController.php b/src/public/Controllers/Admin/RecordController.php index de0177fa..0a2ff01b 100644 --- a/src/public/Controllers/Admin/RecordController.php +++ b/src/public/Controllers/Admin/RecordController.php @@ -2,7 +2,14 @@ /** * RecordController — Record programme. * Complex data-prep: stream/programme/archive loading from multiple sources. + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class RecordController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/RestreamLogController.php b/src/public/Controllers/Admin/RestreamLogController.php index f34e79cc..a0d5cf4e 100644 --- a/src/public/Controllers/Admin/RestreamLogController.php +++ b/src/public/Controllers/Admin/RestreamLogController.php @@ -7,7 +7,14 @@ * * Legacy: admin/restream_logs.php (197 строк) * Route: GET /admin/restream_logs → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class RestreamLogController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/ReviewController.php b/src/public/Controllers/Admin/ReviewController.php index c360de84..d70f2a35 100644 --- a/src/public/Controllers/Admin/ReviewController.php +++ b/src/public/Controllers/Admin/ReviewController.php @@ -3,7 +3,14 @@ * ReviewController — Review imported streams/movies. * Very complex data-prep: M3U import processing, category matching, stream/movie API calls. * Data-prep is ~160 lines; delegated to legacy file via $__viewMode. + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ReviewController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/RtmpIpController.php b/src/public/Controllers/Admin/RtmpIpController.php index 87044979..25c461a9 100644 --- a/src/public/Controllers/Admin/RtmpIpController.php +++ b/src/public/Controllers/Admin/RtmpIpController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class RtmpIpController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/RtmpIpEditController.php b/src/public/Controllers/Admin/RtmpIpEditController.php index 94cdb33a..ebec5d9b 100644 --- a/src/public/Controllers/Admin/RtmpIpEditController.php +++ b/src/public/Controllers/Admin/RtmpIpEditController.php @@ -3,7 +3,14 @@ * RtmpIpEditController — add/edit RTMP IP. * * Route: GET /admin/rtmp_ip → index() + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class RtmpIpEditController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/RtmpMonitorController.php b/src/public/Controllers/Admin/RtmpMonitorController.php index 608cf0fb..94b673f9 100644 --- a/src/public/Controllers/Admin/RtmpMonitorController.php +++ b/src/public/Controllers/Admin/RtmpMonitorController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class RtmpMonitorController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/SerieController.php b/src/public/Controllers/Admin/SerieController.php index 7522dc8b..96f9f12c 100644 --- a/src/public/Controllers/Admin/SerieController.php +++ b/src/public/Controllers/Admin/SerieController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class SerieController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/SeriesListController.php b/src/public/Controllers/Admin/SeriesListController.php index 1ca6865a..03942287 100644 --- a/src/public/Controllers/Admin/SeriesListController.php +++ b/src/public/Controllers/Admin/SeriesListController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class SeriesListController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/SeriesMassController.php b/src/public/Controllers/Admin/SeriesMassController.php index 083e900b..47ff1407 100644 --- a/src/public/Controllers/Admin/SeriesMassController.php +++ b/src/public/Controllers/Admin/SeriesMassController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class SeriesMassController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/ServerController.php b/src/public/Controllers/Admin/ServerController.php index 6494e41a..c574625c 100644 --- a/src/public/Controllers/Admin/ServerController.php +++ b/src/public/Controllers/Admin/ServerController.php @@ -5,7 +5,14 @@ * * GET /server?id=N * Форма: 5 табов (Details, Domains & IPs, Advanced, Performance, SSL Certificate). + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ServerController extends BaseAdminController { public function index(): void diff --git a/src/public/Controllers/Admin/ServerInstallController.php b/src/public/Controllers/Admin/ServerInstallController.php index 1fe08a1d..d97d86ab 100644 --- a/src/public/Controllers/Admin/ServerInstallController.php +++ b/src/public/Controllers/Admin/ServerInstallController.php @@ -6,7 +6,14 @@ * GET /server_install?proxy (type=1) или GET /server_install (type=2) * Опционально: ?id=N (reinstall), ?update (update). * Форма: 1–2 таба (Details + Server Coverage для proxy). + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ServerInstallController extends BaseAdminController { public function index(): void diff --git a/src/public/Controllers/Admin/ServerListController.php b/src/public/Controllers/Admin/ServerListController.php index 365fd428..a83534d9 100644 --- a/src/public/Controllers/Admin/ServerListController.php +++ b/src/public/Controllers/Admin/ServerListController.php @@ -6,7 +6,14 @@ * GET /servers * Client-side DataTable — PHP рендерит . * Данные: ServerRepository::getAll(true). + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ServerListController extends BaseAdminController { public function index(): void diff --git a/src/public/Controllers/Admin/ServerOrderController.php b/src/public/Controllers/Admin/ServerOrderController.php index 5fca173d..2fe69d2f 100644 --- a/src/public/Controllers/Admin/ServerOrderController.php +++ b/src/public/Controllers/Admin/ServerOrderController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ServerOrderController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/ServerViewController.php b/src/public/Controllers/Admin/ServerViewController.php index 9cce018c..243d1bd5 100644 --- a/src/public/Controllers/Admin/ServerViewController.php +++ b/src/public/Controllers/Admin/ServerViewController.php @@ -7,7 +7,14 @@ * 3 server-side DataTables (streams, connections, live). * ApexCharts (CPU/Memory/IO, Network). * Progress bars + GPU info. + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ServerViewController extends BaseAdminController { public function index(): void diff --git a/src/public/Controllers/Admin/SettingsController.php b/src/public/Controllers/Admin/SettingsController.php index e31edddf..5c0db45d 100644 --- a/src/public/Controllers/Admin/SettingsController.php +++ b/src/public/Controllers/Admin/SettingsController.php @@ -6,7 +6,14 @@ * GET /settings * Massive multi-tab form with ~80+ switchery toggles, select2 dropdowns, * 9 tabs (General, Security, API, Streaming, MAG, Web Player, Logs, Info, Database). + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class SettingsController extends BaseAdminController { public function index(): void diff --git a/src/public/Controllers/Admin/SettingsPlexController.php b/src/public/Controllers/Admin/SettingsPlexController.php index b19cf455..b5bcc098 100644 --- a/src/public/Controllers/Admin/SettingsPlexController.php +++ b/src/public/Controllers/Admin/SettingsPlexController.php @@ -6,7 +6,14 @@ * GET /settings_plex * Multi-tab form with plex scanner settings + movie/TV category mapping. * View content comes from modules/plex/views/. + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class SettingsPlexController extends BaseAdminController { public function index(): void diff --git a/src/public/Controllers/Admin/SettingsWatchController.php b/src/public/Controllers/Admin/SettingsWatchController.php index 686e5120..68b0901a 100644 --- a/src/public/Controllers/Admin/SettingsWatchController.php +++ b/src/public/Controllers/Admin/SettingsWatchController.php @@ -6,7 +6,14 @@ * GET /settings_watch * Multi-tab form with watch scanner settings + movie/TV category mapping. * View content comes from modules/watch/views/. + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class SettingsWatchController extends BaseAdminController { public function index(): void diff --git a/src/public/Controllers/Admin/SetupController.php b/src/public/Controllers/Admin/SetupController.php index ea302a53..7e902e3b 100644 --- a/src/public/Controllers/Admin/SetupController.php +++ b/src/public/Controllers/Admin/SetupController.php @@ -5,7 +5,14 @@ * * setup.php и database.php работают до полного bootstrap (возможно нет БД). * Оба файла содержат собственные HTML-документы. + * + * @package XC_VM_Public_Controllers_Admin + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class SetupController extends BaseAdminController { /** diff --git a/src/public/Controllers/Admin/StreamCategoriesController.php b/src/public/Controllers/Admin/StreamCategoriesController.php index 3a173727..7e1342c0 100644 --- a/src/public/Controllers/Admin/StreamCategoriesController.php +++ b/src/public/Controllers/Admin/StreamCategoriesController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class StreamCategoriesController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/StreamCategoryController.php b/src/public/Controllers/Admin/StreamCategoryController.php index 1e09ebb8..cc34d709 100644 --- a/src/public/Controllers/Admin/StreamCategoryController.php +++ b/src/public/Controllers/Admin/StreamCategoryController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class StreamCategoryController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/StreamController.php b/src/public/Controllers/Admin/StreamController.php index 88d37307..702f5ecc 100644 --- a/src/public/Controllers/Admin/StreamController.php +++ b/src/public/Controllers/Admin/StreamController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class StreamController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/StreamErrorsController.php b/src/public/Controllers/Admin/StreamErrorsController.php index 7e747fef..3e10743e 100644 --- a/src/public/Controllers/Admin/StreamErrorsController.php +++ b/src/public/Controllers/Admin/StreamErrorsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class StreamErrorsController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/StreamListController.php b/src/public/Controllers/Admin/StreamListController.php index 752d217a..55cc60ab 100644 --- a/src/public/Controllers/Admin/StreamListController.php +++ b/src/public/Controllers/Admin/StreamListController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class StreamListController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/StreamMassController.php b/src/public/Controllers/Admin/StreamMassController.php index 255a65b1..47fb296f 100644 --- a/src/public/Controllers/Admin/StreamMassController.php +++ b/src/public/Controllers/Admin/StreamMassController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class StreamMassController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/StreamRankController.php b/src/public/Controllers/Admin/StreamRankController.php index fcc074e0..832caaf9 100644 --- a/src/public/Controllers/Admin/StreamRankController.php +++ b/src/public/Controllers/Admin/StreamRankController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class StreamRankController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/StreamReviewController.php b/src/public/Controllers/Admin/StreamReviewController.php index ceb6f0de..8cfe2039 100644 --- a/src/public/Controllers/Admin/StreamReviewController.php +++ b/src/public/Controllers/Admin/StreamReviewController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class StreamReviewController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/StreamToolsController.php b/src/public/Controllers/Admin/StreamToolsController.php index d4a238e4..c40d4708 100644 --- a/src/public/Controllers/Admin/StreamToolsController.php +++ b/src/public/Controllers/Admin/StreamToolsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class StreamToolsController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/StreamViewController.php b/src/public/Controllers/Admin/StreamViewController.php index 06cb6994..ba4cda8d 100644 --- a/src/public/Controllers/Admin/StreamViewController.php +++ b/src/public/Controllers/Admin/StreamViewController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class StreamViewController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/TheftDetectionController.php b/src/public/Controllers/Admin/TheftDetectionController.php index 128192b3..5758b1aa 100644 --- a/src/public/Controllers/Admin/TheftDetectionController.php +++ b/src/public/Controllers/Admin/TheftDetectionController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class TheftDetectionController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/TicketController.php b/src/public/Controllers/Admin/TicketController.php index 3a16301c..70002107 100644 --- a/src/public/Controllers/Admin/TicketController.php +++ b/src/public/Controllers/Admin/TicketController.php @@ -1,6 +1,12 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class TicketController extends BaseAdminController { diff --git a/src/public/Controllers/Admin/TicketViewController.php b/src/public/Controllers/Admin/TicketViewController.php index c3b0066e..bb35d028 100644 --- a/src/public/Controllers/Admin/TicketViewController.php +++ b/src/public/Controllers/Admin/TicketViewController.php @@ -1,6 +1,12 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class TicketViewController extends BaseAdminController { diff --git a/src/public/Controllers/Admin/TicketsController.php b/src/public/Controllers/Admin/TicketsController.php index c2f07ca5..1f1b032a 100644 --- a/src/public/Controllers/Admin/TicketsController.php +++ b/src/public/Controllers/Admin/TicketsController.php @@ -1,6 +1,12 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class TicketsController extends BaseAdminController { diff --git a/src/public/Controllers/Admin/UserController.php b/src/public/Controllers/Admin/UserController.php index fd1e3393..9b61f483 100644 --- a/src/public/Controllers/Admin/UserController.php +++ b/src/public/Controllers/Admin/UserController.php @@ -1,6 +1,12 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class UserController extends BaseAdminController { diff --git a/src/public/Controllers/Admin/UserLogsController.php b/src/public/Controllers/Admin/UserLogsController.php index 13405eaa..06621b39 100644 --- a/src/public/Controllers/Admin/UserLogsController.php +++ b/src/public/Controllers/Admin/UserLogsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class UserLogsController extends BaseAdminController { public function index() { $this->requirePermission(); diff --git a/src/public/Controllers/Admin/UserMassController.php b/src/public/Controllers/Admin/UserMassController.php index c1efe17f..cf9bd95c 100644 --- a/src/public/Controllers/Admin/UserMassController.php +++ b/src/public/Controllers/Admin/UserMassController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class UserMassController extends BaseAdminController { public function index() { $this->requirePermission(); diff --git a/src/public/Controllers/Admin/UseragentController.php b/src/public/Controllers/Admin/UseragentController.php index 8bea84a6..c7573276 100644 --- a/src/public/Controllers/Admin/UseragentController.php +++ b/src/public/Controllers/Admin/UseragentController.php @@ -1,6 +1,12 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ class UseragentController extends BaseAdminController { diff --git a/src/public/Controllers/Admin/UseragentsController.php b/src/public/Controllers/Admin/UseragentsController.php index 74d1fe21..42f772e2 100644 --- a/src/public/Controllers/Admin/UseragentsController.php +++ b/src/public/Controllers/Admin/UseragentsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class UseragentsController extends BaseAdminController { public function index() { $this->requirePermission(); diff --git a/src/public/Controllers/Admin/UsersController.php b/src/public/Controllers/Admin/UsersController.php index 6012b8ff..d26e13d5 100644 --- a/src/public/Controllers/Admin/UsersController.php +++ b/src/public/Controllers/Admin/UsersController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class UsersController extends BaseAdminController { public function index() { $this->requirePermission(); diff --git a/src/public/Controllers/Admin/WatchAddController.php b/src/public/Controllers/Admin/WatchAddController.php index da01f7ea..1aca0b68 100644 --- a/src/public/Controllers/Admin/WatchAddController.php +++ b/src/public/Controllers/Admin/WatchAddController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class WatchAddController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Admin/WatchOutputController.php b/src/public/Controllers/Admin/WatchOutputController.php index feaef070..33172947 100644 --- a/src/public/Controllers/Admin/WatchOutputController.php +++ b/src/public/Controllers/Admin/WatchOutputController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class WatchOutputController extends BaseAdminController { public function index() diff --git a/src/public/Controllers/Api/AdminApiController.php b/src/public/Controllers/Api/AdminApiController.php index 82f173ab..ecdd8085 100644 --- a/src/public/Controllers/Api/AdminApiController.php +++ b/src/public/Controllers/Api/AdminApiController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class AdminApiController { public function index() { global $db; diff --git a/src/public/Controllers/Api/BaseApiController.php b/src/public/Controllers/Api/BaseApiController.php index 6d7a71ed..141b76b9 100644 --- a/src/public/Controllers/Api/BaseApiController.php +++ b/src/public/Controllers/Api/BaseApiController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class BaseApiController { protected $deny = true; protected $downloading = false; diff --git a/src/public/Controllers/Api/Enigma2ApiController.php b/src/public/Controllers/Api/Enigma2ApiController.php index 39e0e47f..e746e42c 100644 --- a/src/public/Controllers/Api/Enigma2ApiController.php +++ b/src/public/Controllers/Api/Enigma2ApiController.php @@ -5,7 +5,14 @@ * * Ранее определялся inline внутри switch/default в enigma2.php. * Вынесен на верхний уровень для корректной загрузки автолоадером. + * + * @package XC_VM_Public_Controllers_Api + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class SimpleXMLExtended extends SimpleXMLElement { public function addCData($rCData) { $rNode = dom_import_simplexml($this); diff --git a/src/public/Controllers/Api/EpgApiController.php b/src/public/Controllers/Api/EpgApiController.php index afa859f7..9f24ac8f 100644 --- a/src/public/Controllers/Api/EpgApiController.php +++ b/src/public/Controllers/Api/EpgApiController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class EpgApiController extends BaseApiController { protected $downloadType = 'epg'; diff --git a/src/public/Controllers/Api/InternalApiController.php b/src/public/Controllers/Api/InternalApiController.php index 2152fbdb..fab64eb3 100644 --- a/src/public/Controllers/Api/InternalApiController.php +++ b/src/public/Controllers/Api/InternalApiController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class InternalApiController { private $deny = true; diff --git a/src/public/Controllers/Api/PlayerApiController.php b/src/public/Controllers/Api/PlayerApiController.php index c1fc7dce..1d2b10db 100644 --- a/src/public/Controllers/Api/PlayerApiController.php +++ b/src/public/Controllers/Api/PlayerApiController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class PlayerApiController { private $deny = true; private $userInfo; diff --git a/src/public/Controllers/Api/PlaylistApiController.php b/src/public/Controllers/Api/PlaylistApiController.php index e59b2745..42975de7 100644 --- a/src/public/Controllers/Api/PlaylistApiController.php +++ b/src/public/Controllers/Api/PlaylistApiController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class PlaylistApiController extends BaseApiController { protected $downloadType = 'playlist'; diff --git a/src/public/Controllers/Api/ResellerRestApiController.php b/src/public/Controllers/Api/ResellerRestApiController.php index 5905976b..f1a4df61 100644 --- a/src/public/Controllers/Api/ResellerRestApiController.php +++ b/src/public/Controllers/Api/ResellerRestApiController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ResellerRestApiController { public function index() { global $db; diff --git a/src/public/Controllers/Api/XPluginApiController.php b/src/public/Controllers/Api/XPluginApiController.php index fb207e2b..ab9db547 100644 --- a/src/public/Controllers/Api/XPluginApiController.php +++ b/src/public/Controllers/Api/XPluginApiController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class XPluginApiController { private $deny = true; diff --git a/src/public/Controllers/Player/BasePlayerController.php b/src/public/Controllers/Player/BasePlayerController.php index a8d0680a..203dd2cf 100644 --- a/src/public/Controllers/Player/BasePlayerController.php +++ b/src/public/Controllers/Player/BasePlayerController.php @@ -14,7 +14,14 @@ * 3. renderUnifiedLayoutFooter('player') → player/footer.php * * @see BaseAdminController + * + * @package XC_VM_Public_Controllers_Player + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class BasePlayerController extends BaseAdminController { /** @var string Scope: 'player' */ diff --git a/src/public/Controllers/Player/EpisodesController.php b/src/public/Controllers/Player/EpisodesController.php index 2a5dfa4f..6ff6b0ce 100644 --- a/src/public/Controllers/Player/EpisodesController.php +++ b/src/public/Controllers/Player/EpisodesController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class EpisodesController extends BasePlayerController { public function index() diff --git a/src/public/Controllers/Player/HomeController.php b/src/public/Controllers/Player/HomeController.php index 97f605c0..e57feabf 100644 --- a/src/public/Controllers/Player/HomeController.php +++ b/src/public/Controllers/Player/HomeController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class HomeController extends BasePlayerController { public function index() diff --git a/src/public/Controllers/Player/ListingsController.php b/src/public/Controllers/Player/ListingsController.php index b1badbba..a469cb82 100644 --- a/src/public/Controllers/Player/ListingsController.php +++ b/src/public/Controllers/Player/ListingsController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ListingsController extends BasePlayerController { public function index() diff --git a/src/public/Controllers/Player/LiveController.php b/src/public/Controllers/Player/LiveController.php index fc50668d..8f5be93f 100644 --- a/src/public/Controllers/Player/LiveController.php +++ b/src/public/Controllers/Player/LiveController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class LiveController extends BasePlayerController { public function index() diff --git a/src/public/Controllers/Player/MoviesController.php b/src/public/Controllers/Player/MoviesController.php index 09ca69f3..a73e58bb 100644 --- a/src/public/Controllers/Player/MoviesController.php +++ b/src/public/Controllers/Player/MoviesController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class MoviesController extends BasePlayerController { public function index() diff --git a/src/public/Controllers/Player/PlayerLoginController.php b/src/public/Controllers/Player/PlayerLoginController.php index 90f9056d..5b6ec59c 100644 --- a/src/public/Controllers/Player/PlayerLoginController.php +++ b/src/public/Controllers/Player/PlayerLoginController.php @@ -5,7 +5,14 @@ * Migrated from player/login.php. * Handles its own bootstrap since the login page * must work without an active session. + * + * @package XC_VM_Public_Controllers_Player + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class PlayerLoginController { public function index() diff --git a/src/public/Controllers/Player/PlayerLogoutController.php b/src/public/Controllers/Player/PlayerLogoutController.php index 070515f6..2ae66af6 100644 --- a/src/public/Controllers/Player/PlayerLogoutController.php +++ b/src/public/Controllers/Player/PlayerLogoutController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class PlayerLogoutController extends BasePlayerController { public function index() diff --git a/src/public/Controllers/Player/PlayerMovieController.php b/src/public/Controllers/Player/PlayerMovieController.php index 529a4aa7..2d592219 100644 --- a/src/public/Controllers/Player/PlayerMovieController.php +++ b/src/public/Controllers/Player/PlayerMovieController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class PlayerMovieController extends BasePlayerController { public function index() diff --git a/src/public/Controllers/Player/PlayerProfileController.php b/src/public/Controllers/Player/PlayerProfileController.php index 8f629460..7bf2a204 100644 --- a/src/public/Controllers/Player/PlayerProfileController.php +++ b/src/public/Controllers/Player/PlayerProfileController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class PlayerProfileController extends BasePlayerController { public function index() diff --git a/src/public/Controllers/Player/PlayerProxyController.php b/src/public/Controllers/Player/PlayerProxyController.php index 0880803e..0e1542ec 100644 --- a/src/public/Controllers/Player/PlayerProxyController.php +++ b/src/public/Controllers/Player/PlayerProxyController.php @@ -5,7 +5,14 @@ * Migrated from player/proxy.php. * Decrypts subtitle URL and returns content as octet-stream. * Requires authenticated player session (bootstrap handles this). + * + * @package XC_VM_Public_Controllers_Player + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class PlayerProxyController extends BasePlayerController { public function index() diff --git a/src/public/Controllers/Player/PlayerResizeController.php b/src/public/Controllers/Player/PlayerResizeController.php index c1045e9c..658f3ebd 100644 --- a/src/public/Controllers/Player/PlayerResizeController.php +++ b/src/public/Controllers/Player/PlayerResizeController.php @@ -5,7 +5,14 @@ * Migrated from player/resize.php. * Resizes remote/local images and caches the result as PNG. * Requires authenticated player session (bootstrap handles this). + * + * @package XC_VM_Public_Controllers_Player + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class PlayerResizeController extends BasePlayerController { public function index() diff --git a/src/public/Controllers/Player/SeriesController.php b/src/public/Controllers/Player/SeriesController.php index 09534a16..19dead55 100644 --- a/src/public/Controllers/Player/SeriesController.php +++ b/src/public/Controllers/Player/SeriesController.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class SeriesController extends BasePlayerController { public function index() diff --git a/src/public/Controllers/Reseller/BaseResellerController.php b/src/public/Controllers/Reseller/BaseResellerController.php index 96432ba5..01da974d 100644 --- a/src/public/Controllers/Reseller/BaseResellerController.php +++ b/src/public/Controllers/Reseller/BaseResellerController.php @@ -8,7 +8,14 @@ * - requirePermission() → checkResellerPermissions() * * @see BaseAdminController + * + * @package XC_VM_Public_Controllers_Reseller + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class BaseResellerController extends BaseAdminController { /** @var string Scope: 'reseller' */ diff --git a/src/public/Controllers/Reseller/ResellerApiController.php b/src/public/Controllers/Reseller/ResellerApiController.php index e1cf1c33..aad5f6f3 100644 --- a/src/public/Controllers/Reseller/ResellerApiController.php +++ b/src/public/Controllers/Reseller/ResellerApiController.php @@ -8,7 +8,14 @@ * * Called via: GET/POST api?action=dashboard (or any other action). * Bootstrap (session + functions) is loaded by Front Controller before dispatch. + * + * @package XC_VM_Public_Controllers_Reseller + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerApiController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerCreatedChannelsController.php b/src/public/Controllers/Reseller/ResellerCreatedChannelsController.php index 66185787..fc557adc 100644 --- a/src/public/Controllers/Reseller/ResellerCreatedChannelsController.php +++ b/src/public/Controllers/Reseller/ResellerCreatedChannelsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerCreatedChannelsController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerDashboardController.php b/src/public/Controllers/Reseller/ResellerDashboardController.php index d43765e9..8dd5cd2e 100644 --- a/src/public/Controllers/Reseller/ResellerDashboardController.php +++ b/src/public/Controllers/Reseller/ResellerDashboardController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerDashboardController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerEditProfileController.php b/src/public/Controllers/Reseller/ResellerEditProfileController.php index 7437cfae..03ff9ba7 100644 --- a/src/public/Controllers/Reseller/ResellerEditProfileController.php +++ b/src/public/Controllers/Reseller/ResellerEditProfileController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerEditProfileController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerEnigmaController.php b/src/public/Controllers/Reseller/ResellerEnigmaController.php index 1ad9bf71..9e0294f8 100644 --- a/src/public/Controllers/Reseller/ResellerEnigmaController.php +++ b/src/public/Controllers/Reseller/ResellerEnigmaController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerEnigmaController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerEnigmasController.php b/src/public/Controllers/Reseller/ResellerEnigmasController.php index 54344411..73ac7078 100644 --- a/src/public/Controllers/Reseller/ResellerEnigmasController.php +++ b/src/public/Controllers/Reseller/ResellerEnigmasController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerEnigmasController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerEpgViewController.php b/src/public/Controllers/Reseller/ResellerEpgViewController.php index 1efa9d18..c95d4c83 100644 --- a/src/public/Controllers/Reseller/ResellerEpgViewController.php +++ b/src/public/Controllers/Reseller/ResellerEpgViewController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerEpgViewController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerEpisodesController.php b/src/public/Controllers/Reseller/ResellerEpisodesController.php index 04fcfd00..bf841850 100644 --- a/src/public/Controllers/Reseller/ResellerEpisodesController.php +++ b/src/public/Controllers/Reseller/ResellerEpisodesController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerEpisodesController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerLineActivityController.php b/src/public/Controllers/Reseller/ResellerLineActivityController.php index e365bc68..101ac766 100644 --- a/src/public/Controllers/Reseller/ResellerLineActivityController.php +++ b/src/public/Controllers/Reseller/ResellerLineActivityController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerLineActivityController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerLineController.php b/src/public/Controllers/Reseller/ResellerLineController.php index c44efb78..f957d10b 100644 --- a/src/public/Controllers/Reseller/ResellerLineController.php +++ b/src/public/Controllers/Reseller/ResellerLineController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerLineController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerLinesController.php b/src/public/Controllers/Reseller/ResellerLinesController.php index 75deb517..6ce79143 100644 --- a/src/public/Controllers/Reseller/ResellerLinesController.php +++ b/src/public/Controllers/Reseller/ResellerLinesController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerLinesController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerLiveConnectionsController.php b/src/public/Controllers/Reseller/ResellerLiveConnectionsController.php index f1168058..666176c4 100644 --- a/src/public/Controllers/Reseller/ResellerLiveConnectionsController.php +++ b/src/public/Controllers/Reseller/ResellerLiveConnectionsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerLiveConnectionsController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerLoginController.php b/src/public/Controllers/Reseller/ResellerLoginController.php index 7908839d..f9ebab86 100644 --- a/src/public/Controllers/Reseller/ResellerLoginController.php +++ b/src/public/Controllers/Reseller/ResellerLoginController.php @@ -5,7 +5,14 @@ * Migrated from reseller/login.php. * This controller handles its own bootstrap since the login page * must work without an active session. + * + * @package XC_VM_Public_Controllers_Reseller + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerLoginController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerLogoutController.php b/src/public/Controllers/Reseller/ResellerLogoutController.php index f4028207..87e27595 100644 --- a/src/public/Controllers/Reseller/ResellerLogoutController.php +++ b/src/public/Controllers/Reseller/ResellerLogoutController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerLogoutController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerMagController.php b/src/public/Controllers/Reseller/ResellerMagController.php index 8bd1f4e7..ca613d24 100644 --- a/src/public/Controllers/Reseller/ResellerMagController.php +++ b/src/public/Controllers/Reseller/ResellerMagController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerMagController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerMagsController.php b/src/public/Controllers/Reseller/ResellerMagsController.php index e5bdcb34..e2baccf6 100644 --- a/src/public/Controllers/Reseller/ResellerMagsController.php +++ b/src/public/Controllers/Reseller/ResellerMagsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerMagsController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerMoviesController.php b/src/public/Controllers/Reseller/ResellerMoviesController.php index 58082a90..c1f74445 100644 --- a/src/public/Controllers/Reseller/ResellerMoviesController.php +++ b/src/public/Controllers/Reseller/ResellerMoviesController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerMoviesController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerPostController.php b/src/public/Controllers/Reseller/ResellerPostController.php index 79b2127d..b7802bba 100644 --- a/src/public/Controllers/Reseller/ResellerPostController.php +++ b/src/public/Controllers/Reseller/ResellerPostController.php @@ -8,7 +8,14 @@ * Called via: POST post?action=line (or via submitForm/callbackForm JS). * * @see Views/layouts/reseller/post.scripts.php (JS functions) + * + * @package XC_VM_Public_Controllers_Reseller + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerPostController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerRadiosController.php b/src/public/Controllers/Reseller/ResellerRadiosController.php index c56861b6..ec945f22 100644 --- a/src/public/Controllers/Reseller/ResellerRadiosController.php +++ b/src/public/Controllers/Reseller/ResellerRadiosController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerRadiosController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerResizeController.php b/src/public/Controllers/Reseller/ResellerResizeController.php index 48de7d1b..50762f3e 100644 --- a/src/public/Controllers/Reseller/ResellerResizeController.php +++ b/src/public/Controllers/Reseller/ResellerResizeController.php @@ -5,7 +5,14 @@ * Migrated from reseller/resize.php. * Resizes remote/local images and caches the result as PNG. * Returns 1x1 transparent PNG on failure. + * + * @package XC_VM_Public_Controllers_Reseller + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerResizeController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerSessionController.php b/src/public/Controllers/Reseller/ResellerSessionController.php index 1566ad20..375dc23f 100644 --- a/src/public/Controllers/Reseller/ResellerSessionController.php +++ b/src/public/Controllers/Reseller/ResellerSessionController.php @@ -12,7 +12,14 @@ * * @see src/reseller/session.php (legacy endpoint, nginx direct access) * @see src/public/Views/layouts/reseller/footer.php (pingSession JS) + * + * @package XC_VM_Public_Controllers_Reseller + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerSessionController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerStreamsController.php b/src/public/Controllers/Reseller/ResellerStreamsController.php index 4ba87b21..94b6becb 100644 --- a/src/public/Controllers/Reseller/ResellerStreamsController.php +++ b/src/public/Controllers/Reseller/ResellerStreamsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerStreamsController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerTableController.php b/src/public/Controllers/Reseller/ResellerTableController.php index 054c3743..a324cc25 100644 --- a/src/public/Controllers/Reseller/ResellerTableController.php +++ b/src/public/Controllers/Reseller/ResellerTableController.php @@ -7,7 +7,14 @@ * line_activity, live_connections, reg_user_logs, reg_users. * * Supports both session-based access and API key access. + * + * @package XC_VM_Public_Controllers_Reseller + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerTableController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerTicketController.php b/src/public/Controllers/Reseller/ResellerTicketController.php index 886174ce..90571d40 100644 --- a/src/public/Controllers/Reseller/ResellerTicketController.php +++ b/src/public/Controllers/Reseller/ResellerTicketController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerTicketController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerTicketViewController.php b/src/public/Controllers/Reseller/ResellerTicketViewController.php index 445c38e4..65b8c66e 100644 --- a/src/public/Controllers/Reseller/ResellerTicketViewController.php +++ b/src/public/Controllers/Reseller/ResellerTicketViewController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerTicketViewController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerTicketsController.php b/src/public/Controllers/Reseller/ResellerTicketsController.php index e317674c..4b6b04df 100644 --- a/src/public/Controllers/Reseller/ResellerTicketsController.php +++ b/src/public/Controllers/Reseller/ResellerTicketsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerTicketsController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerUserController.php b/src/public/Controllers/Reseller/ResellerUserController.php index b281e30c..b709ea89 100644 --- a/src/public/Controllers/Reseller/ResellerUserController.php +++ b/src/public/Controllers/Reseller/ResellerUserController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerUserController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerUserLogsController.php b/src/public/Controllers/Reseller/ResellerUserLogsController.php index e18180fc..77e47486 100644 --- a/src/public/Controllers/Reseller/ResellerUserLogsController.php +++ b/src/public/Controllers/Reseller/ResellerUserLogsController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerUserLogsController extends BaseResellerController { public function index() diff --git a/src/public/Controllers/Reseller/ResellerUsersController.php b/src/public/Controllers/Reseller/ResellerUsersController.php index bc5762a4..2f32d561 100644 --- a/src/public/Controllers/Reseller/ResellerUsersController.php +++ b/src/public/Controllers/Reseller/ResellerUsersController.php @@ -1,7 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ResellerUsersController extends BaseResellerController { public function index() diff --git a/src/public/index.php b/src/public/index.php index 24000c29..f0a360fd 100644 --- a/src/public/index.php +++ b/src/public/index.php @@ -78,6 +78,12 @@ * @see bin/nginx/conf/codes/template * @see public/routes/admin.php * @see public/routes/api.php + * + * @package XC_VM_Public + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ // ───────────────────────────────────────────────────────────────── diff --git a/src/public/routes/admin.php b/src/public/routes/admin.php index d6c3677b..37c9a6c7 100644 --- a/src/public/routes/admin.php +++ b/src/public/routes/admin.php @@ -9,6 +9,12 @@ * * @see public/index.php * @see core/Http/Router.php + * + * @package XC_VM_Public_Routes + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ // ─── List Pages (Phase 6.3) ──────────────────────────────────── diff --git a/src/public/routes/player.php b/src/public/routes/player.php index c19d5b74..473e26fa 100644 --- a/src/public/routes/player.php +++ b/src/public/routes/player.php @@ -9,6 +9,12 @@ * * @see public/index.php * @see core/Http/Router.php + * + * @package XC_VM_Public_Routes + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ // ─── Standard Pages (Controller + View) ──────────────────────── diff --git a/src/public/routes/reseller.php b/src/public/routes/reseller.php index 5efe3b10..38b94840 100644 --- a/src/public/routes/reseller.php +++ b/src/public/routes/reseller.php @@ -9,6 +9,12 @@ * * @see public/index.php * @see core/Http/Router.php + * + * @package XC_VM_Public_Routes + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ // ─── Dashboard & Profile (Phase 6.4) ─────────────────────────── diff --git a/src/streaming/Auth/StreamAuth.php b/src/streaming/Auth/StreamAuth.php index 33677687..b3104192 100644 --- a/src/streaming/Auth/StreamAuth.php +++ b/src/streaming/Auth/StreamAuth.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class StreamAuth { public static function checkAccess($rServers, $rSettings, $rUserInfo, $rUserIP, $rCountryCode, $rUserISP = '') { $rAvailableServers = array(); diff --git a/src/streaming/Auth/StreamAuthMiddleware.php b/src/streaming/Auth/StreamAuthMiddleware.php index ddf66044..44dd9205 100644 --- a/src/streaming/Auth/StreamAuthMiddleware.php +++ b/src/streaming/Auth/StreamAuthMiddleware.php @@ -8,7 +8,14 @@ * - Дешифровка и базовая валидация токена * * Ограничение: static-only, без DI-container. Globals через параметры. + * + * @package XC_VM_Streaming_Auth + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class StreamAuthMiddleware { /** diff --git a/src/streaming/Balancer/ProxySelector.php b/src/streaming/Balancer/ProxySelector.php index e0277b6d..676911be 100644 --- a/src/streaming/Balancer/ProxySelector.php +++ b/src/streaming/Balancer/ProxySelector.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ProxySelector { public static function availableProxy($rServers, $rProxies, $rCountryCode, $rUserISP = '', $rSettings = null) { if (empty($rProxies)) { diff --git a/src/streaming/Codec/FFmpegCommand.php b/src/streaming/Codec/FFmpegCommand.php index bfa7e37d..4390e1dc 100644 --- a/src/streaming/Codec/FFmpegCommand.php +++ b/src/streaming/Codec/FFmpegCommand.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class FFmpegCommand { public static function createChannelItem($rStreamID, $rSource) { return StreamProcess::createChannelItem($rStreamID, $rSource); diff --git a/src/streaming/Codec/FFprobeRunner.php b/src/streaming/Codec/FFprobeRunner.php index 3db9e66c..d6b8235f 100644 --- a/src/streaming/Codec/FFprobeRunner.php +++ b/src/streaming/Codec/FFprobeRunner.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class FFprobeRunner { public static function probeStream($rSourceURL, $rFetchArguments = array(), $rPrepend = '', $rParse = true) { global $rSettings, $rFFPROBE; diff --git a/src/streaming/Codec/FfmpegPaths.php b/src/streaming/Codec/FfmpegPaths.php index d82ddfaa..4ae51460 100644 --- a/src/streaming/Codec/FfmpegPaths.php +++ b/src/streaming/Codec/FfmpegPaths.php @@ -4,7 +4,14 @@ * FfmpegPaths — value-object holding FFmpeg/FFprobe binary paths. * * Resolves paths once based on the configured ffmpeg version from settings. + * + * @package XC_VM_Streaming_Codec + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class FfmpegPaths { private static $cpu = null; private static $gpu = null; diff --git a/src/streaming/Delivery/HLSGenerator.php b/src/streaming/Delivery/HLSGenerator.php index 2843a421..9e6806c8 100644 --- a/src/streaming/Delivery/HLSGenerator.php +++ b/src/streaming/Delivery/HLSGenerator.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class HLSGenerator { public static function generateHLS($rSettings, $rM3U8, $rUsername, $rPassword, $rStreamID, $rUUID, $rIP, $rIsHMAC = null, $rIdentifier = '', $rVideoCodec = 'h264', $rOnDemand = 0, $rServerID = null, $rProxyID = null) { if (!file_exists($rM3U8)) { diff --git a/src/streaming/Delivery/OffAirHandler.php b/src/streaming/Delivery/OffAirHandler.php index 3c9fe12f..d97bdc3d 100644 --- a/src/streaming/Delivery/OffAirHandler.php +++ b/src/streaming/Delivery/OffAirHandler.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class OffAirHandler { public static function getOffAirVideo($rSettings, $rPathKey) { if (!(isset($rSettings[$rPathKey]) && 0 < strlen($rSettings[$rPathKey]))) { diff --git a/src/streaming/Delivery/SegmentReader.php b/src/streaming/Delivery/SegmentReader.php index 7382f053..3e7cc350 100644 --- a/src/streaming/Delivery/SegmentReader.php +++ b/src/streaming/Delivery/SegmentReader.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class SegmentReader { public static function getLLODSegments($rStreamID, $rPlaylist, $rPrebuffer = 1) { $rPrebuffer++; diff --git a/src/streaming/Delivery/SignalSender.php b/src/streaming/Delivery/SignalSender.php index a4d91ef6..8dc76396 100644 --- a/src/streaming/Delivery/SignalSender.php +++ b/src/streaming/Delivery/SignalSender.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class SignalSender { public static function sendSignal($rFFMPEG_CPU, $rSignalData, $rSegmentFile, $rCodec = 'h264', $rReturn = false) { if (empty($rSignalData['xy_offset'])) { diff --git a/src/streaming/Delivery/StreamRedirector.php b/src/streaming/Delivery/StreamRedirector.php index 7d3ffbc5..44b2f497 100644 --- a/src/streaming/Delivery/StreamRedirector.php +++ b/src/streaming/Delivery/StreamRedirector.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class StreamRedirector { public static function redirectStream($rCached, $rSettings, $rServers, $rStreamID, $rExtension, $rUserInfo, $rCountryCode, $rUserISP = '', $rType = '') { if ($rCached) { diff --git a/src/streaming/Health/ProcessChecker.php b/src/streaming/Health/ProcessChecker.php index 248587fe..2a0ebc35 100644 --- a/src/streaming/Health/ProcessChecker.php +++ b/src/streaming/Health/ProcessChecker.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ProcessChecker { public static function isPIDsRunning($rServerIDS, $rPIDs, $rEXE) { global $rServers; diff --git a/src/streaming/Lifecycle/ShutdownHandler.php b/src/streaming/Lifecycle/ShutdownHandler.php index 0021e6a6..9a6af361 100644 --- a/src/streaming/Lifecycle/ShutdownHandler.php +++ b/src/streaming/Lifecycle/ShutdownHandler.php @@ -8,7 +8,14 @@ * * Использование: * register_shutdown_function([ShutdownHandler::class, 'handle'], 'live'); + * + * @package XC_VM_Streaming_Lifecycle + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ + class ShutdownHandler { /** diff --git a/src/streaming/Protection/ConnectionLimiter.php b/src/streaming/Protection/ConnectionLimiter.php index 0d51a91f..1ba59637 100644 --- a/src/streaming/Protection/ConnectionLimiter.php +++ b/src/streaming/Protection/ConnectionLimiter.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class ConnectionLimiter { public static function writeOfflineActivity($rServerID, $rProxyID, $rUserID, $rStreamID, $rStart, $rUserAgent, $rIP, $rExtension, $rGeoIP, $rISP, $rExternalDevice = '', $rDivergence = 0, $rIsHMAC = null, $rIdentifier = '') { global $rSettings; diff --git a/src/streaming/StreamingBootstrap.php b/src/streaming/StreamingBootstrap.php index 21c82072..53308008 100644 --- a/src/streaming/StreamingBootstrap.php +++ b/src/streaming/StreamingBootstrap.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + class StreamingBootstrap { public static function bootstrap($rFilename, $rSettings) { $rProbeEndpoints = array('probe', 'player_api'); diff --git a/src/www/admin/api.php b/src/www/admin/api.php index 23b57555..d246032e 100644 --- a/src/www/admin/api.php +++ b/src/www/admin/api.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + register_shutdown_function('shutdown'); set_time_limit(0); require '../init.php'; diff --git a/src/www/admin/index.php b/src/www/admin/index.php index d05dc768..9c4a3a38 100644 --- a/src/www/admin/index.php +++ b/src/www/admin/index.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + echo "\r\n404 Not Found\r\n\r\n

404 Not Found

\r\n
nginx
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"; http_response_code(404); diff --git a/src/www/admin/live.php b/src/www/admin/live.php index 60c91358..878eef3b 100644 --- a/src/www/admin/live.php +++ b/src/www/admin/live.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + register_shutdown_function('shutdown'); header('Access-Control-Allow-Origin: *'); set_time_limit(0); diff --git a/src/www/admin/proxy_api.php b/src/www/admin/proxy_api.php index 5f3befd7..741da03a 100644 --- a/src/www/admin/proxy_api.php +++ b/src/www/admin/proxy_api.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + set_time_limit(0); require '../init.php'; $rSignals = array(); diff --git a/src/www/admin/thumb.php b/src/www/admin/thumb.php index 0916ed19..d087b19f 100644 --- a/src/www/admin/thumb.php +++ b/src/www/admin/thumb.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + register_shutdown_function('shutdown'); header('Access-Control-Allow-Origin: *'); set_time_limit(0); diff --git a/src/www/admin/timeshift.php b/src/www/admin/timeshift.php index 481fc57a..fb92187d 100644 --- a/src/www/admin/timeshift.php +++ b/src/www/admin/timeshift.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + register_shutdown_function('shutdown'); header('Access-Control-Allow-Origin: *'); set_time_limit(0); diff --git a/src/www/admin/vod.php b/src/www/admin/vod.php index 9949ec62..889cb3ef 100644 --- a/src/www/admin/vod.php +++ b/src/www/admin/vod.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + register_shutdown_function('shutdown'); header('Access-Control-Allow-Origin: *'); set_time_limit(0); diff --git a/src/www/constants.php b/src/www/constants.php index 6993f847..fcbea83f 100644 --- a/src/www/constants.php +++ b/src/www/constants.php @@ -23,6 +23,12 @@ * 6. Binaries → FFMPEG_*, FFPROBE_*, GeoIP, PHP_BIN * 7. ConfigLoader → $_INFO из config.ini * 8. RequestGuard → flood/host check + Logger::init() + * + * @package XC_VM_Web + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ // ───────────────────────────────────────────────────────────────── diff --git a/src/www/init.php b/src/www/init.php index 22844e28..05163e45 100644 --- a/src/www/init.php +++ b/src/www/init.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once 'constants.php'; require_once MAIN_HOME . 'core/Init/LegacyInitializer.php'; require_once MAIN_HOME . 'core/Database/DatabaseHandler.php'; diff --git a/src/www/probe.php b/src/www/probe.php index 03a9cf3a..0f85041a 100644 --- a/src/www/probe.php +++ b/src/www/probe.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + register_shutdown_function('shutdown'); include './stream/init.php'; diff --git a/src/www/progress.php b/src/www/progress.php index a3f91599..e8f5f70a 100644 --- a/src/www/progress.php +++ b/src/www/progress.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + ignore_user_abort(true); require 'constants.php'; $rPost = trim(file_get_contents('php://input')); diff --git a/src/www/stream/auth.php b/src/www/stream/auth.php index 285a8d26..9508b65c 100644 --- a/src/www/stream/auth.php +++ b/src/www/stream/auth.php @@ -1,5 +1,14 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ header('Cache-Control: no-store, no-cache, must-revalidate'); ini_set('display_errors', 0); diff --git a/src/www/stream/index.php b/src/www/stream/index.php index e40bdaa8..06fd3e28 100644 --- a/src/www/stream/index.php +++ b/src/www/stream/index.php @@ -9,6 +9,12 @@ * entry point. * * Overhead: один array lookup (< 0.1ms). + * + * @package XC_VM_Web_Stream + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ $rHandler = isset($_GET['handler']) ? $_GET['handler'] : null; diff --git a/src/www/stream/init.php b/src/www/stream/init.php index 58f012b9..87d73940 100644 --- a/src/www/stream/init.php +++ b/src/www/stream/init.php @@ -15,6 +15,12 @@ * - Flood/host checks via $argc (not isset($_SERVER["argc"])) * - $rSettings from cache with stream-specific defaults (exit, enable_cache) * - Routing switch($rFilename) by endpoint type + * + * @package XC_VM_Web_Stream + * @author Divarion_D + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html */ // ----------------------------------------------------------------- diff --git a/src/www/stream/key.php b/src/www/stream/key.php index 5e6b6ff1..ddf27be8 100644 --- a/src/www/stream/key.php +++ b/src/www/stream/key.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + header('Access-Control-Allow-Origin: *'); require_once 'init.php'; $rSettings = igbinary_unserialize(file_get_contents(CACHE_TMP_PATH . 'settings')); diff --git a/src/www/stream/live.php b/src/www/stream/live.php index 94b6b8cc..6aa00903 100644 --- a/src/www/stream/live.php +++ b/src/www/stream/live.php @@ -1,4 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + set_time_limit(0); require_once "init.php"; register_shutdown_function([ShutdownHandler::class, 'handle'], 'live'); diff --git a/src/www/stream/rtmp.php b/src/www/stream/rtmp.php index 0c00a0e7..45fe7e0d 100644 --- a/src/www/stream/rtmp.php +++ b/src/www/stream/rtmp.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + if (!($_GET['addr'] == '127.0.0.1' && $_GET['call'] == 'publish')) { register_shutdown_function('shutdown'); set_time_limit(0); diff --git a/src/www/stream/segment.php b/src/www/stream/segment.php index 7242bd35..c82e15f2 100644 --- a/src/www/stream/segment.php +++ b/src/www/stream/segment.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + header('Access-Control-Allow-Origin: *'); header('X-Content-Type-Options: nosniff'); set_time_limit(0); diff --git a/src/www/stream/subtitle.php b/src/www/stream/subtitle.php index 1753f3cc..306d1dbe 100644 --- a/src/www/stream/subtitle.php +++ b/src/www/stream/subtitle.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once 'init.php'; header('Access-Control-Allow-Origin: *'); diff --git a/src/www/stream/thumb.php b/src/www/stream/thumb.php index 832502dc..20b28d7a 100644 --- a/src/www/stream/thumb.php +++ b/src/www/stream/thumb.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + require_once 'init.php'; header('Access-Control-Allow-Origin: *'); diff --git a/src/www/stream/timeshift.php b/src/www/stream/timeshift.php index 484f3640..c1dd4d0e 100644 --- a/src/www/stream/timeshift.php +++ b/src/www/stream/timeshift.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + set_time_limit(0); require_once 'init.php'; register_shutdown_function([ShutdownHandler::class, 'handle'], 'timeshift'); diff --git a/src/www/stream/vod.php b/src/www/stream/vod.php index 6d72b043..778c708d 100644 --- a/src/www/stream/vod.php +++ b/src/www/stream/vod.php @@ -1,5 +1,15 @@ + * @copyright 2025-2026 Vateron Media + * @link https://github.com/Vateron-Media/XC_VM + * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html + */ + set_time_limit(0); require_once 'init.php'; register_shutdown_function([ShutdownHandler::class, 'handle'], 'vod'); diff --git a/tools/add_headers.php b/tools/add_headers.php new file mode 100644 index 00000000..84f1efda --- /dev/null +++ b/tools/add_headers.php @@ -0,0 +1,306 @@ +#!/usr/bin/env php +', + ' * @copyright 2025-2026 Vateron Media', + ' * @link https://github.com/Vateron-Media/XC_VM', + ' * @version 0.1.0', + ' * @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html', +]; +$fixedMeta = implode("\n", $metaLines); + +// ── Path-based descriptions for procedural files ──────────────── + +$pathDescriptions = [ + 'autoload.php' => 'XC_VM class autoloader', + 'bootstrap.php' => 'Application bootstrap — init core services', + 'console.php' => 'CLI entry point — command dispatcher', + 'config/modules.php' => 'Module registration configuration', + 'includes/admin.php' => 'Admin panel legacy functions', + 'includes/reseller_api.php' => 'Reseller API handler', + 'includes/ts.php' => 'Timeshift stream handler', + 'includes/api/admin/table.php' => 'Admin DataTables JSON API', + 'includes/api/reseller/table.php' => 'Reseller DataTables JSON API', + 'includes/data/permissions.php' => 'Permission definitions', + 'www/constants.php' => 'Web application constants', + 'www/init.php' => 'Web request initialization', + 'www/probe.php' => 'Stream probe endpoint', + 'www/progress.php' => 'Stream progress endpoint', + 'www/admin/api.php' => 'Admin API entry point', + 'www/admin/index.php' => 'Admin web entry point', + 'www/admin/live.php' => 'Admin live stream handler', + 'www/admin/proxy_api.php' => 'Proxy API handler', + 'www/admin/thumb.php' => 'Thumbnail generator endpoint', + 'www/admin/timeshift.php' => 'Admin timeshift handler', + 'www/admin/vod.php' => 'Admin VOD handler', + 'www/stream/auth.php' => 'Stream authentication and session handler', + 'www/stream/index.php' => 'Stream routing entry point', + 'www/stream/init.php' => 'Streaming bootstrap — core require chain', + 'www/stream/key.php' => 'HLS encryption key endpoint', + 'www/stream/live.php' => 'Live stream delivery endpoint', + 'www/stream/rtmp.php' => 'RTMP stream handler', + 'www/stream/segment.php' => 'HLS segment delivery endpoint', + 'www/stream/subtitle.php' => 'Subtitle delivery endpoint', + 'www/stream/thumb.php' => 'Stream thumbnail endpoint', + 'www/stream/timeshift.php' => 'Timeshift stream endpoint', + 'www/stream/vod.php' => 'VOD stream delivery endpoint', + 'cli/migration_logic.php' => 'Database migration logic', + 'public/index.php' => 'Public HTTP entry point — router dispatch', + 'public/routes/admin.php' => 'Admin panel route definitions', + 'public/routes/player.php' => 'Player route definitions', + 'public/routes/reseller.php' => 'Reseller panel route definitions', + 'infrastructure/bootstrap/admin_functions_fc.php' => 'Admin helper functions bootstrap', + 'infrastructure/bootstrap/admin_session_fc.php' => 'Admin session initialization', + 'infrastructure/bootstrap/player_functions.php' => 'Player helper functions bootstrap', + 'infrastructure/bootstrap/player_session.php' => 'Player session initialization', + 'infrastructure/bootstrap/player_utility_functions.php' => 'Player utility functions', + 'infrastructure/bootstrap/reseller_functions.php' => 'Reseller helper functions bootstrap', + 'infrastructure/bootstrap/reseller_session.php' => 'Reseller session initialization', + 'infrastructure/legacy/player_resize_body.php' => 'Player resize table body (legacy)', + 'infrastructure/legacy/reseller_api_actions.php' => 'Reseller API action handlers (legacy)', + 'infrastructure/legacy/reseller_resize_body.php' => 'Reseller resize table body (legacy)', + 'infrastructure/legacy/reseller_table_body.php' => 'Reseller table body renderer (legacy)', +]; + +// ── Collect files ─────────────────────────────────────────────── + +$iterator = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($basePath, FilesystemIterator::SKIP_DOTS) +); + +$files = []; +foreach ($iterator as $file) { + if ($file->getExtension() !== 'php') continue; + + $rel = str_replace($basePath . '/', '', $file->getPathname()); + + $skip = false; + foreach ($excludeDirs as $dir) { + if (strpos($rel, $dir) === 0) { $skip = true; break; } + } + if ($skip) continue; + if (in_array($rel, $excludeFiles)) continue; + foreach ($excludePatterns as $pat) { + if (preg_match($pat, $rel)) { $skip = true; break; } + } + if ($skip) continue; + + $files[] = $file->getPathname(); +} + +sort($files); + +echo "Found " . count($files) . " files to process\n"; +if ($dryRun) echo "[DRY RUN MODE]\n"; +echo str_repeat('─', 60) . "\n"; + +$added = 0; +$merged = 0; +$skipped = 0; +$errors = 0; + +foreach ($files as $filepath) { + $rel = str_replace($basePath . '/', '', $filepath); + $content = file_get_contents($filepath); + + // Skip if already has our metadata + if (preg_match('/@author\s+Divarion_D/', $content)) { + echo " SKIP (has header): {$rel}\n"; + $skipped++; + continue; + } + + $package = buildPackage($rel); + $description = buildDescription($rel, $content, $pathDescriptions); + + // ── Strip shebang for uniform processing ──────────────────── + $shebang = ''; + $body = $content; + if (strpos($content, '#!') === 0) { + $nlPos = strpos($content, "\n"); + $shebang = substr($content, 0, $nlPos + 1); + $body = substr($content, $nlPos + 1); + } + + // ── Check for existing docblock after 'XC_VM_Core', + 'domain' => 'XC_VM_Domain', + 'cli' => 'XC_VM_CLI', + 'infrastructure' => 'XC_VM_Infrastructure', + 'streaming' => 'XC_VM_Streaming', + 'modules' => 'XC_VM_Module', + 'public' => 'XC_VM_Public', + 'includes' => 'XC_VM_Includes', + 'www' => 'XC_VM_Web', + 'config' => 'XC_VM_Config', + 'signals' => 'XC_VM_Signals', + ]; + + if (empty($parts) || $parts[0] === '.') { + return 'XC_VM'; + } + + $prefix = $map[$parts[0]] ?? 'XC_VM'; + $sub = array_slice($parts, 1); + + if (empty($sub)) { + return $prefix; + } + + $subParts = array_map(function ($p) { + return str_replace(' ', '', ucwords(str_replace(['_', '-'], ' ', $p))); + }, $sub); + + return $prefix . '_' . implode('_', $subParts); +} + +function buildDescription(string $rel, string $content, array $pathDescriptions): string { + if (isset($pathDescriptions[$rel])) { + return $pathDescriptions[$rel]; + } + + // Extract class/interface/trait name + if (preg_match('/^\s*(abstract\s+)?class\s+(\w+)/m', $content, $m)) { + return $m[2] . ' — ' . classToDescription($m[2]); + } + if (preg_match('/^\s*interface\s+(\w+)/m', $content, $m)) { + return $m[1] . ' interface'; + } + if (preg_match('/^\s*trait\s+(\w+)/m', $content, $m)) { + return $m[1] . ' trait'; + } + + // Fallback: path-based + $dir = basename(dirname($rel)); + $filename = pathinfo($rel, PATHINFO_FILENAME); + if ($dir !== '.') { + return ucfirst($dir) . '/' . $filename . ' handler'; + } + return ucfirst($filename); +} + +function classToDescription(string $className): string { + $words = preg_split('/(?=[A-Z])/', $className, -1, PREG_SPLIT_NO_EMPTY); + $words = array_map('strtolower', $words); + + $suffixes = ['controller', 'service', 'repository', 'command', 'handler', 'manager', 'factory', + 'interface', 'trait', 'module', 'cron', 'job', 'guard', 'loader', 'reader', 'runner', + 'resolver', 'dispatcher', 'validator', 'generator', 'tracker', 'sorter', 'selector']; + + $lastWord = end($words); + $prefix = array_slice($words, 0, -1); + + if (in_array($lastWord, $suffixes) && count($prefix) > 0) { + return implode(' ', $prefix) . ' ' . $lastWord; + } + + return implode(' ', $words); +}