From b74c6b0b40b290f9fb0d68323076315144c73a5a Mon Sep 17 00:00:00 2001 From: Benoit Date: Fri, 26 Dec 2025 00:08:13 +0100 Subject: [PATCH] Fix scan infini: exclure dossiers transcoded et waveforms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problème: Le scanner scannait TOUS les dossiers, y compris les dossiers générés (transcoded/ et waveforms/), créant: 1. Boucle infinie: scan original → crée transcoded → re-scan transcoded 2. Segfaults: tentative de transcoder des fichiers déjà transcodés 3. Doublons en base de données Solution: - library.py: Exclut transcoded, waveforms, .transcoded, .waveforms - scanner.py: Même exclusion dans le CLI Technique: Modifie dirs[:] dans os.walk() pour skip ces dossiers. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- backend/src/api/routes/library.py | 3 +++ backend/src/cli/scanner.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/backend/src/api/routes/library.py b/backend/src/api/routes/library.py index f5e020c..d116cea 100644 --- a/backend/src/api/routes/library.py +++ b/backend/src/api/routes/library.py @@ -41,6 +41,9 @@ def find_audio_files(directory: str) -> list[Path]: return [] for root, dirs, files in os.walk(directory_path): + # Skip transcoded and waveforms directories + dirs[:] = [d for d in dirs if d not in ['transcoded', 'waveforms', '.transcoded', '.waveforms']] + for file in files: file_path = Path(root) / file if file_path.suffix.lower() in AUDIO_EXTENSIONS: diff --git a/backend/src/cli/scanner.py b/backend/src/cli/scanner.py index 7b1e475..e3ffc72 100644 --- a/backend/src/cli/scanner.py +++ b/backend/src/cli/scanner.py @@ -46,6 +46,9 @@ def find_audio_files(directory: str) -> List[Path]: logger.info(f"Scanning directory: {directory}") for root, dirs, files in os.walk(directory_path): + # Skip transcoded and waveforms directories + dirs[:] = [d for d in dirs if d not in ['transcoded', 'waveforms', '.transcoded', '.waveforms']] + for file in files: file_path = Path(root) / file if file_path.suffix.lower() in AUDIO_EXTENSIONS: