FIX: Categories' viewers for recommendations on HomePage;

FIX: New messages sent into chat by streamer are correctly highlighted;
REFACTOR: Remove console log & comment;
This commit is contained in:
Chris-1010
2025-03-09 22:12:30 +00:00
parent 14e948021a
commit b027b57b2a
5 changed files with 10 additions and 7 deletions

View File

@@ -1,7 +1,7 @@
{ {
"name": "frontend", "name": "frontend",
"private": true, "private": true,
"version": "0.15.0", "version": "1.0.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite --config vite.config.dev.ts", "dev": "vite --config vite.config.dev.ts",

View File

@@ -169,7 +169,6 @@ const ListRow = forwardRef<ListRowRef, ListRowProps>((props, ref) => {
/> />
); );
} else if (type === "vod" && isVodType(item)) { } else if (type === "vod" && isVodType(item)) {
console.log(item);
return ( return (
<VodListItem <VodListItem
key={`vod-${item.vod_id}`} key={`vod-${item.vod_id}`}

View File

@@ -139,6 +139,7 @@ const ChatPanel: React.FC<ChatPanelProps> = ({ streamId, onViewerCountChange })
} }
socket.emit("send_message", { socket.emit("send_message", {
user_id: userId,
username: username, username: username,
stream_id: streamId, stream_id: streamId,
message: inputMessage.trim(), message: inputMessage.trim(),
@@ -193,7 +194,7 @@ const ChatPanel: React.FC<ChatPanelProps> = ({ streamId, onViewerCountChange })
<div <div
key={index} key={index}
className={`flex items-start space-x-2 rounded p-2 text-white relative ${ className={`flex items-start space-x-2 rounded p-2 text-white relative ${
msg.chatter_id === streamId ? "bg-[#0000a0] font-black border-4 border-double border-red-500" : "bg-gray-800" msg.chatter_id === streamId ? "bg-[#00005e] font-black border-4 border-double border-red-500" : "bg-gray-800"
}`} }`}
> >
{/* User avatar with image */} {/* User avatar with image */}

View File

@@ -96,7 +96,6 @@ def get_past_chat(stream_id: int):
) subquery ) subquery
ORDER BY time_sent ASC; ORDER BY time_sent ASC;
""", (stream_id, stream_id)) """, (stream_id, stream_id))
#! ASC - Oldest to Newest
db.close_connection() db.close_connection()
@@ -119,6 +118,7 @@ def send_chat(data) -> None:
""" """
# Take the message information from frontend # Take the message information from frontend
chatter_id = data.get("user_id")
chatter_name = data.get("username") chatter_name = data.get("username")
stream_id = data.get("stream_id") stream_id = data.get("stream_id")
message = data.get("message") message = data.get("message")
@@ -127,9 +127,10 @@ def send_chat(data) -> None:
if not all([chatter_name, message, stream_id]): if not all([chatter_name, message, stream_id]):
emit("error", {"error": f"Unable to send a chat. The following info was given: chatter_name={chatter_name}, message={message}, stream_id={stream_id}"}, broadcast=False) emit("error", {"error": f"Unable to send a chat. The following info was given: chatter_name={chatter_name}, message={message}, stream_id={stream_id}"}, broadcast=False)
return return
subscribed = is_subscribed(get_user_id(chatter_name), stream_id) subscribed = is_subscribed(chatter_id, stream_id)
# Send the chat message to the client so it can be displayed # Send the chat message to the client so it can be displayed
emit("new_message", { emit("new_message", {
"chatter_id": chatter_id,
"chatter_username": chatter_name, "chatter_username": chatter_name,
"message": message, "message": message,
"time_sent": datetime.now().strftime("%Y-%m-%d %H:%M:%S"), "time_sent": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
@@ -137,7 +138,7 @@ def send_chat(data) -> None:
}, room=stream_id) }, room=stream_id)
# Asynchronously save the chat # Asynchronously save the chat
save_chat(get_user_id(chatter_name), stream_id, message) save_chat(chatter_id, stream_id, message)
def save_chat(chatter_id, stream_id, message): def save_chat(chatter_id, stream_id, message):

View File

@@ -100,10 +100,12 @@ def get_user_category_recommendations(user_id = 1, no_categories: int = 4) -> Op
""" """
with Database() as db: with Database() as db:
categories = db.fetchall(""" categories = db.fetchall("""
SELECT categories.category_id, categories.category_name, categories.num_viewers SELECT categories.category_id, categories.category_name, COALESCE(SUM(streams.num_viewers), 0) AS num_viewers
FROM categories FROM categories
JOIN user_preferences ON categories.category_id = user_preferences.category_id JOIN user_preferences ON categories.category_id = user_preferences.category_id
LEFT JOIN streams ON categories.category_id = streams.category_id
WHERE user_preferences.user_id = ? WHERE user_preferences.user_id = ?
GROUP BY categories.category_id, categories.category_name
ORDER BY user_preferences.favourability DESC ORDER BY user_preferences.favourability DESC
LIMIT ? LIMIT ?
""", (user_id, no_categories)) """, (user_id, no_categories))