diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..29ed7db --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules +nul +package-lock.json \ No newline at end of file diff --git a/BGMHUD.css b/BGMHUD.css new file mode 100644 index 0000000..7ceaaef --- /dev/null +++ b/BGMHUD.css @@ -0,0 +1,45 @@ +/* BGM Title Box - Desktop Styles */ +#bgm-title { + position: fixed !important; + top: 10px !important; + right: 10px !important; + padding: 8px 12px !important; + background-color: rgba(0, 0, 0, 0.8) !important; + color: #ffeb3b !important; + border: 2px solid yellow !important; + border-radius: 5px !important; + z-index: 9999 !important; + font-family: 'Sono', Arial, sans-serif !important; + font-size: 12px !important; + font-weight: bold !important; + text-shadow: 1px 1px 2px black !important; + opacity: 0 !important; + display: block !important; + visibility: visible !important; + box-shadow: 0 0 10px rgba(255, 235, 59, 0.3) !important; +} +#bgm-title.visible { + opacity: 1 !important; +} + +/* Mobile: centered at top */ +@media (max-width: 600px) { + #bgm-title { + position: fixed !important; + top: 0 !important; + left: 50% !important; + right: auto !important; + transform: translateX(-50%) !important; + width: 100% !important; + max-width: 100% !important; + border-radius: 0 0 5px 5px !important; + text-align: center !important; + box-sizing: border-box !important; + } + body { + padding-top: 40px !important; + } + #nl, img[src*="webneko"] { + margin-top: 40px !important; + } +} diff --git a/BGM_Integration_Guide.md b/BGM_Integration_Guide.md new file mode 100644 index 0000000..d536ec6 --- /dev/null +++ b/BGM_Integration_Guide.md @@ -0,0 +1,18 @@ +# BGM Workflow Guide + +This guide outlines the process for implementing or modifying Background Music (BGM) functionality across any page using `Music/bgm.js`. + +## What I do (Instructions in bullet points, excluding page specific logic) +* **Dependencies:** Ensure `Music/bgm.js` and necessary CSS (`BGMHUD.css`, `normalbordem.css`) are loaded on the target page. +* **Required HTML Elements:** The page must contain `
` and `
`. +* **Initialization:** Call `SongRNG('initial')` in the page's script block to start playback immediately upon loading. +* **Manual Control:** For manual control, call `MIDIjs.play(urlOrId, true)` directly when needed. + +## What NOT to do (General safety for AI agents) +* Do not modify the core logic within `Music/bgm.js` unless explicitly instructed by a developer request. +* Never assume that calling `SongRNG()` is sufficient; always check if manual playback control (`MIDIjs.play()`) is required after initialization. + +## When to use me (When the agent should execute this workflow, eg when asked to add BGM support to a page) +* Use this guide when implementing or modifying BGM features on any page. The process involves updating the target page's HTML/JS and committing changes to `Music/bgm.js` if core logic needs adjustment. + +*** \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..efbf9ce --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +# Use the official Nginx image as a base +FROM nginx:alpine + +# Copy the current project files into the container +# Copy custom Nginx configuration +COPY nginx.conf /etc/nginx/conf.d/ +COPY . /usr/share/nginx/html + +# Expose port 80 for testing +EXPOSE 80 +EXPOSE 9000 + +# Configure Nginx to serve the files +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/Games/index.html b/Games/index.html index 95915c8..422eb5d 100644 --- a/Games/index.html +++ b/Games/index.html @@ -5,19 +5,32 @@ DOOFENSMIRTZ ONLINE + + + + +
+ +
+ + + +
+
+

Doofensmirtz Evil Incorperated Game Revewal Services

"that's some sick beat"

WebTV City @@ -36,4 +49,11 @@ + + + diff --git a/Games/nicosnb.html b/Games/nicosnb.html index d71e24b..ea59fa9 100644 --- a/Games/nicosnb.html +++ b/Games/nicosnb.html @@ -6,18 +6,31 @@ loud PNG game + + - + + + +
+ +
+ + + +
+
+

Doofensmirtz Evil Incorperated Game Revewal Services

"thats some sick beat"

WebTV City @@ -48,5 +61,12 @@ HalfLife Event (bodermen event) + + + diff --git a/Games/phightingold.html b/Games/phightingold.html index 78918ad..8dfa8f6 100644 --- a/Games/phightingold.html +++ b/Games/phightingold.html @@ -8,16 +8,29 @@ + + - + + + +
+ +
+ + + +
+
+

Doofensmirtz Evil Incorperated Game Revewal Services

"thats some sick beat"

WebTV City @@ -57,5 +70,12 @@ + + + diff --git a/Games/phigting.html b/Games/phigting.html index 297889b..1317964 100644 --- a/Games/phigting.html +++ b/Games/phigting.html @@ -8,16 +8,29 @@ + + - + + + +
+ +
+ + + +
+
+

Doofensmirtz Evil Incorperated Game Revewal Services

"thats some sick beat"

WebTV City @@ -61,5 +74,12 @@ + + + diff --git a/Music/bgm.js b/Music/bgm.js new file mode 100644 index 0000000..caacbe0 --- /dev/null +++ b/Music/bgm.js @@ -0,0 +1,119 @@ +//Based off of the one found at not_found.html but randomizes the songs +let song = "/Music/noway.mid" +let autoplaySupported = false; +let audioLoadFailed = false; +let consecutivefails = 0; +let audioCheckDone = false; + +document.addEventListener('DOMContentLoaded', function() { + document.addEventListener('error', function(e) { + if (e.target && e.target.src && e.target.src.includes('/Music/bgm/')) { + audioLoadFailed = true; + console.error('BGM: Failed to load audio file:', e.target.src); + } + }, true); +}); + +function SongRNG(reason = 'initial') { + //this is actually code from minima and its absolutely NOT made for this BUT WHO CARES???? + let lines = ["AnotherMedium-Updated.mid", "CORE_.mid", "Death_by_Glamour.mid", "maniaStudiopolisZoneAct1.mid", "maniaStudiopolisZoneAct2.mid", "mk7_select_menu.mid", "Mpntbgm1.mid", "MPntBgk2.mid", "portal.mid", "SmashMenu.mid", "funni.mid", "utruins.mid"] + let titles = ["Another Medium", "CORE", "Death by Glamour", "Studiopolis Act 1 (Lights, Camera, Action!)", "Studiopolis Act 2", "Select a kart", "Creative Exersise", "Monkeys", "Still Alive", "Main Menu", "24 Hour Cinderella", "The Ruins"] + let games = ["Undertale", "Undertale", "Undertale", "Sonic Mania", "Sonic Mania", "Mario Kart 7", "Mario Paint", "Mario Paint", "Portal", "SSB Wii U/3DS", "Yakuza", "Undertale"] + let max = lines.length - 1; + let randint = Math.floor(Math.random() * (max + 1)); + + // Display song title on page + try { + let contentEl = document.getElementById('bgm-title-content'); + let titleEl = document.getElementById('bgm-title'); + + if (contentEl) { + contentEl.textContent = titles[randint] + " - " + games[randint]; + } else if (titleEl) { + titleEl.textContent = titles[randint] + " - " + games[randint]; + } + + if (titleEl) titleEl.classList.add('visible'); + } catch(e) { + console.warn("BGM title display unavailable (element may not exist on this page)"); + } + + console.log('BGM: Now playing:', titles[randint], '-', games[randint], '(' + reason + ')'); + song = "/Music/bgm/" + lines[randint]; + MIDIjs.play(song, true); +} + +function checkAudioContext() { + try { + if (audioLoadFailed) { + return false; + } + + // Use MIDIjs to check actual audio status + const status = MIDIjs.get_audio_status(); + if (status && status.audioMethod) { + // If we have an audio method, check if it's actually playing + if (status.playing) { + return true; + } + // Audio method exists but not playing - autoplay blocked + console.warn('BGM: Audio available but not playing (autoplay blocked)'); + return false; + } + return false; + } catch(e) { + console.error('BGM: AudioContext check failed:', e); + return false; + } +} + +function checkAudio() { + if (audioCheckDone) return; + + try { + let apbox = document.getElementById("autoplay"); + if (!apbox) { + return; + } + + if (!checkAudioContext()) { + consecutivefails++; + if (consecutivefails >= 2) { + audioCheckDone = true; + console.warn('BGM: Autoplay blocked - showing modal'); + apbox.innerHTML = '

Music is playing, but your autoplay is turned off.

'; + } else { + console.warn('BGM: Retry checkAudio in 3 seconds'); + setTimeout(function(){ + checkAudio(); + }, 3000); + } + } else { + audioCheckDone = true; + console.log('BGM: Music is playing successfully'); + apbox.innerHTML = '
✅ Music is playing!
'; + apbox.style.display = 'none'; + } + } catch(e) { + console.error('BGM: Error in checkAudio:', e); + } +} + +function handlePlayingEvent(event) { + if (event.status === 'playing' || event.time !== undefined) { + // Music is actively playing - checkAudio will handle showing success + } +} + +SongRNG('initial'); +let isPlaying = false; +console.log('BGM: Initializing...'); +autoplaySupported = checkAudioContext(); + +setTimeout(function(){ + checkAudio(); +}, 3000); + +MIDIjs.player_callback = function(event) { + handlePlayingEvent(event); +}; \ No newline at end of file diff --git a/Music/bgm/AnotherMedium-Updated.mid b/Music/bgm/AnotherMedium-Updated.mid new file mode 100644 index 0000000..ac54b01 Binary files /dev/null and b/Music/bgm/AnotherMedium-Updated.mid differ diff --git a/Music/bgm/BSXSoundlink.mp3 b/Music/bgm/BSXSoundlink.mp3 new file mode 100644 index 0000000..4476efd Binary files /dev/null and b/Music/bgm/BSXSoundlink.mp3 differ diff --git a/Music/bgm/BSXSoundlinkFIXED.mid b/Music/bgm/BSXSoundlinkFIXED.mid new file mode 100644 index 0000000..0555ce4 Binary files /dev/null and b/Music/bgm/BSXSoundlinkFIXED.mid differ diff --git a/Music/bgm/CORE_.mid b/Music/bgm/CORE_.mid new file mode 100644 index 0000000..8ef8a0b Binary files /dev/null and b/Music/bgm/CORE_.mid differ diff --git a/Music/bgm/Death_by_Glamour.mid b/Music/bgm/Death_by_Glamour.mid new file mode 100644 index 0000000..842851d Binary files /dev/null and b/Music/bgm/Death_by_Glamour.mid differ diff --git a/Music/bgm/MPntBkg2.mid b/Music/bgm/MPntBkg2.mid new file mode 100644 index 0000000..81fddc2 Binary files /dev/null and b/Music/bgm/MPntBkg2.mid differ diff --git a/Music/bgm/Mpntbgm1.mid b/Music/bgm/Mpntbgm1.mid new file mode 100644 index 0000000..a398ce8 Binary files /dev/null and b/Music/bgm/Mpntbgm1.mid differ diff --git a/Music/bgm/Sample3BSX.mp3 b/Music/bgm/Sample3BSX.mp3 new file mode 100644 index 0000000..9bb837c Binary files /dev/null and b/Music/bgm/Sample3BSX.mp3 differ diff --git a/Music/bgm/SmashMenu.mid b/Music/bgm/SmashMenu.mid new file mode 100644 index 0000000..5a9e13c Binary files /dev/null and b/Music/bgm/SmashMenu.mid differ diff --git a/Music/bgm/funni.mid b/Music/bgm/funni.mid new file mode 100644 index 0000000..06122d5 Binary files /dev/null and b/Music/bgm/funni.mid differ diff --git a/Music/bgm/maniaStudiopolisZoneAct1.mid b/Music/bgm/maniaStudiopolisZoneAct1.mid new file mode 100644 index 0000000..c1dedb5 Binary files /dev/null and b/Music/bgm/maniaStudiopolisZoneAct1.mid differ diff --git a/Music/bgm/maniaStudiopolisZoneAct2.mid b/Music/bgm/maniaStudiopolisZoneAct2.mid new file mode 100644 index 0000000..0e44ade Binary files /dev/null and b/Music/bgm/maniaStudiopolisZoneAct2.mid differ diff --git a/Music/bgm/mk7_select_menu.mid b/Music/bgm/mk7_select_menu.mid new file mode 100644 index 0000000..051ab86 Binary files /dev/null and b/Music/bgm/mk7_select_menu.mid differ diff --git a/Music/bgm/portal.mid b/Music/bgm/portal.mid new file mode 100644 index 0000000..76bcc80 Binary files /dev/null and b/Music/bgm/portal.mid differ diff --git a/Music/bgm/rhythmheaven4thmix.mid b/Music/bgm/rhythmheaven4thmix.mid new file mode 100644 index 0000000..b5f2eae Binary files /dev/null and b/Music/bgm/rhythmheaven4thmix.mid differ diff --git a/Music/bgm/utruins.mid b/Music/bgm/utruins.mid new file mode 100644 index 0000000..66b8680 Binary files /dev/null and b/Music/bgm/utruins.mid differ diff --git a/Music/noway.mid b/Music/noway.mid new file mode 100644 index 0000000..e7a559a Binary files /dev/null and b/Music/noway.mid differ diff --git a/Music/vault1.mid b/Music/vault1.mid new file mode 100644 index 0000000..ad04fb2 Binary files /dev/null and b/Music/vault1.mid differ diff --git a/Music/vault2.mid b/Music/vault2.mid new file mode 100644 index 0000000..8f9f7dc Binary files /dev/null and b/Music/vault2.mid differ diff --git a/Music/vault3.mid b/Music/vault3.mid new file mode 100644 index 0000000..77304ed Binary files /dev/null and b/Music/vault3.mid differ diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..7d05612 --- /dev/null +++ b/SKILL.md @@ -0,0 +1,12 @@ +## What I do (Instructions in bullet points, excluding page specific logic) + +### **Workflow Steps:** +* **Dependencies Check:** Verify that `Music/bgm.js`, `BGMHUD.css`, MIDI.js, and `normalbordem.css` are loaded on the target page. +* **Required HTML Elements:** The page must contain `
` and `
`. +* **Manual Control:** For manual control, call `MIDIjs.play(urlOrId, true)` directly in your page's script block. + +## What NOT to do +* Do not modify the core logic within `Music/bgm.js`. + +## When to use me (When the agent should execute this workflow, eg when asked to add BGM support to a page) +* Use this guide when implementing or modifying BGM features on any page. The process involves updating the target page's HTML/JS. \ No newline at end of file diff --git a/Vault/about.html b/Vault/about.html new file mode 100644 index 0000000..e399a7d --- /dev/null +++ b/Vault/about.html @@ -0,0 +1,335 @@ + + + + + + + the vault. + + + + + + + + + + + + + +

+ +
+

About DoofOnline

+

last updated 11/5/25

+

"Why was any and everything alive?"

+

-Miracle Musical

+

welcome to doofensmirtz online! i'm your host, unfunny. this is a small passion project of mine and my first HTML project that i actually published online :)
things have changed a lot in the almost 3 years since then, so here we are

+
+ + +
+

but why?

+

i wanted to try to teach myself (very basic, lol) HTML. it's also a place for me to publish and link to all of the other shenanigans i've been up to.

+

there's a lot of unused content scattered around the site from various projects. i'll link you a couple.

Eternal Rain

Eternal Bliss (Chatroom)

Beta site warning (Unused)

Captive Portral Test Page

+
tip: hover over each link for some backstory!
+

you know the name is misspelled, right?

+

yeah about that lol

+

i forgot the "h" in the name when registering the site, and i just kinda ran with it ever since

+

acutally there's a mirror i set up which is CORRECTLY spelled but it will auto redirect here if you don't specificaly go to like index2.html or something

+

the beta site is selfhosted?

+

correct! that's partially for storage and upload reasons but also because a lot of the more experimental branches
(for example, the MUSIC branch which is live on the beta site rn) contain file types that can't be uploaded to neocities (namely, MIDI and MP3))

+

if you want to check it out, it's at evil.randomhack.com

+

contact?

+

uhh i don't have an email setup for this yet BUT feel free to message me on discord: @unfunny_user

+ + +
\ No newline at end of file diff --git a/Vault/index.html b/Vault/index.html index a0c60b3..8e0b933 100644 --- a/Vault/index.html +++ b/Vault/index.html @@ -8,6 +8,8 @@ + + @@ -15,13 +17,15 @@ +
+

Doofensmirtz Evil Incorperated Storage Services

-

"NOT open to the public, dont even ask."

-

-Dr. Heinz

+

"Guarenteed to update some time in the next 9 quintillion years!"

+

-unfunny

mostly just random stuff and storage for neat things

links

@@ -90,4 +94,53 @@

run by your cat overlords here at neocities.

+ diff --git a/Vault/music.html b/Vault/music.html index a12c09d..fd99df7 100644 --- a/Vault/music.html +++ b/Vault/music.html @@ -21,7 +21,7 @@ href="https://webneko.net">Neko

Doofensmirtz Evil Incorperated Storage Services

"Futures, made of, virual insanity!"

-

-jamiroquai/p> +

-jamiroquai

@@ -42,7 +42,13 @@ href="https://webneko.net">Neko - + + + + + + + diff --git a/actions/neocities.yaml b/actions/neocities.yaml deleted file mode 100644 index fcfd548..0000000 --- a/actions/neocities.yaml +++ /dev/null @@ -1,18 +0,0 @@ -name: Deploy to Neocities -description: Deploys the site to Neocities on release events. -on: - release: - types: [published] -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Deploy to Neocities - env: - NEOCITIES_USERNAME: ${{ secrets.NEOCITIES_USERNAME }} - NEOCITIES_TOKEN: ${{ secrets.NEOCITIES_TOKEN }} - run: | - npx neocities-cli upload --site mysite.neocities.org . --exclude actions/ --exclude .git diff --git a/cdphx.js b/cdphx.js deleted file mode 100644 index 037f2da..0000000 --- a/cdphx.js +++ /dev/null @@ -1,39 +0,0 @@ -// Set the date we're counting down to -var countDownDate = new Date("Jun 6, 2025 03:00:00"); - -function getBusinessDays(startDate, endDate) { - var day = startDate.getDay(); - var businessDays = 0; - while (startDate <= endDate) { - if (day !== 0 && day !== 6) { // Skip weekends (Sunday=0, Saturday=6) - businessDays++; - } - startDate.setDate(startDate.getDate() + 1); - day = startDate.getDay(); - } - return businessDays; -} - -//Update the count down every 1 second -var x = setInterval(function() { - - //Get today's date and time - var now = new Date(); - var distance = getBusinessDays(now, countDownDate); - - // Time calculations for days, hours, minutes and seconds - var days = Math.floor(distance); - var hours = Math.floor((distance % 1) * 24); - var minutes = Math.floor((hours % 1) * 60); - var seconds = Math.floor((minutes % 1) * 60); - - // Display the result in the element with id="demo" - document.getElementById("demo").innerHTML = days + "d " + hours + "h " - + minutes + "m " + seconds + "s remain"; - - // If the count down is finished, write some text - if (distance < 0) { - clearInterval(x); - document.getElementById("demop").innerHTML = "freedom, at last"; - } -}, 1000); \ No newline at end of file diff --git a/compat.js b/compat.js index 8298c42..a34bae2 100644 --- a/compat.js +++ b/compat.js @@ -1,3 +1,4 @@ +// THIS SHOULD NOT BE LOADED - Legacy redirect script, remove from all pages function isMyAppUA(testUA) { if(testUA == undefined) return false; diff --git a/eternalrain/bliss.css b/eternalrain/bliss.css index c31546a..7a515a4 100644 --- a/eternalrain/bliss.css +++ b/eternalrain/bliss.css @@ -7,6 +7,10 @@ color:white; padding-bottom: 100px; } + a { + color: darkgreen; + filter: drop-shadow(1 1 5 black); + } .vapor { position: absolute; bottom: 0; diff --git a/index.html b/index.html index f30740c..f05a549 100644 --- a/index.html +++ b/index.html @@ -15,33 +15,53 @@ + + + + +
+ +
+ + + + + +
+
- -

revamp coming whenever

-

-retro

+ +

What if the earth was purple?

+

purble palace?

+

-unfunny

+

-WebTV City +WebTV City
Vault Game ratings -e t e r n a l b l i s s -Video Game OST Poll + + +

Animation

The Bloginator

- + +
+ +About

@@ -61,8 +81,12 @@ href="https://webneko.net"> Web Clap by FC2
although no-one is ever going to sign this thing
+
it would be pretty cool though

featured thingamabob

- + +
+
Don't worry, the featured mabober gets changed at least once every cycle
+
probably (Who Knows 😁)

mmm crunchy xen crystals


@@ -79,3 +103,10 @@ Current Viewers: - +

What if the earth was purple?

+

purble palace?

+

-unfunny


Fireworks @@ -55,9 +30,12 @@ window.addEventListener('DOMContentLoaded', newLine);
Vault Game ratings -e t e r n a l b l i s s -Video Game OST Poll +

Animation

+

The Bloginator

+ +
+About


@@ -74,6 +52,7 @@ window.addEventListener('DOMContentLoaded', newLine); Sign the Guest-Loginator!
although no-one is ever going to sign this thing
+
it would be pretty cool though

mmm crunchy xen crystals



diff --git a/newlogo.png b/newlogo.png new file mode 100644 index 0000000..4440bfd Binary files /dev/null and b/newlogo.png differ diff --git a/newstuff.xml b/newstuff.xml index b867562..6d06018 100644 --- a/newstuff.xml +++ b/newstuff.xml @@ -5,7 +5,10 @@ https://doofensmirtzevil.neocities.org check out some new stuff. or not. -link central is out! +this feed is ancient. get out. +seriously, get out. go to the rss linked on the homepage, looser + +

hello!

the link central is finally a thing after forever.

now go check it out or something
diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..06ceea7 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,9 @@ +server { + listen 80; + server_name localhost; + + location / { + root /usr/share/nginx/html; + index index.html; + } +} \ No newline at end of file diff --git a/not_found.html b/not_found.html index 4047d8e..d5f5c8a 100644 --- a/not_found.html +++ b/not_found.html @@ -1,6 +1,24 @@ + + + @@ -17,13 +35,18 @@ - - + +

Neko

+
+
+

404

+
No way? No way! No way! No way! No way? No way! No way! No way! No way? No way! No way! No way! No way? No way! No way! No way! No way? No way! No way! No way! No way? No way! No way! No way! No way? No way! No way! No way! No way? No way! No way! No way! No way? No way! No way! No way! No way? No way! No way! No way! No way? No way! No way! No way! No way? No way! No way! No way!
+

Page Not Exsistant At This Time

whoops counter @@ -31,5 +54,35 @@ href="https://webneko.net">Neko - + + diff --git a/push-to-neocities.sh b/push-to-neocities.sh deleted file mode 100644 index 8b13789..0000000 --- a/push-to-neocities.sh +++ /dev/null @@ -1 +0,0 @@ - diff --git a/serve.py b/serve.py new file mode 100644 index 0000000..67a01ce --- /dev/null +++ b/serve.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 +"""Simple HTTP server for testing - runs in background""" +import http.server +import socketserver +import subprocess +import sys + +PORT = 8080 + +class Handler(http.server.SimpleHTTPRequestHandler): + def log_message(self, format, *args): + pass # Suppress logging + + def end_headers(self): + self.send_header('Cache-Control', 'no-store, no-cache, must-revalidate') + self.send_header('Expires', '0') + super().end_headers() + +if __name__ == "__main__": + with socketserver.TCPServer(("", PORT), Handler) as httpd: + print(f"Server running at http://localhost:{PORT}") + sys.stdout.flush() + httpd.serve_forever() diff --git a/skypecd.js b/skypecd.js deleted file mode 100644 index d5b4e46..0000000 --- a/skypecd.js +++ /dev/null @@ -1,53 +0,0 @@ -//time since -// Set the date we're counting from -//var countFromDate = new Date("Jun 11, 2025 5:00:00").getTime(); - -// Update the count every 1 second -//var x = setInterval(function() { - - // Get today's date and time -//var nowsk = new Date().getTime(); - - // Find the distanceSK between now and the count from date -//var distanceSK = now - countFromDate; - - // Time calculations for daysSK, hours, minutes and secondsSK -//var daysSK = Math.floor(distanceSK / (1000 * 60 * 60 * 24)); -//var hours = Math.floor((distanceSK % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); -//var minutes = Math.floor((distanceSK % (1000 * 60 * 60)) / (1000 * 60)); -//var secondsSK = Math.floor((distanceSK % (1000 * 60)) / 1000); - // Display the result in the element with id="skype" -// document.getElementById("skype").innerHTML = "you have " + daysSK + "d " + hours + "h " -// + minutes + "m " + secondsSK + " until your freedom"; - -//}, 1000); -//this is a countdown untill school ends -//count down -// Set the date we're counting down to -var countDownDateS = new Date("May 6, 2025 00:00:00").getTime(); - - //Update the count down every 1 second -var x = setInterval(function() { - - //Get today's date and time - var nowsk = new Date().getTime(); - - // Find the distance between nowsk and the count down date - var distanceSK = countDownDateS - nowsk; - - // Time calculations for daysSK, hours, minutes and secondsSK - var daysSK = Math.floor(distanceSK / (1000 * 60 * 60 * 24)); - var hoursSK = Math.floor((distanceSK % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); - var minutesSK = Math.floor((distanceSK % (1000 * 60 * 60)) / (1000 * 60)); - var secondsSK = Math.floor((distanceSK % (1000 * 60)) / 1000); - - // Display the result in the element with id="skype" - document.getElementById("skype").innerHTML = daysSK + "d " + hoursSK + "h " - + minutesSK + "m " + secondsSK + "s remain until doomsday."; - - // If the count down is finished, write some text - if (distanceSK < 0) { - clearInterval(x); - document.getElementById("skype").innerHTML = "ggs boys"; - } -}, 1000); \ No newline at end of file diff --git a/test-bgm.html b/test-bgm.html new file mode 100644 index 0000000..c7c811e --- /dev/null +++ b/test-bgm.html @@ -0,0 +1,51 @@ + + + BGM.js Test - Song Title Display + + + + + + + + + + + +
+

BGM.js Song Title Test

+

The song title should appear in the top-right corner immediately.

+ ← Back to main site +
+ +
+

Test Checklist

+
    +
  • ✅ Song title appears in top-right corner
  • +
  • ✅ Title is readable (yellow text on dark background)
  • +
  • ✅ Title matches current song from randomizer
  • +
  • ✅ Loading order: MIDI.js → BGM.js → Title element
  • +
+
+ + +
+ +
+ + + + + + + +
+

Auto-changes song every 30 seconds (inline script)

+

Click refresh to stop auto-refresh

+
+ + diff --git a/test-debug.html b/test-debug.html new file mode 100644 index 0000000..84b5f44 --- /dev/null +++ b/test-debug.html @@ -0,0 +1,147 @@ + + + + BGM.js Debug Test + + + + + +

🎵 BGM.js Debug Test

+ +
+

Debug Console

+
+
+ +
+

DOM Check

+
+
+ +
+

CSS Check

+
+
+ + + + +
Loading...
+ + + + + + + + + + + + + + + +
+

Instructions

+

1. Check the "Debug Console" above for loading messages

+

2. Check "DOM Check" to see if #bgm-title exists and its properties

+

3. Check "CSS Check" to see computed styles

+

4. Look for a YELLOW BOX in the TOP-RIGHT CORNER of this page

+

5. Open DevTools Console (F12) for more details

+
+ +

← Back to main site

+ + diff --git a/test.py b/test.py new file mode 100644 index 0000000..43a61b9 --- /dev/null +++ b/test.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 +# Simple HTTP Test Server +# Run: python test.py [port] +import http.server +import socketserver + +def main(): + PORT = int(sys.argv[1]) if len(sys.argv) > 1 else 8080 + print(f"Serving at http://localhost:{PORT}") + print("Test pages:") + print(" /test-bgm.html - BGM.js song title test") + print() + print("Available files at:") + print(" /index.html") + print(" /Music/bgm.js") + print() + + handler = http.server.SimpleHTTPRequestHandler + httpd = socketserver.TCPServer(("", PORT), handler) + + try: + httpd.serve_forever() + except KeyboardInterrupt: + print("\nStopped.") + +if __name__ == "__main__": + import sys + main() diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..1d65527 --- /dev/null +++ b/test.sh @@ -0,0 +1,10 @@ +#!/bin/bash +echo "Bulding image..." +docker build -t doof . +echo "Running container. remember to delete unless you like your storage being used up" +echo "Deleting old container if it exists..." +docker rm -f doofonline_container +echo "Starting new container..." +docker run -d -p 80:80 --name doofonline_container doof +echo "Live, opening browser..." +xdg-open http://localhost \ No newline at end of file