diff options
author | liam4 <towerofnix@gmail.com> | 2017-06-04 10:05:15 -0300 |
---|---|---|
committer | liam4 <towerofnix@gmail.com> | 2017-06-04 10:05:35 -0300 |
commit | 507bd7b0c0f185a87b4213b5c95b3b3859fe9528 (patch) | |
tree | 72b3ad05a11f80b6155fddb378148f27d9d5e952 /src | |
parent | 308fa9eaaad7b48f4362bdc301a81699943b2ede (diff) |
Local file downloader
Diffstat (limited to 'src')
-rw-r--r-- | src/downloaders.js | 19 | ||||
-rwxr-xr-x | src/play.js | 3 |
2 files changed, 21 insertions, 1 deletions
diff --git a/src/downloaders.js b/src/downloaders.js index 527f67d..3f3a427 100644 --- a/src/downloaders.js +++ b/src/downloaders.js @@ -33,4 +33,21 @@ function makeYouTubeDownloader() { } } -module.exports = {makeHTTPDownloader, makeYouTubeDownloader} +function makeLocalDownloader() { + return function(arg, out) { + const read = fs.createReadStream(arg) + const write = fs.createWriteStream(out) + + return new Promise((resolve, reject) => { + write.on('error', err => reject(err)) + write.on('close', () => resolve()) + read.pipe(write) + }) + } +} + +module.exports = { + makeHTTPDownloader, + makeYouTubeDownloader, + makeLocalDownloader +} diff --git a/src/play.js b/src/play.js index 38b05d5..bc9324d 100755 --- a/src/play.js +++ b/src/play.js @@ -185,6 +185,9 @@ readFile('./playlist.json', 'utf-8') } else if (downloaderType === 'youtube') { console.log("Using YouTube downloader.") downloader = downloaders.makeYouTubeDownloader() + } else if (downloaderType === 'local') { + console.log("Using local file downloader.") + downloader = downloaders.makeLocalDownloader() } else { console.error("Invalid downloader type: " + downloaderType) return |