diff --git a/party/chat.py b/party/chat.py index 05432d2..a2916a7 100644 --- a/party/chat.py +++ b/party/chat.py @@ -9,21 +9,22 @@ class Chat: @classmethod def init(self): self.CONNECTION_STRING = "mongodb://localhost:27017/" - self.client = MongoClient(self.CONNECTION_STRING)['partyyy'] - self.collection = self.client['messages'] + self.client = MongoClient(self.CONNECTION_STRING) + self.collection = self.client['partyyy']['messages'] self.initialized = True @classmethod def getAllMessages(self)-> list[dict]: messages = self.collection.find().sort('timestamp', -1) - print(messages) return list(messages) @classmethod def insertMessage(self, content: str, author: str, timestamp: str): - self.collection.insert_one(self.convertToMessage(content, author, timestamp)) - + message = self.convertToMessage(content, author, timestamp) + print(message) + self.collection.insert_one(message) + print('inserted message') @classmethod def getNextNMessages(self, count: int, skip: int) -> list[dict]: @@ -36,9 +37,8 @@ class Chat: def convertToMessage(self, content: str, author: str, timestamp: str) -> dict: message = { 'content': content, - 'author': author, + 'sender': author, 'timestamp': timestamp, } - print(message) return message diff --git a/party/main.py b/party/main.py index 4b4afab..3b9faf6 100644 --- a/party/main.py +++ b/party/main.py @@ -65,14 +65,15 @@ def api_mate_status(): @app.route('/api/chat/', methods=['GET']) def api_chat(): - messages = Chat.getNextNMessages(100, 0) # 0 offset print(messages) + messages = Chat.getNextNMessages(100, 0) # 0 offset response = jsonify(success=True, messages=json_util.dumps(messages)) response.status_code = 200 return response @socketio.on('chat-message') def handle_chat_message(data): - Chat.insertMessage(data['content'], data['author'], data['timestamp']) + print(data) + Chat.insertMessage(data['text'], data['sender'], data['timestamp']) @socketio.on('chat-get-messages') def handle_chat_get_message(data): @@ -84,14 +85,11 @@ def handle_chat_get_message(data): @socketio.on('mate-status') def handle_mate_status(): status = MateKiste.getStatus() - print(status) return { 'data': status } @socketio.on('mate-nehmen') def handle_mate_nehmen(data): - print(data) MateKiste.removeAt(data['row'], data['column']) - # broadcast emit('mate-genommen', data, broadcast=True) @socketio.on('mate-reset') @@ -102,12 +100,10 @@ def handle_mate_reset(): @socketio.on('connect') def handle_connect(): - print('Client connected') join_room(0) @socketio.on('disconnect') def handle_disconnect(): - print('Client disconnected') leave_room(0) @app.route('/api/music', methods=['GET']) diff --git a/party/static/js/chat.js b/party/static/js/chat.js index 3b2bce1..1f9111e 100644 --- a/party/static/js/chat.js +++ b/party/static/js/chat.js @@ -51,3 +51,27 @@ function buildChatMessage(author, content, timestamp) { return message; } + +function sendMessage() { + const chatInput = document.getElementById('chatInputField'); + if (chatInput.value.length < 0) return; + + const userName = window.sessionStorage.getItem('name'); + + const messageDate = new Date(); + + const message = { sender: userName, text: chatInput.value, timestamp: messageDate }; + + console.log(message); + + socket.emit('chat-message', message); + console.log('message sent'); + + chatInput.value = ''; +} + +socket.on('chat-message', (data) => { + const chatBox = document.getElementById('chatBox'); + chatBox.appendChild(buildChatMessage(data.sender, data.text, data.timestamp['$date'])); // $date is mongodb date + chatBox.scrollTop = chatBox.scrollHeight; +}); diff --git a/party/templates/session.html b/party/templates/session.html index 9a08d95..ea18097 100644 --- a/party/templates/session.html +++ b/party/templates/session.html @@ -85,6 +85,10 @@

Chat

+
+ + +