playlist js updates

fix chrome
partially fix dup play detection
var -> let/const
This commit is contained in:
zzz
2024-06-04 09:27:55 -04:00
parent 3bb08a13d5
commit db6f64ed9e

View File

@ -6,14 +6,18 @@ var __i2psnark_autoplay = false;
var __i2psnark_playindex = -1;
var __i2psnark_playsize = 0;
// note that we use currentTime = 0, not fastSeek(0), because
// Chrome doesn't support it.
// https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement
const setupplaybuttons=()=>{
var button = document.getElementById('playall');
let button = document.getElementById('playall');
if (button === null)
return;
var audios = document.getElementsByClassName("audio");
const audios = document.getElementsByClassName("audio");
__i2psnark_playsize = audios.length;
for (var i = 0; i < __i2psnark_playsize; i++) {
var audio = audios[i];
const audio = audios[i];
audio.addEventListener("ended", function() {
audioended();
});
@ -76,13 +80,13 @@ const setupplaybuttons=()=>{
const playprev=()=>{
if (__i2psnark_playindex <= 0)
return;
var audios = document.getElementsByClassName("audio");
const audios = document.getElementsByClassName("audio");
if (__i2psnark_isplaying) {
audios[__i2psnark_playindex].pause();
audios[__i2psnark_playindex].fastSeek(0);
audios[__i2psnark_playindex].currentTime = 0;
}
__i2psnark_playindex--;
audios[__i2psnark_playindex].fastSeek(0);
audios[__i2psnark_playindex].currentTime = 0;
audios[__i2psnark_playindex].play();
playing();
}
@ -90,13 +94,13 @@ const playprev=()=>{
const playnext=()=>{
if (__i2psnark_playindex >= __i2psnark_playsize - 1)
return;
var audios = document.getElementsByClassName("audio");
const audios = document.getElementsByClassName("audio");
if (__i2psnark_isplaying) {
audios[__i2psnark_playindex].pause();
audios[__i2psnark_playindex].fastSeek(0);
audios[__i2psnark_playindex].currentTime = 0;
}
__i2psnark_playindex++;
audios[__i2psnark_playindex].fastSeek(0);
audios[__i2psnark_playindex].currentTime = 0;
audios[__i2psnark_playindex].play();
playing();
}
@ -105,7 +109,7 @@ const playpause=()=>{
__i2psnark_autoplay = false;
if (!__i2psnark_isplaying)
return;
var audios = document.getElementsByClassName("audio");
const audios = document.getElementsByClassName("audio");
audios[__i2psnark_playindex].pause();
notplaying();
}
@ -116,8 +120,9 @@ const playall=()=>{
return;
if (__i2psnark_playindex >= __i2psnark_playsize - 1 || __i2psnark_playindex < 0)
__i2psnark_playindex = 0;
var audios = document.getElementsByClassName("audio");
audios[__i2psnark_playindex].fastSeek(0);
const audios = document.getElementsByClassName("audio");
// no, start where we were before
//audios[__i2psnark_playindex].currentTime = 0;
audios[__i2psnark_playindex].play();
playing();
}
@ -125,13 +130,13 @@ const playall=()=>{
// events
const audioended=()=>{
var audio = event.target;
audio.fastSeek(0);
const audio = event.target;
audio.currentTime = 0;
__i2psnark_playindex = Number(audio.getAttribute("audioindex"));
if (__i2psnark_playindex < __i2psnark_playsize - 1) {
__i2psnark_playindex++;
if (__i2psnark_autoplay) {
var audios = document.getElementsByClassName("audio");
const audios = document.getElementsByClassName("audio");
audios[__i2psnark_playindex].play();
playing();
} else {
@ -144,19 +149,20 @@ const audioended=()=>{
}
const audiopause=()=>{
var audio = event.target;
const audio = event.target;
__i2psnark_playindex = Number(audio.getAttribute("audioindex"));
notplaying();
}
const audioplay=()=>{
var audio = event.target;
var old__i2psnark_playindex = __i2psnark_playindex;
const audio = event.target;
const old__i2psnark_playindex = __i2psnark_playindex;
__i2psnark_playindex = Number(audio.getAttribute("audioindex"));
if (__i2psnark_isplaying && old__i2psnark_playindex != __i2psnark_playindex && old__i2psnark_playindex >= 0 && old__i2psnark_playindex <= __i2psnark_playsize - 1) {
// prevent two at once
const audios = document.getElementsByClassName("audio");
audios[old__i2psnark_playindex].pause();
audios[old__i2psnark_playindex].fastSeek(0);
audios[old__i2psnark_playindex].currentTime = 0;
}
playing();
}
@ -165,7 +171,7 @@ const audioplay=()=>{
const playing=()=>{
__i2psnark_isplaying = true;
var button = document.getElementById('playprev');
let button = document.getElementById('playprev');
if (__i2psnark_playindex > 0) {
button.disabled=false;
button.classList.remove("controld");
@ -200,7 +206,7 @@ const playing=()=>{
const notplaying=()=>{
__i2psnark_isplaying = false;
var button = document.getElementById('playprev');
let button = document.getElementById('playprev');
if (__i2psnark_playindex > 0) {
button.disabled=false;
button.classList.remove("controld");