From ba8054b611fd1140530888c9c59b3d5c2c280fa1 Mon Sep 17 00:00:00 2001 From: bytedream Date: Mon, 21 Mar 2022 19:36:39 +0100 Subject: [PATCH] Optimized filename generation --- cmd/crunchyroll-go/cmd/utils.go | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/cmd/crunchyroll-go/cmd/utils.go b/cmd/crunchyroll-go/cmd/utils.go index 032d066..7af5b3e 100644 --- a/cmd/crunchyroll-go/cmd/utils.go +++ b/cmd/crunchyroll-go/cmd/utils.go @@ -177,20 +177,10 @@ func generateFilename(name, directory string) string { for _, char := range invalidWindowsChars { name = strings.ReplaceAll(name, char, "") } - // this needs only to be done on windows lol :) - if directory != "" { - for _, char := range invalidWindowsChars[1:] { - directory = strings.ReplaceAll(directory, char, "") - } - } out.Debug("Replaced invalid characters (windows)") } - if directory != "" { - name = filepath.Join(directory, name) - } - - filename, changed := freeFileName(name) + filename, changed := freeFileName(filepath.Join(directory, name)) if changed { out.Info("File %s already exists, changing name to %s", name, filename) } @@ -318,6 +308,18 @@ func (fi formatInformation) Format(source string) string { } } + if runtime.GOOS != "windows" { + for _, char := range invalidNotWindowsChars { + valueAsString = strings.ReplaceAll(valueAsString, char, "") + } + out.Debug("Replaced invalid characters (not windows)") + } else { + for _, char := range invalidWindowsChars { + valueAsString = strings.ReplaceAll(valueAsString, char, "") + } + out.Debug("Replaced invalid characters (windows)") + } + source = strings.ReplaceAll(source, "{"+fields.Field(i).Tag.Get("json")+"}", valueAsString) }