diff --git a/backend/voting/consumers.py b/backend/voting/consumers.py index 2ebd9cf..73db44c 100644 --- a/backend/voting/consumers.py +++ b/backend/voting/consumers.py @@ -7,12 +7,15 @@ from muzak.auth import get_user_from_token from channels.db import database_sync_to_async from playlist.models import Session, Track, Vote import random +import logging class SessionConsumer(WebsocketConsumer): def connect(self): self.session_id = self.scope["url_route"]["kwargs"]["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)( self.session_name, self.channel_name @@ -28,17 +31,15 @@ class SessionConsumer(WebsocketConsumer): # Receive message from WebSocket def receive(self, text_data): 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) - print() text_data_json = json.loads(text_data) # Niet lachen, middleware is moeilijk oké? token = text_data_json.get("token") if token: - user = get_user_from_token(token, log=True) - print(user) + user = get_user_from_token(token, log=False) session = Session.objects.get(session_id=sessionId) action = text_data_json.get("action", None) @@ -49,9 +50,9 @@ class SessionConsumer(WebsocketConsumer): self.session_name, {"type": "chat.message", "message": str(user) + ": " + message} ) if action == "login": - print("LOGIN", str(user)) + self.logger.info(f"Announced: {user}") 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": points = text_data_json.get("points", None) @@ -59,10 +60,14 @@ class SessionConsumer(WebsocketConsumer): try: vote = Vote.objects.get(user=user, track=track, session=session) vote.points = points + self.logger.info(f"Updated vote for {track} by {user} to {points} points") vote.save() except Vote.DoesNotExist: 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() + except Exception as e: + self.logger.error(f"Error voting on {track} by {user} for {points} points: {e}") if action == "pause": pass if action == "next": @@ -96,7 +101,7 @@ class SessionConsumer(WebsocketConsumer): def chat_message(self, event): message = event["message"] - print(self.scope["user"]) + self.logger.info(self.scope["user"]) # Send message to WebSocket self.send(text_data=json.dumps({"message": message}))