From a7649d1a7a29c25351aba2d36947f5e2dd6958a2 Mon Sep 17 00:00:00 2001 From: miruka Date: Wed, 17 Apr 2019 23:01:26 -0400 Subject: [PATCH] Make the SendBox work, send plaintext messages --- harmonyqml/backend/client.py | 12 ++++++++++++ harmonyqml/backend/network_manager.py | 5 ++++- harmonyqml/components/chat/MessageList.qml | 1 - harmonyqml/components/chat/SendBox.qml | 5 ++--- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/harmonyqml/backend/client.py b/harmonyqml/backend/client.py index 6c71fbb2..dd2c158d 100644 --- a/harmonyqml/backend/client.py +++ b/harmonyqml/backend/client.py @@ -185,3 +185,15 @@ class Client(QObject): self.roomEventReceived.emit( room_id, type(ev).__name__, ev.__dict__ ) + + + @pyqtSlot(str, str) + @futurize + def sendMessage(self, room_id: str, text: str) -> None: + content = { + "body": text, + "formatted_body": text, + "format": "org.matrix.custom.html", + "msgtype": "m.text", + } + self.net.talk(self.nio.room_send, room_id, "m.room.message", content) diff --git a/harmonyqml/backend/network_manager.py b/harmonyqml/backend/network_manager.py index 26753a44..ecc7ffee 100644 --- a/harmonyqml/backend/network_manager.py +++ b/harmonyqml/backend/network_manager.py @@ -49,7 +49,10 @@ class NetworkManager: @staticmethod def _close_socket(sock: socket.socket) -> None: - sock.shutdown(how=socket.SHUT_RDWR) + try: + sock.shutdown(how=socket.SHUT_RDWR) + except OSError: # Already closer by server + pass sock.close() diff --git a/harmonyqml/components/chat/MessageList.qml b/harmonyqml/components/chat/MessageList.qml index 3228da07..e5699b0d 100644 --- a/harmonyqml/components/chat/MessageList.qml +++ b/harmonyqml/components/chat/MessageList.qml @@ -30,7 +30,6 @@ Rectangle { property real yPos: visibleArea.yPosition onYPosChanged: { - console.log(yPos) if (yPos <= 0.1) { Backend.loadPastEvents(chatPage.room.room_id) } diff --git a/harmonyqml/components/chat/SendBox.qml b/harmonyqml/components/chat/SendBox.qml index c789b39a..65964338 100644 --- a/harmonyqml/components/chat/SendBox.qml +++ b/harmonyqml/components/chat/SendBox.qml @@ -53,9 +53,8 @@ Rectangle { if (textArea.text === "") { return } - Backend.sendMessage(chatPage.user.user_id, - chatPage.room.room_id, - textArea.text) + Backend.clientManager.clients[chatPage.user_id] + .sendMessage(chatPage.room.room_id, textArea.text) textArea.clear() } Keys.onEnterPressed: Keys.onReturnPressed(event) // numpad enter