aboutsummaryrefslogtreecommitdiff
path: root/static/@solitude/js
diff options
context:
space:
mode:
authorBobby <[email protected]>2023-09-23 01:42:29 -0400
committerBobby <[email protected]>2023-09-23 01:42:29 -0400
commit8b6812816f0610f0942cfcd4eb70333b1a8e8a3f (patch)
tree184c97135df67d202fe24681423ffa25ba642d73 /static/@solitude/js
parentee777e041132206014b6be397d7c8d9a1d015265 (diff)
downloadthatcomputerscientist-8b6812816f0610f0942cfcd4eb70333b1a8e8a3f.tar.xz
thatcomputerscientist-8b6812816f0610f0942cfcd4eb70333b1a8e8a3f.zip
Removed Solitude + Refactor
Diffstat (limited to 'static/@solitude/js')
-rw-r--r--static/@solitude/js/welcome.js113
1 files changed, 0 insertions, 113 deletions
diff --git a/static/@solitude/js/welcome.js b/static/@solitude/js/welcome.js
deleted file mode 100644
index d8921075..00000000
--- a/static/@solitude/js/welcome.js
+++ /dev/null
@@ -1,113 +0,0 @@
-Object.defineProperty(Array.prototype, "shuffle", {
- value: function () {
- for (let i = this.length - 1; i > 0; i--) {
- const j = Math.floor(Math.random() * (i + 1));
- [this[i], this[j]] = [this[j], this[i]];
- }
- return this;
- },
-});
-
-const tracks = Object.entries(playlistTracks)
- .map((track) => track[1])
- .shuffle();
-
-const controls = document.querySelector(".controls");
-const audio = document.querySelector("#audio");
-const trackTitle = document.querySelector("#track-title");
-const trackArtist = document.querySelector("#track-artist");
-const albumArt = document.querySelector("#album-art");
-const minElap = document.querySelector("#min-elap");
-const secElap = document.querySelector("#sec-elap");
-const minDur = document.querySelector("#min-dur");
-const secDur = document.querySelector("#sec-dur");
-
-let currentTrack = 0;
-
-const loadAudio = new Promise((resolve, reject) => {
- audio.addEventListener("canplaythrough", () => {
- resolve(audio);
- });
-});
-
-async function playAudio() {
- audio.src = tracks[currentTrack].location;
- const duration = audio.duration;
- audio.play().catch((e) => {
- window.addEventListener(
- "click",
- () => {
- controls.click();
- audio.play();
- },
- { once: true }
- );
- });
- return audio;
-}
-
-function pauseAudio() {
- audio.pause();
-}
-
-function nextTrack() {
- currentTrack = (currentTrack + 1) % tracks.length;
- audio.currentTime = 0;
- playTrack();
-}
-
-function playTrack() {
- const track = tracks[currentTrack];
- trackTitle.textContent = track.title;
- trackArtist.textContent = track.artist;
- albumArt.src = track.cover_art;
- playAudio().then((audio) => {
- audio.addEventListener("ended", nextTrack);
- });
-}
-
-function updateIntervals() {
- const duration = audio.duration;
- const currentTime = audio.currentTime;
- const elapsed = Math.floor(currentTime);
- const total = Math.floor(duration);
- const minutesElapsed = Math.floor(elapsed / 60);
- const secondsElapsed = elapsed % 60;
- const minutesTotal = Math.floor(total / 60) || 0;
- const secondsTotal = total % 60 || 0;
- minElap.textContent =
- minutesElapsed < 10 ? `0${minutesElapsed}` : minutesElapsed;
- secElap.textContent =
- secondsElapsed < 10 ? `0${secondsElapsed}` : secondsElapsed;
- minDur.textContent = minutesTotal < 10 ? `0${minutesTotal}` : minutesTotal;
- secDur.textContent = secondsTotal < 10 ? `0${secondsTotal}` : secondsTotal;
-}
-
-function togglePlayPause() {
- const buttons = Array.from(this.children);
- let triggeredButton;
- buttons.forEach((button) => {
- if (!button.classList.contains("hidden")) {
- triggeredButton = button;
- }
- button.classList.toggle("hidden");
- });
- signalTrigger(triggeredButton);
-}
-
-function signalTrigger(button) {
- const role = button.getAttribute("role");
- switch (role) {
- case "play":
- playAudio();
- break;
- case "pause":
- pauseAudio();
- break;
- }
-}
-
-audio.currentTime = 0;
-controls.addEventListener("click", togglePlayPause);
-audio.addEventListener("timeupdate", updateIntervals);
-playTrack();