next lyric fix
This commit is contained in:
@@ -24,7 +24,7 @@
|
|||||||
padding-left: 15px;
|
padding-left: 15px;
|
||||||
}
|
}
|
||||||
#captions-box {
|
#captions-box {
|
||||||
height: 1em;
|
min-height: 4.5em;
|
||||||
}
|
}
|
||||||
.artist-song-filter {
|
.artist-song-filter {
|
||||||
padding-left: 15px;
|
padding-left: 15px;
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
padding-left: 2px;
|
padding-left: 2px;
|
||||||
}
|
}
|
||||||
.q-item-button {
|
.q-item-button {
|
||||||
margin-left: 5px;
|
margin-right: 5px;
|
||||||
}
|
}
|
||||||
label:hover > .add-to-queue-btns {
|
label:hover > .add-to-queue-btns {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
@@ -128,6 +128,7 @@
|
|||||||
let queue = [];
|
let queue = [];
|
||||||
let queue_id_counter = 0;
|
let queue_id_counter = 0;
|
||||||
let show_title = false;
|
let show_title = false;
|
||||||
|
let get_next_lyric = true;
|
||||||
let in_queue_ele = document.getElementById("in-queue");
|
let in_queue_ele = document.getElementById("in-queue");
|
||||||
let empty_ele = document.getElementById("empty-queue");
|
let empty_ele = document.getElementById("empty-queue");
|
||||||
let audio_ele = document.getElementById("audio");
|
let audio_ele = document.getElementById("audio");
|
||||||
@@ -172,6 +173,18 @@
|
|||||||
if (active_cue) {
|
if (active_cue) {
|
||||||
captions_box.appendChild(active_cue.getCueAsHTML());
|
captions_box.appendChild(active_cue.getCueAsHTML());
|
||||||
}
|
}
|
||||||
|
if (get_next_lyric) {
|
||||||
|
//00:00:03.500 --> 00:00:08.200
|
||||||
|
const ct = audio_ele.currentTime;
|
||||||
|
const fi = Array.from(captions_ele.track.cues).findIndex((cue) => ct < cue.startTime);
|
||||||
|
if (fi !== -1) {
|
||||||
|
let next_lyric = document.createElement("DIV");
|
||||||
|
next_lyric.classList.add("next-lyric");
|
||||||
|
next_lyric.innerText = "Next: ";
|
||||||
|
next_lyric.appendChild(captions_ele.track.cues[fi].getCueAsHTML());
|
||||||
|
captions_box.appendChild(next_lyric);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function add_to_queue(name) {
|
function add_to_queue(name) {
|
||||||
@@ -181,9 +194,14 @@
|
|||||||
//<template> is not supported in IE. Yes, I know this is for TOR browser, but still feels wrong. also its not that useful here
|
//<template> is not supported in IE. Yes, I know this is for TOR browser, but still feels wrong. also its not that useful here
|
||||||
let queue_item = document.createElement("DIV");
|
let queue_item = document.createElement("DIV");
|
||||||
queue_item.id = queue_id;
|
queue_item.id = queue_id;
|
||||||
let queue_name = document.createElement("B");
|
let queue_remove = document.createElement("BUTTON");
|
||||||
queue_name.innerText = name;
|
queue_remove.className = "q-item-button";
|
||||||
queue_item.appendChild(queue_name);
|
queue_remove.innerText = "x";
|
||||||
|
queue_remove.onclick = () => {
|
||||||
|
document.getElementById(queue_id).remove();
|
||||||
|
queue = queue.filter((item) => item[1] !== queue_id);
|
||||||
|
};
|
||||||
|
queue_item.appendChild(queue_remove);
|
||||||
let queue_up = document.createElement("BUTTON");
|
let queue_up = document.createElement("BUTTON");
|
||||||
queue_up.className = "q-item-button";
|
queue_up.className = "q-item-button";
|
||||||
queue_up.innerText = "^";
|
queue_up.innerText = "^";
|
||||||
@@ -199,14 +217,9 @@
|
|||||||
in_queue_ele.insertBefore(qir, in_queue_ele.children.item(i-1));
|
in_queue_ele.insertBefore(qir, in_queue_ele.children.item(i-1));
|
||||||
};
|
};
|
||||||
queue_item.appendChild(queue_up);
|
queue_item.appendChild(queue_up);
|
||||||
let queue_remove = document.createElement("BUTTON");
|
let queue_name = document.createElement("B");
|
||||||
queue_remove.className = "q-item-button";
|
queue_name.innerText = name;
|
||||||
queue_remove.innerText = "Remove From Queue";
|
queue_item.appendChild(queue_name);
|
||||||
queue_remove.onclick = () => {
|
|
||||||
document.getElementById(queue_id).remove();
|
|
||||||
queue = queue.filter((item) => item[1] !== queue_id);
|
|
||||||
};
|
|
||||||
queue_item.appendChild(queue_remove);
|
|
||||||
in_queue_ele.appendChild(queue_item);
|
in_queue_ele.appendChild(queue_item);
|
||||||
queue_id_counter++;
|
queue_id_counter++;
|
||||||
}
|
}
|
||||||
@@ -272,13 +285,25 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function add_playlist(playlist_songs) {
|
function add_playlist(playlist_songs) {
|
||||||
let randomized = [];
|
//preprocess to expand *
|
||||||
while (randomized.length < playlist_songs.length) {
|
let playlist_process = [];
|
||||||
let rand = Math.floor(Math.random() * playlist_songs.length);
|
for (const song of playlist_songs) {
|
||||||
if (!randomized.includes(playlist_songs[rand])) {
|
const song_split = song.split("/");
|
||||||
randomized.push(playlist_songs[rand]);
|
if (song_split[1] === "*") {
|
||||||
|
playlist_process.push(...playable_songs.filter((song) => song.startsWith(`${song_split[0]}/`)));
|
||||||
|
} else {
|
||||||
|
playlist_process.push(song);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
playlist_songs = playlist_process;
|
||||||
|
//add to queue
|
||||||
|
let randomized = [];
|
||||||
|
const psl = playlist_songs.length;
|
||||||
|
for (let u = 0; u < psl; u++) {
|
||||||
|
let rand = Math.floor(Math.random() * playlist_songs.length);
|
||||||
|
randomized.push(playlist_songs[rand]);
|
||||||
|
playlist_songs.splice(rand, 1);
|
||||||
|
}
|
||||||
for (const n of randomized) {
|
for (const n of randomized) {
|
||||||
add_to_queue(n);
|
add_to_queue(n);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user