Files
Atomcms-edit/app/Console/Kernel.php
T
root 0c6c558a59 Add radio embed widget, SSE real-time, song history, moderation panel, and Auto DJ
- Embed widget: standalone iframe player with dark/light/transparent themes, copy-paste embed code admin page
- Real-time SSE: streaming now-playing/listeners/dj events, replaces polling in radio-player and embed
- Song history: auto-records song changes to radio_song_plays table, Filament resource to view
- DJ moderation: unified panel for shouts approval, song request queue, DJ applications
- Auto DJ: playlist management with round-robin playback when no DJ is live
- Refactored radio-player Alpine component to use EventSource API with auto-reconnect
2026-05-24 14:07:32 +02:00

55 lines
2.2 KiB
PHP
Executable File

<?php
declare(strict_types=1);
namespace App\Console;
use App\Console\Commands\AutoUpdateCommand;
use App\Console\Commands\DDoSDetectionCommand;
use App\Console\Commands\EmulatorMonitorCommand;
use App\Console\Commands\EmulatorUpdateCommand;
use App\Console\Commands\FixCodeCommand;
use App\Console\Commands\GenerateNitroConfigs;
use App\Console\Commands\NitroUpdateCommand;
use App\Console\Commands\SystemCheckCommand;
use App\Console\Commands\SystemHealthCommand;
use App\Console\Commands\SystemRepairCommand;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
#[\Override]
protected function schedule(Schedule $schedule): void
{
$schedule->command('radio:check-dj')->everyMinute()->withoutOverlapping();
$schedule->command('radio:record-songs')->everyFifteenSeconds()->withoutOverlapping();
$schedule->command('radio:auto-dj')->everyMinute()->withoutOverlapping();
$schedule->command('maintenance:check-scheduled')->everyMinute()->withoutOverlapping();
$schedule->command('monitor:emulator')->everyMinute()->withoutOverlapping();
$schedule->command('monitor:ddos')->everyFiveMinutes()->withoutOverlapping();
$schedule->command('update:auto')->everyMinute()->withoutOverlapping();
$schedule->command('nitro:auto')->everyMinute()->withoutOverlapping();
$schedule->command('system:repair')->everyTenMinutes()->withoutOverlapping();
}
#[\Override]
protected function commands(): void
{
$this->load(__DIR__ . '/Commands');
$this->commands[] = SystemCheckCommand::class;
$this->commands[] = FixCodeCommand::class;
$this->commands[] = EmulatorMonitorCommand::class;
$this->commands[] = DDoSDetectionCommand::class;
$this->commands[] = EmulatorUpdateCommand::class;
$this->commands[] = AutoUpdateCommand::class;
$this->commands[] = NitroUpdateCommand::class;
$this->commands[] = SystemRepairCommand::class;
$this->commands[] = SystemHealthCommand::class;
$this->commands[] = GenerateNitroConfigs::class;
require base_path('routes/console.php');
}
}