From 86df772354425a4fb397302c3f28b8d026f87d3a Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Sat, 21 Feb 2026 15:23:43 +0100 Subject: [PATCH] Remove unnecessary console logs This commit removes various console.log statements that were used for debugging purposes. These logs clutter the output and provide no value in production. The changes affect multiple files including components and composables related to media control and rendering. --- .../components/pmocontrol/CurrentTrack.vue | 9 +------- .../webapp/src/composables/useCoverImage.ts | 17 --------------- .../webapp/src/composables/useMediaServers.ts | 8 ------- pmoapp/webapp/src/composables/useRenderers.ts | 21 ------------------- .../webapp/src/composables/useWebRenderer.ts | 18 ---------------- pmoapp/webapp/src/main.ts | 5 ----- pmoapp/webapp/src/services/pmocontrol/sse.ts | 6 ------ 7 files changed, 1 insertion(+), 83 deletions(-) diff --git a/pmoapp/webapp/src/components/pmocontrol/CurrentTrack.vue b/pmoapp/webapp/src/components/pmocontrol/CurrentTrack.vue index 1e94c98b..fd0248bb 100644 --- a/pmoapp/webapp/src/components/pmocontrol/CurrentTrack.vue +++ b/pmoapp/webapp/src/components/pmocontrol/CurrentTrack.vue @@ -100,14 +100,7 @@ function formatTime(ms: number | null | undefined): string { } const currentTime = computed(() => formatTime(state.value?.position_ms)); -const totalTime = computed(() => { - const duration = state.value?.duration_ms; - const transport = state.value?.transport_state; - console.log( - `[CurrentTrack] rendererId=${props.rendererId}, duration_ms=${duration}, transport=${transport}, title=${state.value?.current_track?.title}`, - ); - return formatTime(duration); -}); +const totalTime = computed(() => formatTime(state.value?.duration_ms)); const hasCover = computed( () => !!metadata.value?.album_art_uri && !imageError.value, diff --git a/pmoapp/webapp/src/composables/useCoverImage.ts b/pmoapp/webapp/src/composables/useCoverImage.ts index b7316520..e7f2968d 100644 --- a/pmoapp/webapp/src/composables/useCoverImage.ts +++ b/pmoapp/webapp/src/composables/useCoverImage.ts @@ -65,9 +65,6 @@ export function useCoverImage( if (retryCount.value < maxRetries) { retryCount.value++; - console.log( - `[useCoverImage] Retrying image load (${retryCount.value}/${maxRetries}): ${currentUrl.value}`, - ); setTimeout(() => { if (!currentUrl.value) return; @@ -77,7 +74,6 @@ export function useCoverImage( currentUrl.value, retryCount.value, ); - console.log(`[useCoverImage] Retry URL: ${cacheBustedUrl.value}`); }, retryDelay * retryCount.value); // Exponential backoff } else { console.error( @@ -89,9 +85,6 @@ export function useCoverImage( // Handle successful image load function handleImageLoad() { - console.log( - `[useCoverImage] Image loaded successfully: ${currentUrl.value}`, - ); imageLoaded.value = true; imageError.value = false; retryCount.value = 0; @@ -119,18 +112,11 @@ export function useCoverImage( watch( imageUrl, (newUri, oldUri) => { - console.log( - `[useCoverImage] URL changed from "${oldUri}" to "${newUri}"`, - ); - imageError.value = false; retryCount.value = 0; // Si c'est un changement d'URL (pas l'initialisation) if (oldUri && newUri && oldUri !== newUri) { - console.log( - `[useCoverImage] Changing image, keeping old one visible during load`, - ); isLoadingNewImage.value = true; // On garde imageLoaded à true pour garder l'ancienne image visible } else if (!newUri) { @@ -148,9 +134,6 @@ export function useCoverImage( if (newUri) { // Generate cache-busted URL cacheBustedUrl.value = getCacheBustedUrl(newUri, 0); - console.log( - `[useCoverImage] New cache-busted URL: ${cacheBustedUrl.value}`, - ); } else { cacheBustedUrl.value = null; } diff --git a/pmoapp/webapp/src/composables/useMediaServers.ts b/pmoapp/webapp/src/composables/useMediaServers.ts index cfaf03d0..0b7cc14f 100644 --- a/pmoapp/webapp/src/composables/useMediaServers.ts +++ b/pmoapp/webapp/src/composables/useMediaServers.ts @@ -37,9 +37,6 @@ function ensureSSEConnected() { switch (event.type) { case 'online': - // Nouveau serveur découvert - console.log(`[useMediaServers] Serveur ${serverId} (${event.friendly_name}) est maintenant en ligne`) - // Ajouter au cache avec les infos disponibles const server: MediaServerSummary = { id: serverId, @@ -55,9 +52,6 @@ function ensureSSEConnected() { break case 'offline': - // Serveur déconnecté - console.log(`[useMediaServers] Serveur ${serverId} est maintenant hors ligne`) - // Marquer comme offline dans le cache const existingServer = serversCache.value.get(serverId) if (existingServer) { @@ -77,7 +71,6 @@ function ensureSSEConnected() { case 'global_updated': // Invalider tout le cache de ce serveur - console.log(`[useMediaServers] GlobalUpdated pour ${serverId}`) const globalKeysToDelete: string[] = [] browseCache.value.forEach((_, key) => { if (key.startsWith(serverId + '/')) { @@ -89,7 +82,6 @@ function ensureSSEConnected() { case 'containers_updated': // Invalider les containers spécifiques - console.log(`[useMediaServers] ContainersUpdated pour ${serverId}:`, event.container_ids) event.container_ids.forEach(containerId => { const key = `${serverId}/${containerId}` browseCache.value.delete(key) diff --git a/pmoapp/webapp/src/composables/useRenderers.ts b/pmoapp/webapp/src/composables/useRenderers.ts index 831c2693..a9947164 100644 --- a/pmoapp/webapp/src/composables/useRenderers.ts +++ b/pmoapp/webapp/src/composables/useRenderers.ts @@ -48,11 +48,6 @@ function ensureSSEConnected() { // Gérer les événements Online/Offline différemment if (event.type === "online") { - // Nouveau renderer découvert - console.log( - `[useRenderers] Renderer ${rendererId} (${event.friendly_name}) est maintenant en ligne`, - ); - // Ajouter au cache avec les infos disponibles // Note: on n'a pas toutes les infos (capabilities, protocol) donc on fetch ensuite const renderer: RendererSummary = { @@ -86,11 +81,6 @@ function ensureSSEConnected() { } if (event.type === "offline") { - // Renderer déconnecté - console.log( - `[useRenderers] Renderer ${rendererId} est maintenant hors ligne`, - ); - // Marquer comme offline dans le cache const renderer = renderersCache.value.get(rendererId); if (renderer) { @@ -109,9 +99,6 @@ function ensureSSEConnected() { snapshotState.lastEventAt.set(rendererId, timestamp); const snapshot = snapshotState.snapshots.get(rendererId); - console.log( - `[SSE Event] type=${event.type}, rendererId=${rendererId}, snapshot exists=${!!snapshot}, transport=${snapshot?.state?.transport_state}`, - ); // Si pas de snapshot, on doit fetch if (!snapshot) { @@ -126,11 +113,6 @@ function ensureSSEConnected() { break; case "position_changed": - // Debug: log pour tracer les oscillations - console.log( - `[position_changed] renderer=${rendererId}, duration=${event.track_duration}`, - ); - // Mettre à jour position et durée de manière atomique pour garantir la cohérence // Le backend envoie TOUJOURS les deux valeurs (même si null) @@ -177,9 +159,6 @@ function ensureSSEConnected() { ...snapshot, state: newState, }; - console.log( - `[position_changed] Setting new snapshot for ${rendererId}, state ref=${Object.prototype.toString.call(newState)}, transport=${newState.transport_state}`, - ); snapshotState.snapshots.set(rendererId, newSnapshot); break; diff --git a/pmoapp/webapp/src/composables/useWebRenderer.ts b/pmoapp/webapp/src/composables/useWebRenderer.ts index f2b06765..9d729fd3 100644 --- a/pmoapp/webapp/src/composables/useWebRenderer.ts +++ b/pmoapp/webapp/src/composables/useWebRenderer.ts @@ -106,7 +106,6 @@ class GaplessEngine { private volume = 1.0; private muted = false; - private paused = false; /** Durée de la piste courante (secondes), lue via loadedmetadata */ private _duration = 0; @@ -144,10 +143,8 @@ class GaplessEngine { /** Charge la piste courante (sans la jouer). */ setCurrent(uri: string): void { - this.paused = false; this.nextUri = null; this.onStateChange("TRANSITIONING"); - console.debug(`[GaplessEngine] setCurrent: ${uri}`); const el = this.slots[this.currentSlot]; // Retirer l'écouteur "ended" de l'autre slot si présent @@ -163,7 +160,6 @@ class GaplessEngine { // Récupérer la durée dès que les métadonnées sont disponibles el.onloadedmetadata = () => { this._duration = el.duration || 0; - console.debug(`[GaplessEngine] loadedmetadata: duration=${this._duration.toFixed(2)}s`); }; // Ne pas émettre STOPPED ici : l'état reste TRANSITIONING jusqu'au play() } @@ -176,12 +172,10 @@ class GaplessEngine { el.src = uri; el.preload = "auto"; el.load(); - console.debug(`[GaplessEngine] setNext: préchargement de ${uri} dans slot ${nextSlot}`); } async play(): Promise { const el = this.slots[this.currentSlot]; - console.debug(`[GaplessEngine] play(), slot=${this.currentSlot}, src=${el.src}, paused=${this.paused}`); el.onended = () => this.onCurrentEnded(); @@ -192,7 +186,6 @@ class GaplessEngine { return; } - this.paused = false; this.startPositionTimer(); this.onStateChange("PLAYING"); } @@ -200,7 +193,6 @@ class GaplessEngine { pause(): void { const el = this.slots[this.currentSlot]; el.pause(); - this.paused = true; this.stopPositionTimer(); this.onStateChange("PAUSED"); this.sendPosition(); @@ -211,7 +203,6 @@ class GaplessEngine { el.onended = null; el.pause(); el.currentTime = 0; - this.paused = false; this.nextUri = null; this.stopPositionTimer(); this.onStateChange("STOPPED"); @@ -240,7 +231,6 @@ class GaplessEngine { } private onCurrentEnded(): void { - console.debug("[GaplessEngine] onCurrentEnded"); const nextSlot = (1 - this.currentSlot) as 0 | 1; if (this.nextUri !== null) { @@ -343,7 +333,6 @@ export function useWebRenderer() { async function execCommand(action: TransportAction, params?: CommandParams) { if (!engine) return; - console.debug(`[WebRenderer] Commande: ${action}`, params); switch (action) { case "set_uri": @@ -393,9 +382,6 @@ export function useWebRenderer() { case "session_created": rendererInfo.value = msg.renderer_info; connected.value = true; - console.info( - `[WebRenderer] Session créée — UDN: ${msg.renderer_info.udn}`, - ); onConnectedCallback?.(); break; @@ -424,12 +410,9 @@ export function useWebRenderer() { const protocol = location.protocol === "https:" ? "wss:" : "ws:"; const url = `${protocol}//${location.host}/api/webrenderer/ws`; - console.info(`[WebRenderer] Connexion à : ${url}`); - ws = new WebSocket(url); ws.onopen = () => { - console.info("[WebRenderer] WebSocket ouvert, envoi Init"); send({ type: "init", capabilities: { @@ -445,7 +428,6 @@ export function useWebRenderer() { connected.value = false; rendererInfo.value = null; ws = null; - console.info("[WebRenderer] Déconnecté"); }; ws.onerror = (err) => { diff --git a/pmoapp/webapp/src/main.ts b/pmoapp/webapp/src/main.ts index 39b3f00d..66972173 100644 --- a/pmoapp/webapp/src/main.ts +++ b/pmoapp/webapp/src/main.ts @@ -34,12 +34,7 @@ const uiStore = useUIStore(); sse.onConnectionChange((connected) => { uiStore.setSSEConnected(connected); - if (connected) { - console.log("[App] SSE connecté"); - } }); // Démarrer la connexion SSE sse.connect(); - -console.log("[App] PMOControl initialisé"); diff --git a/pmoapp/webapp/src/services/pmocontrol/sse.ts b/pmoapp/webapp/src/services/pmocontrol/sse.ts index ae2cbdc4..ecafeef0 100644 --- a/pmoapp/webapp/src/services/pmocontrol/sse.ts +++ b/pmoapp/webapp/src/services/pmocontrol/sse.ts @@ -31,13 +31,10 @@ export class PMOControlSSE { return } - console.log('[SSE] Connexion à /api/control/events...') - try { this.eventSource = new EventSource('/api/control/events') this.eventSource.onopen = () => { - console.log('[SSE] Connexion établie') this.reconnectAttempts = 0 this.isConnected = true this.notifyConnectionCallbacks(true) @@ -75,7 +72,6 @@ export class PMOControlSSE { } if (this.eventSource) { - console.log('[SSE] Déconnexion') this.eventSource.close() this.eventSource = null this.isConnected = false @@ -99,8 +95,6 @@ export class PMOControlSSE { this.maxReconnectDelay ) - console.log(`[SSE] Reconnexion dans ${delay / 1000}s (tentative ${this.reconnectAttempts})`) - this.reconnectTimer = window.setTimeout(() => { this.reconnectTimer = null this.connect()