The four overlays that read /data/playlist.js (loading, goodbye,
music-box, music/nc) only ever consumed `tracks.length` for cosmetic
"LIBRARY :: N TRACKS" / "indexed N tracks" flavor text — all live
playback signal flows through bridges/mpd-state.py over OBS WS. The
142 KB JSON, ffprobe walk, and ETag-cached route were all producing
one integer that MPD itself already knows.
RigData::playlistCount() now shells `mpc stats` and parses "Songs: N",
returning 0 on any failure (treated by callers as empty library).
Removes RigPlaylistCommand, DataController::playlist(), the
/data/playlist.js route, the per-overlay <script src> + window.__PLAYLIST
shims, and the stale storage/data/playlist.json artifact.
AudioController still consumes config('rig.music_dirs') for the HTTP
audio stream — that's orthogonal and stays.
42 lines
1.7 KiB
PHP
42 lines
1.7 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\AudioController;
|
|
use App\Http\Controllers\DataController;
|
|
use App\Http\Controllers\MusicCommandController;
|
|
use App\Http\Controllers\OnboardController;
|
|
use App\Http\Controllers\Overlays\DesktopController;
|
|
use App\Http\Controllers\Overlays\GameController;
|
|
use App\Http\Controllers\Overlays\GoodbyeController;
|
|
use App\Http\Controllers\Overlays\LandingController;
|
|
use App\Http\Controllers\Overlays\LoadingController;
|
|
use App\Http\Controllers\Overlays\MusicBoxController;
|
|
use App\Http\Controllers\Overlays\MusicDaemonController;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
Route::view('/', 'home');
|
|
Route::view('/scenes', 'scenes');
|
|
|
|
Route::get('/landing', [LandingController::class, 'show']);
|
|
Route::get('/loading', [LoadingController::class, 'show']);
|
|
Route::get('/game', [GameController::class, 'show']);
|
|
Route::get('/desktop', [DesktopController::class, 'show']);
|
|
Route::get('/goodbye', [GoodbyeController::class, 'show']);
|
|
Route::get('/music-daemon', [MusicDaemonController::class, 'show']);
|
|
|
|
Route::prefix('music-box')->controller(MusicBoxController::class)->group(function () {
|
|
Route::get('/', 'box');
|
|
Route::get('widget', 'widget');
|
|
Route::get('cover', 'cover');
|
|
Route::get('nc', 'nc');
|
|
});
|
|
|
|
Route::get('/cover.jpg', [DataController::class, 'coverImage']);
|
|
Route::get('/track', [AudioController::class, 'stream']);
|
|
|
|
Route::post('/cmd/{type}', [MusicCommandController::class, 'send'])
|
|
->whereIn('type', ['skip', 'prev', 'pause', 'resume']);
|
|
|
|
Route::get('/onboard', [OnboardController::class, 'show']);
|
|
Route::get('/onboard/search', [OnboardController::class, 'search']);
|
|
Route::post('/onboard', [OnboardController::class, 'submit']);
|