From 8b5f2e035b9d25d25eb0d0d076899028e9d78271 Mon Sep 17 00:00:00 2001 From: mappu Date: Mon, 12 Apr 2021 12:15:42 +1200 Subject: [PATCH] remove invalid characters from generated filename (windows/linux) --- main.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 5758893..e91d6a8 100644 --- a/main.go +++ b/main.go @@ -153,7 +153,14 @@ func performDownload(ctx context.Context, cfg *config, targetUrl string) error { return err } - outputFile = fmt.Sprintf(`[Loadtup] %s [%08X].mkv`, ltc.Title, hw.Sum()) + var invalidChars *strings.Replacer + if runtime.GOOS == "windows" { // compile-time constant comparison will be elided + invalidChars = strings.NewReplacer(`"`, `_`, `*`, `_`, `<`, `_`, `>`, `_`, `?`, `_`, `\`, `_`, `|`, `_`, `/`, `_`, `:`, `_`) + } else { + invalidChars = strings.NewReplacer(`/`, `_`) + } + + outputFile = fmt.Sprintf(`[Loadtup] %s [%08X].mkv`, invalidChars.Replace(ltc.Title), hw.Sum()) } err = os.Rename(filepath.Join(tmpdir, "muxed.mkv"), outputFile)