This commit is contained in:
Simone Tesini 2025-08-01 22:50:12 +02:00
commit 07964c469e
2 changed files with 49 additions and 16 deletions

View file

@ -17,19 +17,7 @@ socketio = SocketIO(app)
CORS(app)
ROOMS: dict[int, Room] = {
1234: Room(
1234,
(0.0, 1.0),
"Test Room",
None,
{"Rock", "Metal"},
{},
[],
[Song(mbid="test", title="<title placeholder>", artist="<artist placeholder>", tags=["Metal"], image_id="img-id", youtube_id="yt-id")],
playing_idx=1,
)
} # { room_id: room, ... }
ROOMS: dict[int, Room] = {} # { room_id: room, ... }
def error(msg: str, status: int = 400) -> Response:
@ -82,11 +70,56 @@ def queue_next():
# room.renew_queue()
emit("update_songs", {"songs": [1, 2, 3]}, broadcast=True, namespace="/")
return {"success": True, "ended": True, "index": room.playing_idx, "queue": []}
return {"success": True, "ended": True, "index": room.playing_idx, "queue": room.playing}
return {"success": True, "ended": False, "index": room.playing_idx}
@app.post("/api/room/new")
def room_new():
if (room_name := request.args.get("name")) is None:
return error("Missing room name")
if (room_cords := request.args.get("coords")) is None:
return error("Missing room coords")
if room_pin := request.args.get("pin"):
room_pin = int(room_pin)
else:
room_pin = None
lat, lon = room_cords.split(",")
room = Room(
id=max(ROOMS or [0]) + 1, #
coord=(float(lat), float(lon)),
name=room_name,
pin=room_pin,
tags=set([tag for tag in request.args.get("tags", "").split(",") if tag]),
songs={},
history=[],
playing=[],
playing_idx=-1,
)
ROOMS[room.id] = room
return {"success": True, "room_id": room.id}
@app.get("/api/room")
def room():
return [
{
"id": room.id,
"name": room.name,
"private": room.pin is not None,
"coords": room.coord,
}
for room in ROOMS.values()
]
init_db()
test_algo()
exit()

View file

@ -30,7 +30,7 @@ class Song:
youtube_id: str
def get_song_by_mbid(mbid: str) -> Song:
def get_song_by_mbid(mbid: str) -> Song | None:
conn = get_connection()
cursor = conn.cursor()
cursor.execute("SELECT * FROM songs WHERE mbid = ?", (mbid,))
@ -38,7 +38,7 @@ def get_song_by_mbid(mbid: str) -> Song:
conn.close()
if row is None:
raise ValueError(f"Song with MBID {mbid} not found")
return None
song = Song(mbid=row["mbid"], title=row["title"], artist=row["artist"], tags=row["tags"].split(","), image_id=row["lastfm_image_id"], youtube_id=row["youtube_id"])
return song