From 2b01f4dc06e1dac07eafffe086a71c5dc3012a87 Mon Sep 17 00:00:00 2001 From: stratumadev Date: Wed, 29 Jan 2025 22:21:16 +0100 Subject: [PATCH] replaced more mkdir functions --- adn.ts | 20 ++++++++------------ ao.ts | 20 ++++++++------------ crunchy.ts | 40 ++++++++++++++++------------------------ hidive.ts | 20 ++++++++------------ 4 files changed, 40 insertions(+), 60 deletions(-) diff --git a/adn.ts b/adn.ts index 93d3d20..8f23ffe 100644 --- a/adn.ts +++ b/adn.ts @@ -677,12 +677,10 @@ export default class AnimationDigitalNetwork implements ServiceClass { const mathMsg = `(${mathParts}*${options.partsize})`; console.info('Total parts in stream:', totalParts, mathMsg); tsFile = path.isAbsolute(outFile as string) ? outFile : path.join(this.cfg.dir.content, outFile); - const split = outFile.split(path.sep).slice(0, -1); - split.forEach((val, ind, arr) => { - const isAbsolut = path.isAbsolute(outFile as string); - if (!fs.existsSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val))) - fs.mkdirSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val)); - }); + const dirName = path.dirname(tsFile); + if (!fs.existsSync(dirName)) { + fs.mkdirSync(dirName, { recursive: true }); + } const dlStreamByPl = await new streamdl({ output: `${tsFile}.ts`, timeout: options.timeout, @@ -764,12 +762,10 @@ export default class AnimationDigitalNetwork implements ServiceClass { fileName = parseFileName(options.fileName, variables, options.numbers, options.override).join(path.sep); const outFile = parseFileName(options.fileName, variables, options.numbers, options.override).join(path.sep); const tsFile = path.isAbsolute(outFile as string) ? outFile : path.join(this.cfg.dir.content, outFile); - const split = outFile.split(path.sep).slice(0, -1); - split.forEach((val, ind, arr) => { - const isAbsolut = path.isAbsolute(outFile as string); - if (!fs.existsSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val))) - fs.mkdirSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val)); - }); + const dirName = path.dirname(tsFile); + if (!fs.existsSync(dirName)) { + fs.mkdirSync(dirName, { recursive: true }); + } fs.writeFileSync(`${tsFile}.txt`, compiledChapters.join('\r\n')); files.push({ path: `${tsFile}.txt`, diff --git a/ao.ts b/ao.ts index e7d2e1f..9e3d909 100644 --- a/ao.ts +++ b/ao.ts @@ -592,12 +592,10 @@ export default class AnimeOnegai implements ServiceClass { const mathMsg = `(${mathParts}*${options.partsize})`; console.info('Total parts in video stream:', totalParts, mathMsg); tsFile = path.isAbsolute(outFile as string) ? outFile : path.join(this.cfg.dir.content, outFile); - const split = outFile.split(path.sep).slice(0, -1); - split.forEach((val, ind, arr) => { - const isAbsolut = path.isAbsolute(outFile as string); - if (!fs.existsSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val))) - fs.mkdirSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val)); - }); + const dirName = path.dirname(tsFile); + if (!fs.existsSync(dirName)) { + fs.mkdirSync(dirName, { recursive: true }); + } const videoJson: M3U8Json = { segments: chosenVideoSegments.segments }; @@ -640,12 +638,10 @@ export default class AnimeOnegai implements ServiceClass { const mathMsg = `(${mathParts}*${options.partsize})`; console.info('Total parts in audio stream:', totalParts, mathMsg); tsFile = path.isAbsolute(outFile as string) ? outFile : path.join(this.cfg.dir.content, outFile); - const split = outFile.split(path.sep).slice(0, -1); - split.forEach((val, ind, arr) => { - const isAbsolut = path.isAbsolute(outFile as string); - if (!fs.existsSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val))) - fs.mkdirSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val)); - }); + const dirName = path.dirname(tsFile); + if (!fs.existsSync(dirName)) { + fs.mkdirSync(dirName, { recursive: true }); + } const audioJson: M3U8Json = { segments: chosenAudioSegments.segments }; diff --git a/crunchy.ts b/crunchy.ts index f61d319..4d4e2ce 100644 --- a/crunchy.ts +++ b/crunchy.ts @@ -1679,12 +1679,10 @@ export default class Crunchy implements ServiceClass { const mathMsg = `(${mathParts}*${options.partsize})`; console.info('Total parts in video stream:', totalParts, mathMsg); tsFile = path.isAbsolute(outFile as string) ? outFile : path.join(this.cfg.dir.content, outFile); - const split = outFile.split(path.sep).slice(0, -1); - split.forEach((val, ind, arr) => { - const isAbsolut = path.isAbsolute(outFile as string); - if (!fs.existsSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val))) - fs.mkdirSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val)); - }); + const dirName = path.dirname(tsFile); + if (!fs.existsSync(dirName)) { + fs.mkdirSync(dirName, { recursive: true }); + } const videoJson: M3U8Json = { segments: chosenVideoSegments.segments }; @@ -1721,12 +1719,10 @@ export default class Crunchy implements ServiceClass { const mathMsg = `(${mathParts}*${options.partsize})`; console.info('Total parts in audio stream:', totalParts, mathMsg); tsFile = path.isAbsolute(outFile as string) ? outFile : path.join(this.cfg.dir.content, outFile); - const split = outFile.split(path.sep).slice(0, -1); - split.forEach((val, ind, arr) => { - const isAbsolut = path.isAbsolute(outFile as string); - if (!fs.existsSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val))) - fs.mkdirSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val)); - }); + const dirName = path.dirname(tsFile); + if (!fs.existsSync(dirName)) { + fs.mkdirSync(dirName, { recursive: true }); + } const audioJson: M3U8Json = { segments: chosenAudioSegments.segments }; @@ -2011,12 +2007,10 @@ export default class Crunchy implements ServiceClass { const mathMsg = `(${mathParts}*${options.partsize})`; console.info('Total parts in stream:', totalParts, mathMsg); tsFile = path.isAbsolute(outFile as string) ? outFile : path.join(this.cfg.dir.content, outFile); - const split = outFile.split(path.sep).slice(0, -1); - split.forEach((val, ind, arr) => { - const isAbsolut = path.isAbsolute(outFile as string); - if (!fs.existsSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val))) - fs.mkdirSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val)); - }); + const dirName = path.dirname(tsFile); + if (!fs.existsSync(dirName)) { + fs.mkdirSync(dirName, { recursive: true }); + } const dlStreamByPl = await new streamdl({ output: `${tsFile}.ts`, timeout: options.timeout, @@ -2065,12 +2059,10 @@ export default class Crunchy implements ServiceClass { fileName = parseFileName(options.fileName, variables, options.numbers, options.override).join(path.sep); const outFile = parseFileName(options.fileName + '.' + mMeta.lang?.name, variables, options.numbers, options.override).join(path.sep); tsFile = path.isAbsolute(outFile as string) ? outFile : path.join(this.cfg.dir.content, outFile); - const split = outFile.split(path.sep).slice(0, -1); - split.forEach((val, ind, arr) => { - const isAbsolut = path.isAbsolute(outFile as string); - if (!fs.existsSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val))) - fs.mkdirSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val)); - }); + const dirName = path.dirname(tsFile); + if (!fs.existsSync(dirName)) { + fs.mkdirSync(dirName, { recursive: true }); + } const lang = langsData.languages.find(a => a.code === curStream?.audio_lang); if (!lang) { console.error(`Unable to find language for code ${curStream.audio_lang}`); diff --git a/hidive.ts b/hidive.ts index 5ac8f5d..c68048b 100644 --- a/hidive.ts +++ b/hidive.ts @@ -794,12 +794,10 @@ export default class Hidive implements ServiceClass { const tsFile = path.isAbsolute(fileName) ? fileName : path.join(this.cfg.dir.content, fileName); const tempFile = parseFileName(`temp-${selectedEpisode.id}`, variables, options.numbers, options.override).join(path.sep); const tempTsFile = path.isAbsolute(tempFile as string) ? tempFile : path.join(this.cfg.dir.content, tempFile); - const split = fileName.split(path.sep).slice(0, -1); - split.forEach((val, ind, arr) => { - const isAbsolut = path.isAbsolute(fileName); - if (!fs.existsSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val))) - fs.mkdirSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val)); - }); + const dirName = path.dirname(tsFile); + if (!fs.existsSync(dirName)) { + fs.mkdirSync(dirName, { recursive: true }); + } const videoJson: M3U8Json = { segments: chosenVideoSegments.segments }; @@ -882,12 +880,10 @@ export default class Hidive implements ServiceClass { const tempTsFile = path.isAbsolute(tempFile as string) ? tempFile : path.join(this.cfg.dir.content, tempFile); const outFile = parseFileName(options.fileName + '.' + (chosenAudioSegments.language.name), variables, options.numbers, options.override).join(path.sep); const tsFile = path.isAbsolute(outFile as string) ? outFile : path.join(this.cfg.dir.content, outFile); - const split = outFile.split(path.sep).slice(0, -1); - split.forEach((val, ind, arr) => { - const isAbsolut = path.isAbsolute(outFile as string); - if (!fs.existsSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val))) - fs.mkdirSync(path.join(isAbsolut ? '' : this.cfg.dir.content, ...arr.slice(0, ind), val)); - }); + const dirName = path.dirname(tsFile); + if (!fs.existsSync(dirName)) { + fs.mkdirSync(dirName, { recursive: true }); + } const audioJson: M3U8Json = { segments: chosenAudioSegments.segments };