From 7929d43c1cd2ca0e46f06178b56485478550829e Mon Sep 17 00:00:00 2001 From: Alex <15199219+muskit@users.noreply.github.com> Date: Mon, 1 Sep 2025 01:45:28 -0700 Subject: [PATCH] sanitize song folder name --- src/Data/Song/Song.cs | 7 ++----- src/ExportOperation/Exporter.cs | 1 - src/Utility/Utils.cs | 5 +++++ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Data/Song/Song.cs b/src/Data/Song/Song.cs index 01ae2d6..2e90c00 100644 --- a/src/Data/Song/Song.cs +++ b/src/Data/Song/Song.cs @@ -1,9 +1,6 @@ -using System; using System.Collections.Generic; using System.IO; -using System.Linq; -using Avalonia.Controls; -using Avalonia.Media; +using MercuryConverter.Utility; using SaturnData.Notation.Core; using SaturnData.Notation.Serialization; using UAssetAPI.PropertyTypes.Objects; @@ -29,7 +26,7 @@ public class Song public required float PreviewTime { get; set; } public required float PreviewLen { get; set; } public string SourceName => Consts.NUM_SOURCE[Source]; - public string FolderName => $"{Artist} - {Name}"; + public string FolderName => $"{Utils.RemoveInvalidFileNameChars(Artist)} - {Utils.RemoveInvalidFileNameChars(Name)}"; /// /// Pairs of level and chart designer. diff --git a/src/ExportOperation/Exporter.cs b/src/ExportOperation/Exporter.cs index 10780eb..f78dfcf 100644 --- a/src/ExportOperation/Exporter.cs +++ b/src/ExportOperation/Exporter.cs @@ -56,7 +56,6 @@ public class Exporter { var audioSourcePath = Database.AudioPaths[audioKey]; - // Copy/convert audio -- TODO switch (options.AudioFormat) { case AudioFormat.WAV: diff --git a/src/Utility/Utils.cs b/src/Utility/Utils.cs index 2d4373e..9db9116 100644 --- a/src/Utility/Utils.cs +++ b/src/Utility/Utils.cs @@ -89,4 +89,9 @@ public static class Utils return (bool)_ffmpegAvailable!; } } + + public static string RemoveInvalidFileNameChars(string filename) + { + return string.Concat(filename.Split(['/', '\\', '\"', '\''])); + } } \ No newline at end of file