eirtube/html/static/js/dearrow-load.js
2024-12-19 18:49:09 -06:00

40 lines
1.2 KiB
JavaScript
Executable File

const className = document.currentScript.getAttribute("video-class")
window.addEventListener("load", () => {
const allVideos = document.getElementsByClassName(className)
let queue = []
for (const v of allVideos) {
const dearrowIcon = v.querySelector(".dearrow-button-list.loading")
if (dearrowIcon)
queue.push(v)
}
new Promise(async resolve => {
for (const v of queue) {
const id = v.querySelector(".info .title .title-link").getAttribute("href").split("?v=")[1]
const dearrowIcon = v.querySelector(".dearrow-button-list.loading")
const titleAlt = v.querySelector(".info .title.alt a")
const thumbAlt = v.querySelector(".thumbnail .thumbnail__link.alt img")
const response = await fetch(`/getDeArrow?v=${id}`)
if (response.status == 404) {
newToast("red", "x", `Failed to load DeArrow for ${id} (404)`)
continue
}
const j = await response.json()
if (j.title)
titleAlt.innerText = j.title
if (j.thumbnail)
thumbAlt.setAttribute("src", dearrow_thumbnail_instance + (dearrow_thumbnail_instance.endsWith("/") ? "" : "/") + j.thumbnail)
dearrowIcon.classList.remove("loading")
if (!j.title && !j.thumbnail) {
dearrowIcon.remove()
titleAlt.remove()
thumbAlt.remove()
}
}
resolve()
})
})