From 6f39c1e5dc4b8f87917a18d2a23cec6b5cd9ca60 Mon Sep 17 00:00:00 2001 From: raiper34 Date: Sun, 23 Mar 2025 00:29:10 +0100 Subject: [PATCH] feat(names): strip special characters from file and folder names re #21 --- src/backend/src/shared/utils.service.ts | 6 +++++- src/backend/src/track/track.service.ts | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/backend/src/shared/utils.service.ts b/src/backend/src/shared/utils.service.ts index a4556b6..e7d1421 100644 --- a/src/backend/src/shared/utils.service.ts +++ b/src/backend/src/shared/utils.service.ts @@ -12,7 +12,11 @@ export class UtilsService { __dirname, '..', this.configService.get(EnvironmentEnum.DOWNLOADS_PATH), - name, + this.stripFileIllegalChars(name), ); } + + stripFileIllegalChars(text: string): string { + return text.replace(/[/\\?%*:|"<>]/g, '-'); + } } diff --git a/src/backend/src/track/track.service.ts b/src/backend/src/track/track.service.ts index b8c7260..443054a 100644 --- a/src/backend/src/track/track.service.ts +++ b/src/backend/src/track/track.service.ts @@ -131,7 +131,8 @@ export class TrackService { } getTrackFileName(track: TrackEntity): string { - return `${track.artist} - ${track.name.replace('/', '')}.${this.configService.get(EnvironmentEnum.FORMAT)}`; + const fileName = `${track.artist} - ${track.name.replace('/', '')}`; + return `${this.utilsService.stripFileIllegalChars(fileName)}.${this.configService.get(EnvironmentEnum.FORMAT)}`; } getFolderName(track: TrackEntity, playlist: PlaylistEntity): string {