fb4b14b282
Aggiunge il flag `timeout` nello stato e l'action `toggleTimeout`: dal controller il pulsante Time Out commuta la modalità e il display copre il tabellone con i video .mp4 della cartella `spot/` (non versionata). - un solo video → loop; più video → sequenza alfabetica con ritorno al primo; cartella vuota/assente → overlay "TIME OUT". - `src/spot-utils.js` (listSpotVideos) elenca i .mp4; endpoint `/spot/list` + file statici `/spot/<file>.mp4` serviti sia in prod (server.js) sia in dev (vite-plugin-websocket.js). - il display avvia i video con audio e ripiega su muto se il browser blocca l'autoplay con suono. - il controller resta operativo ma evidenzia la modalità con banner e pulsante arancione pulsante, in entrambi i layout (mobile ed esteso).
17 lines
478 B
JavaScript
17 lines
478 B
JavaScript
import { readdirSync } from 'fs'
|
|
|
|
/**
|
|
* Elenca i video .mp4 presenti nella cartella spot.
|
|
* Ritorna i filename ordinati alfabeticamente (sequenza prevedibile),
|
|
* oppure un array vuoto se la cartella non esiste o non è leggibile.
|
|
*/
|
|
export function listSpotVideos(spotDir) {
|
|
try {
|
|
return readdirSync(spotDir)
|
|
.filter(name => name.toLowerCase().endsWith('.mp4'))
|
|
.sort((a, b) => a.localeCompare(b))
|
|
} catch {
|
|
return []
|
|
}
|
|
}
|