nixos-config/users/simon/modules/qutebrowser/userscripts/bandcamp-volume.user.js

31 lines
1.1 KiB
JavaScript

// ==UserScript==
// @name Bandcamp: Add volume slider
// @include https://*.bandcamp.com/*
// @include https://sewerslvt.com/*
// @include https://store.sigurros.com/*
// ==/UserScript==
function setVolume(volume) {
document.querySelectorAll("audio").forEach(el => el.volume = volume / 100)
localStorage.setItem("volume", volume)
}
function loadStoredVolume() {
return localStorage.getItem("volume") ? Number(localStorage.getItem("volume")) : 25
}
const volumeControlContainer = document.createElement("div")
volumeControlContainer.style.position = "fixed"
volumeControlContainer.style.top = 0
volumeControlContainer.style.left = 0
volumeControlContainer.style["z-index"] = 10000
const volumeControlSlider = document.createElement("input")
volumeControlSlider.type = "range"
volumeControlSlider.min = 0
volumeControlSlider.max = 100
volumeControlSlider.value = loadStoredVolume()
volumeControlSlider.addEventListener("input", e => {setVolume(e.target.value)})
volumeControlContainer.appendChild(volumeControlSlider)
document.body.appendChild(volumeControlContainer)
setInterval(() => {setVolume(loadStoredVolume())}, 1000)