« get me outta code hell

Merge branch 'master' of https://github.com/liam4/http-music - http-music - Command-line music player + utils (not a server!)
about summary refs log tree commit diff
path: root/src/loop-play.js
diff options
context:
space:
mode:
authorFlorrie <towerofni@gmail.com>2017-08-03 03:20:23 +0400
committerFlorrie <towerofni@gmail.com>2017-08-03 03:20:23 +0400
commit63ee18f61991cfcd10e42871d57eccd53fa51828 (patch)
treeb07bbe3aa8b4358a77758783638b447465a850fe /src/loop-play.js
parentb94845e008931bfaee56b91db1f892af7a6d339f (diff)
parent70462b74635da8eb92c10d51d1a8a1fe06ceb9f1 (diff)
Merge branch 'master' of https://github.com/liam4/http-music
Diffstat (limited to 'src/loop-play.js')
-rw-r--r--src/loop-play.js22
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