Normalize folder names

This commit is contained in:
Xpl0itU 2023-07-21 18:02:29 +02:00
parent dc785dc09f
commit ab32b122ea
2 changed files with 33 additions and 1 deletions

View file

@ -612,7 +612,7 @@ func (mw *MainWindow) onDownloadQueueClicked(selectedPath string) error {
defer wg.Done()
tidStr := fmt.Sprintf("%016x", title.TitleID)
titlePath := fmt.Sprintf("%s/%s [%s] [%s]", selectedPath, title.Name, wiiudownloader.GetFormattedKind(title.TitleID), tidStr)
titlePath := fmt.Sprintf("%s/%s [%s] [%s]", selectedPath, normalizeFilename(title.Name), wiiudownloader.GetFormattedKind(title.TitleID), tidStr)
if err := wiiudownloader.DownloadTitle(tidStr, titlePath, mw.decryptContents, progressWindow, mw.getDeleteEncryptedContents(), mw.logger); err != nil {
queueCancelled = true
errorHappened = true

View file

@ -0,0 +1,32 @@
package main
import "strings"
func normalizeFilename(filename string) string {
var out strings.Builder
shouldAppend := true
for _, c := range filename {
if c == '_' {
if shouldAppend {
out.WriteRune('_')
shouldAppend = false
}
} else if c == ' ' {
if shouldAppend {
out.WriteRune(' ')
shouldAppend = false
}
} else if (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') {
out.WriteRune(c)
shouldAppend = true
}
}
result := out.String()
if len(result) > 0 && result[len(result)-1] == '_' {
result = result[:len(result)-1]
}
return result
}