Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ffbf75e60d |
@@ -9,6 +9,7 @@ services:
|
||||
- DB_PATH=/data/rr.db
|
||||
volumes:
|
||||
- route_rush_data:/data
|
||||
- ./static:/app/static
|
||||
networks:
|
||||
- web-net
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from fastapi import FastAPI, WebSocket, WebSocketDisconnect, Request
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from fastapi.templating import Jinja2Templates
|
||||
from fastapi.responses import HTMLResponse, JSONResponse
|
||||
import json, time, random, sqlite3, os
|
||||
@@ -6,6 +7,7 @@ from datetime import datetime
|
||||
|
||||
DB_PATH = os.environ.get("DB_PATH", "/data/rr.db")
|
||||
app = FastAPI()
|
||||
app.mount("/static", StaticFiles(directory="static"), name="static")
|
||||
templates = Jinja2Templates(directory="templates")
|
||||
|
||||
# ── SCORING CONSTANTS ─────────────────────────────────────────────────────────
|
||||
|
||||
@@ -660,6 +660,7 @@ function handle(msg) {
|
||||
else showRoundResults(msg);
|
||||
}
|
||||
else if (msg.type === 'podium') {
|
||||
stopBGM();
|
||||
showPodium(msg.leaderboard);
|
||||
}
|
||||
}
|
||||
@@ -685,6 +686,7 @@ document.getElementById('join-btn').addEventListener('click', () => {
|
||||
}
|
||||
|
||||
const display = `${fn} ${ln}`;
|
||||
startBGM();
|
||||
ws.send(JSON.stringify({type: 'join', name: display, dept, display}));
|
||||
});
|
||||
|
||||
@@ -787,6 +789,23 @@ function showPodium(lb) {
|
||||
|
||||
|
||||
// ── INIT ──────────────────────────────────────────────────────────────────────
|
||||
// ── BACKGROUND MUSIC ─────────────────────────────────────────────────────────
|
||||
|
||||
let bgmStarted = false;
|
||||
function startBGM() {
|
||||
const bgm = document.getElementById('bgm');
|
||||
if (bgmStarted) return;
|
||||
bgmStarted = true;
|
||||
bgm.volume = 0.20;
|
||||
bgm.play().catch(() => {});
|
||||
}
|
||||
function stopBGM() {
|
||||
const bgm = document.getElementById('bgm');
|
||||
bgm.pause();
|
||||
bgm.currentTime = 0;
|
||||
bgmStarted = false;
|
||||
}
|
||||
|
||||
window.addEventListener('resize', () => { if (grid) { setupCanvas(); drawGrid(); }});
|
||||
connectWS();
|
||||
</script>
|
||||
@@ -800,5 +819,6 @@ connectWS();
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<audio id="bgm" src="/static/music.mp3" loop preload="auto"></audio>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user