adds some logging

This commit is contained in:
2025-08-16 23:30:16 +02:00
parent 341f7c8091
commit 5de174b162
+12 -7
View File
@@ -7,12 +7,15 @@ from muzak.auth import get_user_from_token
from channels.db import database_sync_to_async from channels.db import database_sync_to_async
from playlist.models import Session, Track, Vote from playlist.models import Session, Track, Vote
import random import random
import logging
class SessionConsumer(WebsocketConsumer): class SessionConsumer(WebsocketConsumer):
def connect(self): def connect(self):
self.session_id = self.scope["url_route"]["kwargs"]["session_id"] self.session_id = self.scope["url_route"]["kwargs"]["session_id"]
self.session_name = f"session_{self.session_id}" self.session_name = f"session_{self.session_id}"
self.logger = logging.getLogger(self.session_name)
logging.basicConfig(filename=self.session_name+'.log', level=logging.INFO, format='%(asctime)s %(levelname)s %(message)s', filemode='w')
async_to_sync(self.channel_layer.group_add)( async_to_sync(self.channel_layer.group_add)(
self.session_name, self.channel_name self.session_name, self.channel_name
@@ -28,17 +31,15 @@ class SessionConsumer(WebsocketConsumer):
# Receive message from WebSocket # Receive message from WebSocket
def receive(self, text_data): def receive(self, text_data):
user = self.scope["user"] # Waarschijnlijk altijd AnonymousUser user = self.scope["user"] # Waarschijnlijk altijd AnonymousUser
print(self.scope) #self.logger.info(self.scope)
sessionId = self.scope["url_route"].get("kwargs", {}).get("session_id", None) sessionId = self.scope["url_route"].get("kwargs", {}).get("session_id", None)
print()
text_data_json = json.loads(text_data) text_data_json = json.loads(text_data)
# Niet lachen, middleware is moeilijk oké? # Niet lachen, middleware is moeilijk oké?
token = text_data_json.get("token") token = text_data_json.get("token")
if token: if token:
user = get_user_from_token(token, log=True) user = get_user_from_token(token, log=False)
print(user)
session = Session.objects.get(session_id=sessionId) session = Session.objects.get(session_id=sessionId)
action = text_data_json.get("action", None) action = text_data_json.get("action", None)
@@ -49,9 +50,9 @@ class SessionConsumer(WebsocketConsumer):
self.session_name, {"type": "chat.message", "message": str(user) + ": " + message} self.session_name, {"type": "chat.message", "message": str(user) + ": " + message}
) )
if action == "login": if action == "login":
print("LOGIN", str(user)) self.logger.info(f"Announced: {user}")
async_to_sync(self.channel_layer.group_send)( async_to_sync(self.channel_layer.group_send)(
self.session_name, {"type": "announce", "user": str(user)} self.session_name, {"type": "announce", "user": { "id": user.id, "username": user.username}}
) )
if action == "vote": if action == "vote":
points = text_data_json.get("points", None) points = text_data_json.get("points", None)
@@ -59,10 +60,14 @@ class SessionConsumer(WebsocketConsumer):
try: try:
vote = Vote.objects.get(user=user, track=track, session=session) vote = Vote.objects.get(user=user, track=track, session=session)
vote.points = points vote.points = points
self.logger.info(f"Updated vote for {track} by {user} to {points} points")
vote.save() vote.save()
except Vote.DoesNotExist: except Vote.DoesNotExist:
vote = Vote.objects.create(user=user, track=track, points=points, session=session) vote = Vote.objects.create(user=user, track=track, points=points, session=session)
self.logger.info(f"Created vote for {track} by {user} for {points} points")
vote.save() vote.save()
except Exception as e:
self.logger.error(f"Error voting on {track} by {user} for {points} points: {e}")
if action == "pause": if action == "pause":
pass pass
if action == "next": if action == "next":
@@ -96,7 +101,7 @@ class SessionConsumer(WebsocketConsumer):
def chat_message(self, event): def chat_message(self, event):
message = event["message"] message = event["message"]
print(self.scope["user"]) self.logger.info(self.scope["user"])
# Send message to WebSocket # Send message to WebSocket
self.send(text_data=json.dumps({"message": message})) self.send(text_data=json.dumps({"message": message}))