diff --git a/backend/src/app.py b/backend/src/app.py index cc704f8..abd6aae 100644 --- a/backend/src/app.py +++ b/backend/src/app.py @@ -1,10 +1,11 @@ +from typing import Any + import dotenv from flask import Flask, Response, jsonify, request from flask_cors import CORS from flask_socketio import SocketIO, emit import uuid -from .state import State from .connect import get_connection from .room import Room from .song import Song, init_db, get_song_by_title_artist, add_song_in_db @@ -22,7 +23,7 @@ socketio = SocketIO(app) CORS(app) db_conn = get_connection() -state = State(app, db_conn.cursor()) +state = State(app, socketio, db_conn.cursor()) init_db(state.db) state.rooms[1000] = Room( diff --git a/backend/src/state.py b/backend/src/state.py index ab83edc..e1f3e7c 100644 --- a/backend/src/state.py +++ b/backend/src/state.py @@ -2,6 +2,7 @@ from dataclasses import dataclass, field from sqlite3 import Cursor from flask import Flask +from flask_socketio import SocketIO from .room import Room @@ -9,5 +10,6 @@ from .room import Room @dataclass class State: app: Flask + socketio: SocketIO db: Cursor rooms: dict[int, Room] = field(default_factory=dict) # { room_id: room, ... } diff --git a/frontend/package-lock.json b/frontend/package-lock.json index b3ecdec..cf0b463 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -7,6 +7,9 @@ "": { "name": "frontend", "version": "0.0.1", + "dependencies": { + "zod": "^4.0.14" + }, "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", "@sveltejs/kit": "^2.22.0", @@ -2304,6 +2307,15 @@ "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", "dev": true, "license": "MIT" + }, + "node_modules/zod": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.0.14.tgz", + "integrity": "sha512-nGFJTnJN6cM2v9kXL+SOBq3AtjQby3Mv5ySGFof5UGRHrRioSJ5iG680cYNjE/yWk671nROcpPj4hAS8nyLhSw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/frontend/package.json b/frontend/package.json index cee9931..cdbbe97 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -26,5 +26,8 @@ "tailwindcss": "^4.0.0", "typescript": "^5.0.0", "vite": "^7.0.4" + }, + "dependencies": { + "zod": "^4.0.14" } } diff --git a/frontend/src/app.css b/frontend/src/app.css index d4b5078..90d8258 100644 --- a/frontend/src/app.css +++ b/frontend/src/app.css @@ -1 +1,15 @@ @import 'tailwindcss'; + +@keyframes spin-slower { + from { + transform: rotate(0deg); + } + + to { + transform: rotate(360deg); + } +} + +.spin-slower { + animation: spin-slower 15s linear infinite; +} diff --git a/frontend/src/lib/components/Error.svelte b/frontend/src/lib/components/Error.svelte new file mode 100644 index 0000000..47e6a19 --- /dev/null +++ b/frontend/src/lib/components/Error.svelte @@ -0,0 +1,8 @@ + + +
{message}
+No song in queue
+ {/if} +