rot stability

This commit is contained in:
uwaa 2025-02-21 02:39:26 +00:00
parent ebc2d167e4
commit 790e12c6b3

View file

@ -23,27 +23,32 @@
//Music functions //Music functions
function setMusic(url) { function setMusic(url) {
audio.pause(); noMusic = !url;
silent = !url;
if (url) { if (url) {
if (audio.src !== url && audio.src !== new URL(url, document.baseURI).href) {
console.log("Setting music: " + url); console.log("Setting music: " + url);
audio.pause();
audio.src = url; audio.src = url;
}
playMusic(); playMusic();
} else { } else {
console.log("Silencing"); audio.pause();
} }
} }
function playMusic() { function playMusic() {
//Starts playing the music if it isn't muted and isn't already playing //Starts playing the music if it isn't muted and isn't already playing
try { try {
if (!silent && audio.src && audio.src != "" && audio.paused && !audio.muted) { if (audio && !noMusic && !audio.muted && audio.paused) {
console.log("Playing music");
audio.pause();
audio.currentTime = 0; audio.currentTime = 0;
audio.play().catch(() => getPromiseFromEvent(window, 'click').then(audio.play)); audio.load();
audio.play().catch(() => getPromiseFromEvent(window, 'click').then(playMusic));
} }
} catch { } catch {
console.log("Failed to play music"); console.log("Failed to play music");
noMusic = true;
} }
} }
@ -102,26 +107,22 @@
//Theme application //Theme application
function applyMainTheme() { function applyMainTheme() {
console.log("Applying main theme");
setMusic(null); setMusic(null);
//<meta name="pageMusic" content="/assets/music.ogg"> //<meta name="pageMusic" content="/assets/music.ogg">
waitUntilSpecial('meta[name="pageMusic"]', (pageMusic) => { waitUntilSpecial('meta[name="pageMusic"]', (pageMusic) => {
setMusic(pageMusic.content); setMusic(pageMusic.content);
playMusic();
return true; return true;
}); });
//<a id="pageMusic" href="/assets/music.ogg"></a> //<a id="pageMusic" href="/assets/music.ogg"></a>
waitUntilSpecial("#pageMusic", (pageMusic) => { waitUntilSpecial("#pageMusic", (pageMusic) => {
setMusic(pageMusic.getAttribute("href")); setMusic(pageMusic.getAttribute("href"));
playMusic();
return true; return true;
}); });
} }
function applyUserTheme() { function applyUserTheme() {
console.log("Applying user theme");
setMusic(null); setMusic(null);
//Configure by post //Configure by post
@ -239,7 +240,7 @@
//Rot music player //Rot music player
const audio = document.createElement("audio"); const audio = document.createElement("audio");
let silent = false; let noMusic = true;
audio.loop = true; audio.loop = true;
audio.id = "user-music"; audio.id = "user-music";
audio.style = "display:none;"; audio.style = "display:none;";