summaryrefslogtreecommitdiff
path: root/app/index.php
diff options
context:
space:
mode:
authorRaindropsSys <raindrops@equestria.dev>2023-10-26 16:39:03 +0200
committerRaindropsSys <raindrops@equestria.dev>2023-10-26 16:39:03 +0200
commit9f9d66afebc59c6c265c4424f7b8fb36d8876541 (patch)
tree8af8fc2fb1634a2f53df35544081a48956e6efad /app/index.php
parentae187b6d75c8079da0be1dc288613bad8466fe61 (diff)
downloadmist-9f9d66afebc59c6c265c4424f7b8fb36d8876541.tar.gz
mist-9f9d66afebc59c6c265c4424f7b8fb36d8876541.tar.bz2
mist-9f9d66afebc59c6c265c4424f7b8fb36d8876541.zip
Updated 34 files and added 146 files (automated)
Diffstat (limited to 'app/index.php')
-rw-r--r--app/index.php46
1 files changed, 32 insertions, 14 deletions
diff --git a/app/index.php b/app/index.php
index e6d93ff..0f22e2f 100644
--- a/app/index.php
+++ b/app/index.php
@@ -23,12 +23,12 @@
<meta name="apple-mobile-web-app-status-bar-style" content="white-translucent" media="(prefers-color-scheme: light)">
<meta name="description" content="Mist Audio Player">
</head>
-<body>
+<body <?php if (!str_contains($_SERVER['HTTP_USER_AGENT'], "MistNative/")): ?>class="web"<?php endif; ?>>
<script>
if (location.hash.trim() === "") location.hash = "#/albums";
if (window.MistNative) {
- MistNative.version("<?= explode("|", trim(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/version")))[0] ?>", "<?= trim(file_get_contents("/opt/spotify/build.txt")) ?>");
+ MistNative.version("<?= explode("|", trim(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/version")))[0] ?>", "<?= trim(file_exists("/opt/spotify/build.txt") ? file_get_contents("/opt/spotify/build.txt") : "trunk") ?>");
MistNative.userInfo(`<?= str_replace("`", "\\`", json_encode($_PROFILE)) ?>`);
}
</script>
@@ -182,8 +182,8 @@
}
if (playlist[currentPlaylistPosition + 1]) {
- playSong(playlist[currentPlaylistPosition + 1], "keep");
currentPlaylistPosition++;
+ playSong(playlist[currentPlaylistPosition], "keep", false);
} else {
stop();
}
@@ -307,18 +307,18 @@
playerDocument.getElementById("badge-lossy").style.display = "none";
playerDocument.getElementById("badge-cd").style.display = "none";
playerDocument.getElementById("badge-hires").style.display = "inline";
- playerDocument.getElementById("badge-hires").innerHTML = "<span style='display: grid; grid-template-columns: max-content max-content'><span><img src='/assets/icons/lossless.svg' alt='' class='player-badge-icon' style='filter: invert(1);'>Hi-Res Lossless</span><span class='player-badge-desktop'>" + window.currentSong.bitDepth + "-bit " + (window.currentSong.sampleRate / 1000).toFixed(1) + " kHz</span>";
+ playerDocument.getElementById("badge-hires").innerHTML = "<span style='display: grid; grid-template-columns: max-content max-content'><span><img src='/assets/icons/lossless.svg' alt='' class='player-badge-icon' style='filter: invert(1);'>Hi-Res Lossless</span><span class='player-badge-desktop'>" + window.currentSong.bitDepth + "-bit " + (window.currentSong.sampleRate / 1000) + " kHz</span>";
playerDocumentMobile.getElementById("badge-lossy").style.display = "none";
playerDocumentMobile.getElementById("badge-cd").style.display = "none";
playerDocumentMobile.getElementById("badge-hires").style.display = "inline";
} else if (window.currentSong) {
- playerDocument.getElementById("badge-lossy").style.display = "inline";
+ playerDocument.getElementById("badge-lossy").style.display = "none";
playerDocument.getElementById("badge-cd").style.display = "inline";
playerDocument.getElementById("badge-hires").style.display = "none";
- playerDocumentMobile.getElementById("badge-lossy").style.display = "inline";
+ playerDocumentMobile.getElementById("badge-lossy").style.display = "none";
playerDocumentMobile.getElementById("badge-cd").style.display = "inline";
playerDocumentMobile.getElementById("badge-hires").style.display = "none";
- playerDocument.getElementById("badge-cd").innerHTML = "<span style='display: grid; grid-template-columns: max-content max-content;'>'><span><img src='/assets/icons/lossless.svg' alt='' class='player-badge-icon' style='filter: invert(1);'>Lossless</span><span class='player-badge-desktop'>" + window.currentSong.bitDepth + "-bit " + (window.currentSong.sampleRate / 1000).toFixed(1) + " kHz</span>";
+ playerDocument.getElementById("badge-cd").innerHTML = "<span style='display: grid; grid-template-columns: max-content max-content;'><span><img src='/assets/icons/lossless.svg' alt='' class='player-badge-icon' style='filter: invert(1);'>Lossless</span><span class='player-badge-desktop'>" + window.currentSong.bitDepth + "-bit " + (window.currentSong.sampleRate / 1000) + " kHz</span>";
}
}
@@ -347,30 +347,34 @@
}
}
- window.redownloadFavorite = async () => {
+ window.redownloadFavorites = async () => {
document.getElementById("loading-text").innerText = "Downloading favorites...";
- window.favorites = await (await fetch("/api/getFavorites.php")).json();
+ window.favorites = await (await fetch("/api/getFavorites.php?_=" + [...crypto.getRandomValues(new Uint8Array(40))].map(m=>('0'+m.toString(16)).slice(-2)).join(''))).json();
}
window.redownloadLibrary = async () => {
document.getElementById("loading-text").innerText = "Downloading library...";
- window.favorites = await (await fetch("/api/getLibrary.php")).json();
+ window.library = await (await fetch("/api/getLibrary.php?_=" + [...crypto.getRandomValues(new Uint8Array(40))].map(m=>('0'+m.toString(16)).slice(-2)).join(''))).json();
}
(async () => {
document.getElementById("loading-text").innerText = "Downloading list of songs...";
- window.songs = await (await fetch("/assets/content/songs.json")).json();
+ window.songs = await (await fetch("/assets/content/songs.json?_=" + [...crypto.getRandomValues(new Uint8Array(40))].map(m=>('0'+m.toString(16)).slice(-2)).join(''))).json();
document.getElementById("loading-text").innerText = "Downloading list of albums...";
- window.albums = await (await fetch("/assets/content/albums.json")).json();
+ window.albums = await (await fetch("/assets/content/albums.json?_=" + [...crypto.getRandomValues(new Uint8Array(40))].map(m=>('0'+m.toString(16)).slice(-2)).join(''))).json();
document.getElementById("loading-text").innerText = "Downloading favorites...";
- window.favorites = await (await fetch("/api/getFavorites.php")).json();
+ window.favorites = await (await fetch("/api/getFavorites.php?_=" + [...crypto.getRandomValues(new Uint8Array(40))].map(m=>('0'+m.toString(16)).slice(-2)).join(''))).json();
+
+ document.getElementById("loading-text").innerText = "Downloading library...";
+ window.library = await (await fetch("/api/getLibrary.php?_=" + [...crypto.getRandomValues(new Uint8Array(40))].map(m=>('0'+m.toString(16)).slice(-2)).join(''))).json();
document.getElementById("loading-text").innerText = "Saving database...";
await localforage.setItem("albums", window.albums);
await localforage.setItem("songs", window.songs);
await localforage.setItem("favorites", window.favorites);
+ await localforage.setItem("library", window.library);
document.getElementById("loading-text").innerText = "Done loading.";
document.getElementById("loading").style.display = "none";
@@ -455,7 +459,7 @@
window.currentPlaylistID = null;
- window.playSong = async (id, playlistID) => {
+ window.playSong = async (id, playlistID, updatePosition) => {
playerDocument.getElementById("player-audio").pause();
playerDocument.getElementById("player-audio").currentTime = 0;
@@ -471,6 +475,8 @@
} else if (playlistID !== "keep") {
window.playlist = [id];
window.currentPlaylistPosition = 0;
+ } else if (typeof updatePosition !== "boolean" || updatePosition) {
+ window.currentPlaylistPosition = window.playlist.indexOf(id) ?? 0;
}
} else {
window.currentPlaylistID = null;
@@ -481,6 +487,7 @@
window.currentSong = songs[id];
window.currentSongID = id;
updateDisplay();
+ if (document.getElementById("ui").contentWindow.refreshQueue) document.getElementById("ui").contentWindow.refreshQueue();
if (!window.preloaded[id]) {
if (localStorage.getItem("data-saving") === "true") {
@@ -547,5 +554,16 @@
}
}
</script>
+
+ <iframe id="modal" src="modal.php" style="width: 100vw; height: 100vh; border: none; inset: 0; position: fixed; z-index: 99999; display: none;"></iframe>
+ <script>
+ function openModal(title, url) {
+ document.getElementById("modal").style.display = "";
+ document.getElementById("modal").contentWindow.document.getElementById("modal-title").innerText = title;
+ document.getElementById("modal").contentWindow.document.getElementById("modal-frame").src = url;
+ document.getElementById("modal").contentWindow.document.getElementById("modal-frame").style.height = "calc(100vh - 130px)";
+ document.getElementById("modal").contentWindow._modal.show();
+ }
+ </script>
</body>
</html> \ No newline at end of file