diff options
author | Saptak S <saptak013@gmail.com> | 2021-11-14 20:58:21 +0530 |
---|---|---|
committer | Saptak S <saptak013@gmail.com> | 2021-11-14 20:58:21 +0530 |
commit | f4ade1ba8d9529893c6a84e4d335f31722eb59c8 (patch) | |
tree | 253a73ec0cc0aeba63d9724035679c4249b15f3b /cli/onionshare_cli/web/chat_mode.py | |
parent | 62396e66b815265abf72abefa0d11a0062fc6bda (diff) | |
download | onionshare-f4ade1ba8d9529893c6a84e4d335f31722eb59c8.tar.gz onionshare-f4ade1ba8d9529893c6a84e4d335f31722eb59c8.zip |
Removed room from chat
- Uses the global room instead of adding and leaving room for users
- Removes the joining event and triggers connection status from
server as soon as a connection event is received in server side
Diffstat (limited to 'cli/onionshare_cli/web/chat_mode.py')
-rw-r--r-- | cli/onionshare_cli/web/chat_mode.py | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/cli/onionshare_cli/web/chat_mode.py b/cli/onionshare_cli/web/chat_mode.py index e92ce385..b8053e0c 100644 --- a/cli/onionshare_cli/web/chat_mode.py +++ b/cli/onionshare_cli/web/chat_mode.py @@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. """ from flask import request, render_template, make_response, jsonify, session -from flask_socketio import emit, join_room, leave_room +from flask_socketio import emit class ChatModeWeb: @@ -33,7 +33,7 @@ class ChatModeWeb: self.web = web - # This tracks users in the room + # This tracks users in the server self.connected_users = [] # This tracks the history id @@ -61,7 +61,6 @@ class ChatModeWeb: if session.get("name") else self.common.build_username() ) - session["room"] = self.web.settings.default_settings["chat"]["room"] self.web.add_request( request.path, {"id": history_id, "status_code": 200}, @@ -111,12 +110,11 @@ class ChatModeWeb: ) return r - @self.web.socketio.on("joined", namespace="/chat") - def joined(message): + @self.web.socketio.on("connect", namespace="/chat") + def server_connect(): """Sent by clients when they enter a room. A status message is broadcast to all people in the room.""" self.connected_users.append(session.get("name")) - join_room(session.get("room")) emit( "status", { @@ -125,23 +123,23 @@ class ChatModeWeb: "connected_users": self.connected_users, "user": session.get("name"), }, - room=session.get("room"), + broadcast=True, ) @self.web.socketio.on("text", namespace="/chat") def text(message): """Sent by a client when the user entered a new message. - The message is sent to all people in the room.""" + The message is sent to all people in the server.""" emit( "message", {"username": session.get("name"), "msg": message["msg"]}, - room=session.get("room"), + broadcast=True, ) @self.web.socketio.on("update_username", namespace="/chat") def update_username(message): """Sent by a client when the user updates their username. - The message is sent to all people in the room.""" + The message is sent to all people in the server.""" current_name = session.get("name") if message.get("username", ""): session["name"] = message["username"] @@ -158,20 +156,20 @@ class ChatModeWeb: "old_name": current_name, "new_name": session.get("name"), }, - room=session.get("room"), + broadcast=True, ) @self.web.socketio.on("disconnect", namespace="/chat") def disconnect(): - """Sent by clients when they disconnect from a room. - A status message is broadcast to all people in the room.""" - self.connected_users.remove(session.get("name")) - leave_room(session.get("room")) + """Sent by clients when they disconnect. + A status message is broadcast to all people in the server.""" + if session.get("name") in self.connected_users: + self.connected_users.remove(session.get("name")) emit( "status", { "msg": "{} has left the room.".format(session.get("name")), "connected_users": self.connected_users, }, - room=session.get("room"), + broadcast=True, ) |