From 416c1e5bb072cb80356e79f07bc96d3d8ea46415 Mon Sep 17 00:00:00 2001 From: Gwendal Date: Fri, 4 Jan 2019 11:32:46 +0100 Subject: [PATCH] Manage artist/album names containing path separators ('/' or '\') --- .../bandcampcollectiondownloader/BandcampCollectionDownloader.kt | 8 +++----- src/main/kotlin/bandcampcollectiondownloader/Util.kt | 7 +++++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/bandcampcollectiondownloader/BandcampCollectionDownloader.kt b/src/main/kotlin/bandcampcollectiondownloader/BandcampCollectionDownloader.kt index a3048db..f443476 100644 --- a/src/main/kotlin/bandcampcollectiondownloader/BandcampCollectionDownloader.kt +++ b/src/main/kotlin/bandcampcollectiondownloader/BandcampCollectionDownloader.kt @@ -84,11 +84,9 @@ fun downloadAll(cookiesFile: Path?, bandcampUser: String, downloadFormat: String val url = digitalItem.downloads[downloadFormat]?.get("url").orEmpty() val artid = digitalItem.art_id - // If windows, replace colons in file names by a unicode char that looks like a colon - if (isWindows()) { - albumtitle = albumtitle.replace(':', '꞉') - artist = artist.replace(':', '꞉') - } + // Replace invalid chars by similar unicode chars + albumtitle = replaceInvalidCharsByUnicode(albumtitle) + artist = replaceInvalidCharsByUnicode(artist) // Prepare artist and album folder val albumFolderName = "$releaseYear - $albumtitle" diff --git a/src/main/kotlin/bandcampcollectiondownloader/Util.kt b/src/main/kotlin/bandcampcollectiondownloader/Util.kt index 148cef3..adac02b 100644 --- a/src/main/kotlin/bandcampcollectiondownloader/Util.kt +++ b/src/main/kotlin/bandcampcollectiondownloader/Util.kt @@ -68,3 +68,10 @@ fun isWindows(): Boolean { return os.indexOf("win") >= 0 } +fun replaceInvalidCharsByUnicode(s: String): String { + var result: String = s + result = result.replace(':', '꞉') + result = result.replace('/', '/') + result = result.replace('\\', '⧹') + return result +} \ No newline at end of file