diff --git a/src/system/tonedownload.py b/src/system/tonedownload.py index af5b75c..51c866c 100644 --- a/src/system/tonedownload.py +++ b/src/system/tonedownload.py @@ -526,9 +526,13 @@ class Tone3000Client: dest_dir = self._models_dir dest_dir.mkdir(parents=True, exist_ok=True) - filename = model.filename - if not filename.endswith(".nam"): - filename += ".nam" + # Use readable name, fall back to Tone3000 filename + display_name = (model.name or model.filename or "model").strip() + # Sanitize: lowercase, replace spaces/special chars, keep .nam + safe_name = re.sub(r"[^\w\-]+", "_", display_name).strip("_").lower() + if not safe_name: + safe_name = "model" + filename = safe_name + ".nam" dest_path = dest_dir / filename return await self._download_file(model.download_url, dest_path, progress_callback) @@ -542,9 +546,12 @@ class Tone3000Client: dest_dir = self._irs_dir dest_dir.mkdir(parents=True, exist_ok=True) - filename = ir.filename - if not filename.endswith(".wav"): - filename += ".wav" + # Use readable name, fall back to Tone3000 filename + display_name = (ir.name or ir.filename or "ir").strip() + safe_name = re.sub(r"[^\w\-]+", "_", display_name).strip("_").lower()[:64] + if not safe_name: + safe_name = "ir" + filename = safe_name + ".wav" dest_path = dest_dir / filename return await self._download_file(ir.download_url, dest_path, progress_callback)