summaryrefslogtreecommitdiffstats
path: root/moe.pinapelz.com/scripts
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2026-05-27 00:53:18 -0700
committerPinapelz <yukais@pinapelz.com>2026-05-27 00:55:26 -0700
commit36e053f4f0a2f63c08f7c28b9492c067f1ca42bc (patch)
treec28973073c8e26775ee4d18d1016df44afdfeceb /moe.pinapelz.com/scripts
parenta01e0666fd66c367745cdaff76fcd6ea7568c31c (diff)
migrate pinapelz.moe -> pinapelz.com
Diffstat (limited to 'moe.pinapelz.com/scripts')
-rw-r--r--moe.pinapelz.com/scripts/index.js129
1 files changed, 129 insertions, 0 deletions
diff --git a/moe.pinapelz.com/scripts/index.js b/moe.pinapelz.com/scripts/index.js
new file mode 100644
index 0000000..dbd7ade
--- /dev/null
+++ b/moe.pinapelz.com/scripts/index.js
@@ -0,0 +1,129 @@
+function fetchDiscordStatus(userId) {
+ const API_URL = `https://api.lanyard.rest/v1/users/${userId}`;
+
+ fetch(API_URL)
+ .then(response => response.json())
+ .then(data => {
+ const discordStatus = data.data.discord_status;
+
+ const statusColors = {
+ online: "#43b581",
+ idle: "#faa61a",
+ dnd: "#f04747",
+ offline: "#747f8d",
+ };
+
+ const statusText = {
+ online: "Online",
+ idle: "Idle",
+ dnd: "Do Not Disturb",
+ offline: "Offline",
+ };
+
+ const statusSection = document.getElementById(`discord-status`);
+ const statusTextElement = statusSection.querySelector(".status-text");
+
+ statusSection.style.backgroundColor = statusColors[discordStatus];
+ statusTextElement.textContent = "Currently: " + statusText[discordStatus];
+ })
+ .catch(error => console.error("Error fetching Discord status:", error));
+ }
+
+document.addEventListener("DOMContentLoaded", () => {
+ const quotes = [
+ "Give a man a fish, learn him how to eat, give a man- learn a man how to - xQc",
+ "Yeah I'm GAY, Good at Yugioh - Rosemi Lovelock",
+ "yipee - Erina Makina",
+ "Your friend doesn't like Vtubers? Tell your friend to get some taste - Pavolia Reine",
+ ];
+
+ function getRandomQuote() {
+ const randomIndex = Math.floor(Math.random() * quotes.length);
+ return quotes[randomIndex];
+ }
+
+ const quoteElement = document.getElementById("quote");
+ quoteElement.innerHTML = `<i>${getRandomQuote()}</i>`;
+});
+function updateClock() {
+ const clockElement = document.getElementById('clock');
+ const now = new Date();
+ const pstTime = new Date(now.toLocaleString("en-US", {timeZone: "America/Los_Angeles"}));
+ const hours = String(pstTime.getHours()).padStart(2, '0');
+ const minutes = String(pstTime.getMinutes()).padStart(2, '0');
+ const seconds = String(pstTime.getSeconds()).padStart(2, '0');
+ const day = String(pstTime.getDate()).padStart(2, '0');
+ const month = String(pstTime.getMonth() + 1).padStart(2, '0');
+ const year = pstTime.getFullYear();
+ let message = "good day!";
+ if (pstTime.getHours() >= 0 && pstTime.getHours() < 7) {
+ message = "(its late for me)";
+ } else if (pstTime.getHours() < 12) {
+ message = "its morning for me";
+ } else if (pstTime.getHours() >= 12 && pstTime.getHours() < 18) {
+ message = "its afternoon for me";
+ } else if (pstTime.getHours() >= 18) {
+ message = "evening rn for me";
+ }
+ clockElement.innerHTML = `<span>${month}/${day}/${year} ${hours}:${minutes}:${seconds}</span> ` + message;
+}
+
+document.addEventListener("DOMContentLoaded", () => {
+ const images = document.querySelectorAll(".random-float");
+ const positions = [];
+
+ images.forEach((img) => {
+ let randomTop, randomLeft;
+ let overlap;
+
+ do {
+ overlap = false;
+ randomTop = Math.random() * 100;
+ randomLeft = Math.random() * 100;
+ if (randomTop > 30 && randomTop < 70) {
+ overlap = true;
+ }
+ if (randomLeft > 30 && randomLeft < 70) {
+ overlap = true;
+ }
+ positions.forEach(pos => {
+ const distance = Math.sqrt(Math.pow(randomTop - pos.top, 2) + Math.pow(randomLeft - pos.left, 2));
+ if (distance < 10) {
+ overlap = true;
+ }
+ });
+ } while (overlap);
+
+ positions.push({ top: randomTop, left: randomLeft });
+
+ const randomDuration = Math.random() * 10 + 3;
+
+ img.style.top = `${randomTop}%`;
+ img.style.left = `${randomLeft}%`;
+ img.style.animationDuration = `${randomDuration}s`;
+ });
+});
+
+document.addEventListener('DOMContentLoaded', function() {
+ function fetchNowPlaying() {
+ fetch('https://a4.asurahosting.com/api/nowplaying_static/patchworkarchive.json') // Replace with the actual API endpoint
+ .then(response => response.json())
+ .then(data => {
+ const nowPlaying = data.now_playing.song;
+ document.getElementById('song-title').textContent = nowPlaying.title;
+ document.getElementById('song-artist').textContent = nowPlaying.artist;
+ const songArt = document.getElementById('song-art');
+ songArt.src = nowPlaying.art;
+ songArt.style.display = 'block';
+ })
+ .catch(error => {
+ console.error('Error fetching now playing data:', error);
+ });
+ }
+
+ fetchNowPlaying();
+ setInterval(fetchNowPlaying, 60000);
+});
+
+setInterval(updateClock, 1000);
+updateClock();
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage