diff options
author | Florrie <towerofni@gmail.com> | 2017-08-03 03:20:23 +0400 |
---|---|---|
committer | Florrie <towerofni@gmail.com> | 2017-08-03 03:20:23 +0400 |
commit | 63ee18f61991cfcd10e42871d57eccd53fa51828 (patch) | |
tree | b07bbe3aa8b4358a77758783638b447465a850fe /src/loop-play.js | |
parent | b94845e008931bfaee56b91db1f892af7a6d339f (diff) | |
parent | 70462b74635da8eb92c10d51d1a8a1fe06ceb9f1 (diff) |
Merge branch 'master' of https://github.com/liam4/http-music
Diffstat (limited to 'src/loop-play.js')
-rw-r--r-- | src/loop-play.js | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/loop-play.js b/src/loop-play.js index b0bb4dd..9328073 100644 --- a/src/loop-play.js +++ b/src/loop-play.js @@ -5,7 +5,10 @@ const { spawn } = require('child_process') const FIFO = require('fifo-js') const EventEmitter = require('events') -const { getDownloaderFor, makeConverterDownloader } = require('./downloaders') +const { + getDownloaderFor, makeConverterDownloader, + byName: downloadersByName +} = require('./downloaders') const { getItemPathString } = require('./playlist-utils') const promisifyProcess = require('./promisify-process') @@ -114,7 +117,22 @@ class PlayController { if (picked === null) { return null } else { - let downloader = getDownloaderFor(picked.downloaderArg) + let downloader + + if (picked.downloader) { + downloader = downloadersByName[picked.downloader]() + + if (!downloader) { + console.error( + `Invalid downloader for track ${picked.name}:`, downloader + ) + + return false + } + } else { + downloader = getDownloaderFor(picked.downloaderArg) + } + downloader = makeConverterDownloader(downloader, 'wav') this.downloadController.download(downloader, picked.downloaderArg) return picked |