summaryrefslogtreecommitdiff
path: root/public/assets/js/lib/views/details/audio.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/js/lib/views/details/audio.js')
-rw-r--r--public/assets/js/lib/views/details/audio.js40
1 files changed, 27 insertions, 13 deletions
diff --git a/public/assets/js/lib/views/details/audio.js b/public/assets/js/lib/views/details/audio.js
index 2329886..1c2f6f0 100644
--- a/public/assets/js/lib/views/details/audio.js
+++ b/public/assets/js/lib/views/details/audio.js
@@ -20,23 +20,37 @@ const audio = (function () {
audio.index();
audio.build();
if (music.length) {
- audio.el.src = music[0];
+ audio.el.src = music[0].href;
}
initted = true;
};
- audio.index = function () {
+ audio.index = function (files) {
music = [];
current_index = -1;
- var links = document.querySelectorAll("a");
- Array.prototype.slice.apply(links).forEach(function (link) {
- if (!link.href.match(/\.(mp3|wav|aiff?|m4a|ogg|opus|flac)$/)) return;
- link.dataset.index = music.length;
- music.push(link);
- if (playing && link.href === audio.el.src) {
- current_index = parseInt(link.dataset.index);
- }
- });
+ if (files) {
+ music = files
+ .filter((file) => AUDIO_REGEXP.test(file.filename))
+ .map((file) => ({
+ href: make_link(file),
+ title: file.filename.replace(AUDIO_REGEXP, ""),
+ }));
+ } else {
+ var links = document.querySelectorAll("a");
+ Array.prototype.slice.apply(links).forEach(function (link) {
+ if (!link.href.match(/\.(mp3|wav|aiff?|m4a|ogg|opus|flac)$/)) return;
+ link.dataset.index = music.length;
+ music.push({
+ el: link,
+ href: link.href,
+ title: link.innerText,
+ });
+ if (playing && link.href === audio.el.src) {
+ current_index = parseInt(link.dataset.index);
+ }
+ });
+ }
+ console.log(music);
if (playing) {
audio.set_cursor();
}
@@ -99,8 +113,8 @@ const audio = (function () {
audio.set_cursor = function () {
selected = document.querySelector(".playing");
if (selected) selected.classList.remove("playing");
- if (current_index > -1) {
- music[current_index].classList.add("playing");
+ if (current_index > -1 && music[current_index].el) {
+ music[current_index].el.classList.add("playing");
}
};