FEAT: End any ongoing stream before a user logs out;
UPDATE: Remove assignments to session after registering a new user; UPDATE: Create directories for user upon logging in in case they do not exist yet;
This commit is contained in:
@@ -95,12 +95,6 @@ def signup():
|
|||||||
|
|
||||||
# Create user directories for stream data
|
# Create user directories for stream data
|
||||||
path_manager.create_user(username)
|
path_manager.create_user(username)
|
||||||
|
|
||||||
# Create session for new user, to avoid them having unnecessary state info
|
|
||||||
session.clear()
|
|
||||||
session["username"] = username
|
|
||||||
session["user_id"] = get_user_id(username)
|
|
||||||
print(f"Logged in as {username}. session: {session.get('username')}. user_id: {session.get('user_id')}", flush=True)
|
|
||||||
# send_email(username)
|
# send_email(username)
|
||||||
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
@@ -179,7 +173,10 @@ def login():
|
|||||||
"message": "Invalid username or password"
|
"message": "Invalid username or password"
|
||||||
}), 401
|
}), 401
|
||||||
|
|
||||||
# Set up session to avoid having unncessary state information
|
# Add user directories for stream data in case they don't exist
|
||||||
|
path_manager.create_user(username)
|
||||||
|
|
||||||
|
# Set up session
|
||||||
session.clear()
|
session.clear()
|
||||||
session["username"] = username
|
session["username"] = username
|
||||||
session["user_id"] = get_user_id(username)
|
session["user_id"] = get_user_id(username)
|
||||||
@@ -209,8 +206,27 @@ def logout() -> dict:
|
|||||||
"""
|
"""
|
||||||
Log out and clear the users session.
|
Log out and clear the users session.
|
||||||
|
|
||||||
|
If the user is currently streaming, end their stream first.
|
||||||
Can only be accessed by a logged in user.
|
Can only be accessed by a logged in user.
|
||||||
"""
|
"""
|
||||||
|
from database.database import Database
|
||||||
|
from utils.stream_utils import end_user_stream
|
||||||
|
|
||||||
|
# Check if user is currently streaming
|
||||||
|
user_id = session.get("user_id")
|
||||||
|
username = session.get("username")
|
||||||
|
|
||||||
|
with Database() as db:
|
||||||
|
is_streaming = db.fetchone("""SELECT is_live FROM users WHERE user_id = ?""", (user_id,))
|
||||||
|
|
||||||
|
if is_streaming and is_streaming.get("is_live") == 1:
|
||||||
|
# Get the user's stream key
|
||||||
|
stream_key_info = db.fetchone("""SELECT stream_key FROM users WHERE user_id = ?""", (user_id,))
|
||||||
|
stream_key = stream_key_info.get("stream_key") if stream_key_info else None
|
||||||
|
|
||||||
|
if stream_key:
|
||||||
|
# End the stream
|
||||||
|
end_user_stream(stream_key, user_id, username)
|
||||||
session.clear()
|
session.clear()
|
||||||
return {"logged_in": False}
|
return {"logged_in": False}
|
||||||
|
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ def get_highest_view_categories(no_categories: int = 4, offset: int = 0) -> Opti
|
|||||||
""", (no_categories, offset))
|
""", (no_categories, offset))
|
||||||
return categories
|
return categories
|
||||||
|
|
||||||
def get_user_category_recommendations(user_id: 1, no_categories: int = 4) -> Optional[List[dict]]:
|
def get_user_category_recommendations(user_id = 1, no_categories: int = 4) -> Optional[List[dict]]:
|
||||||
"""
|
"""
|
||||||
Queries user_preferences database to find users top favourite streaming category and returns the category
|
Queries user_preferences database to find users top favourite streaming category and returns the category
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user