« get me outta code hell

mtui - Music Text User Interface - user-friendly command line music player
about summary refs log tree commit diff
path: root/playlist-utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'playlist-utils.js')
-rw-r--r--playlist-utils.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/playlist-utils.js b/playlist-utils.js
index 082a734..452b705 100644
--- a/playlist-utils.js
+++ b/playlist-utils.js
@@ -634,6 +634,25 @@ function getCorrespondingFileForItem(item, extension) {
   return null
 }
 
+function getCorrespondingPlayableForFile(item) {
+  if (!(item && item.url)) {
+    return null
+  }
+
+  if (isPlayable(item)) {
+    return item
+  }
+
+  const parent = item[parentSymbol]
+
+  if (!parent) {
+    return null
+  }
+
+  const basename = path.basename(item.url, path.extname(item.url))
+  return parent.items.find(item => isPlayable(item) && path.basename(item.url, path.extname(item.url)) === basename)
+}
+
 module.exports = {
   parentSymbol,
   updatePlaylistFormat, updateGroupFormat, updateTrackFormat,
@@ -653,6 +672,7 @@ module.exports = {
   getNameWithoutTrackNumber,
   searchForItem,
   getCorrespondingFileForItem,
+  getCorrespondingPlayableForFile,
   isGroup, isTrack,
   isOpenable, isPlayable
 }