From 3528b6517a3a62a87edb3d73e46a5e806e788fa9 Mon Sep 17 00:00:00 2001 From: white <122345776@umail.ucc.ie> Date: Mon, 17 Feb 2025 12:18:23 +0000 Subject: [PATCH] FIX: fixed issues loading content on new accounts --- .../src/components/Stream/StreamerRoute.tsx | 2 +- web_server/blueprints/chat.py | 19 ++++++++++++++++--- web_server/blueprints/streams.py | 3 ++- web_server/utils/stream_utils.py | 2 +- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/Stream/StreamerRoute.tsx b/frontend/src/components/Stream/StreamerRoute.tsx index 4ced6b1..f963871 100644 --- a/frontend/src/components/Stream/StreamerRoute.tsx +++ b/frontend/src/components/Stream/StreamerRoute.tsx @@ -15,7 +15,7 @@ const StreamerRoute: React.FC = () => { const response = await fetch(`/api/user/${streamerName}/status`); const data = await response.json(); setIsLive(Boolean(data.is_live)); - setStreamId(data.most_recent_stream); + setStreamId(data.user_id); } catch (error) { console.error("Error checking stream status:", error); setIsLive(false); diff --git a/web_server/blueprints/chat.py b/web_server/blueprints/chat.py index ccde56b..a6f0e0e 100644 --- a/web_server/blueprints/chat.py +++ b/web_server/blueprints/chat.py @@ -1,4 +1,4 @@ -from flask import Blueprint, jsonify, session +from flask import Blueprint, jsonify from database.database import Database from .socket import socketio from flask_socketio import emit, join_room, leave_room @@ -7,7 +7,7 @@ from utils.user_utils import get_user_id chat_bp = Blueprint("chat", __name__) -# <---------------------- ROUTES NEEDS TO BE CHANGED TO VIDEO OR DELETED AS DEEMED APPROPRIATE ----------------------> +#NOTE: <---------------------- ROUTES NEEDS TO BE CHANGED TO VIDEO OR DELETED AS DEEMED APPROPRIATE ----------------------> @socketio.on("connect") def handle_connection() -> None: @@ -23,6 +23,7 @@ def handle_join(data) -> None: Allow a user to join the chat of the stream they are watching. """ stream_id = data.get("stream_id") + print(f"Stream ID GLORP: {stream_id}", flush=True) if stream_id: join_room(stream_id) num_viewers = len(list(socketio.server.manager.get_participants("/", stream_id))) @@ -117,4 +118,16 @@ def save_chat(chatter_id, stream_id, message): db.execute(""" INSERT INTO chat (chatter_id, stream_id, message) VALUES (?, ?, ?);""", (chatter_id, stream_id, message)) - db.close_connection() \ No newline at end of file + db.close_connection() + +def update_viewers(stream_id, num_viewers): + """ + Live Update the number of viewers in the stream to be + displayed in the homepage or discovery pages + """ + db = Database() + db.execute(""" + UPDATE streams + SET num_viewers = ? + WHERE user_id = ?; + """) \ No newline at end of file diff --git a/web_server/blueprints/streams.py b/web_server/blueprints/streams.py index 999424a..a0f306c 100644 --- a/web_server/blueprints/streams.py +++ b/web_server/blueprints/streams.py @@ -128,7 +128,8 @@ def user_live_status(username): return jsonify({ "is_live": is_live, - "most_recent_stream": most_recent_vod + "most_recent_stream": most_recent_vod, + "user_id": user_id }) diff --git a/web_server/utils/stream_utils.py b/web_server/utils/stream_utils.py index 7519320..8918b5b 100644 --- a/web_server/utils/stream_utils.py +++ b/web_server/utils/stream_utils.py @@ -72,7 +72,7 @@ def get_latest_vod(user_id: int): Returns data of the most recent stream by a streamer """ with Database() as db: - latest_vod = db.fetchone("""SELECT * FROM vods WHERE user_id = ? ORDER BY vod_id DESC LIMIT 1;""", (user_id,)) + latest_vod = db.fetchone("""SELECT * FROM vods WHERE user_id = ? ORDER BY vod_id DESC;""", (user_id,)) return latest_vod def get_user_vods(user_id: int):