diff --git a/src/main/services/additional-content/local-playlists-manager.service.ts b/src/main/services/additional-content/local-playlists-manager.service.ts index 464a9aeb..5be06e9b 100644 --- a/src/main/services/additional-content/local-playlists-manager.service.ts +++ b/src/main/services/additional-content/local-playlists-manager.service.ts @@ -123,7 +123,7 @@ export class LocalPlaylistsManagerService { const dest = await (async () => { if(opt.dest && path.isAbsolute(opt.dest) && this.acceptPlaylistFiletype(opt.dest)) { return opt.dest; } const playlistFolder = await this.getPlaylistsFolder(opt.version); - return path.join(playlistFolder, filename); + return path.join(playlistFolder, sanitize(filename)); })(); writeFileSync(dest, JSON.stringify(bpList, null, 2)); diff --git a/src/main/services/request.service.ts b/src/main/services/request.service.ts index 9f5f7164..ef3777e3 100644 --- a/src/main/services/request.service.ts +++ b/src/main/services/request.service.ts @@ -8,6 +8,7 @@ import { unlinkSync } from "fs-extra"; import { tryit } from "shared/helpers/error.helpers"; import path from "path"; import { pipeline } from "stream/promises"; +import sanitize from "sanitize-filename"; export class RequestService { private static instance: RequestService; @@ -66,7 +67,7 @@ export class RequestService { const filename = opt?.preferContentDisposition ? this.getFilenameFromContentDisposition(response.headers["content-disposition"]) : null; if (filename) { - dest = path.join(path.dirname(dest), filename); + dest = path.join(path.dirname(dest), sanitize(filename)); } progress.data = dest; diff --git a/src/main/util.ts b/src/main/util.ts index 508c31fa..acfeb6db 100644 --- a/src/main/util.ts +++ b/src/main/util.ts @@ -8,8 +8,9 @@ export function resolveHtmlPath (htmlFileName: string) { const url = new URL(`http://localhost:${port}/${htmlFileName}`); return url.toString(); } - const filePath = path.resolve(__dirname, "..", "renderer", htmlFileName); - return pathToFileURL(filePath).toString(); + + const filePath = path.resolve(__dirname, "..", "renderer"); + return pathToFileURL(filePath).toString().concat("/", htmlFileName); };