Nicknames now work.

This commit is contained in:
Marat Fayzullin 2023-11-20 13:16:45 -05:00
parent af9c348a10
commit 632c5e4437
3 changed files with 19 additions and 9 deletions

View File

@ -253,19 +253,19 @@ UI.setNickname = function(nickname) {
} }
}; };
UI.recvChatMessage = function(sender, text, color = 'white') { UI.recvChatMessage = function(nickname, text, color = 'white') {
// Show chat panel // Show chat panel
toggle_panel('openwebrx-panel-log', true); toggle_panel('openwebrx-panel-log', true);
divlog( divlog(
'[<span class="nickname" style="color:' + color + ';">' + sender '[<span class="nickname" style="color:' + color + ';">' + nickname
+ '</span>]:&nbsp;' + '<span class="chatmessage">' + text + '</span>' + '</span>]:&nbsp;' + '<span class="chatmessage">' + text + '</span>'
); );
}; };
UI.sendChatMessage = function(text, sender = '') { UI.sendChatMessage = function(text, nickname = '') {
ws.send(JSON.stringify({ ws.send(JSON.stringify({
'type': 'sendmessage', 'sender': sender, 'text': text 'type': 'sendmessage', 'name': nickname, 'text': text
})); }));
}; };

View File

@ -68,12 +68,20 @@ class ClientRegistry(object):
client.close() client.close()
# Broadcast chat message to all connected clients. # Broadcast chat message to all connected clients.
def broadcastChatMessage(self, client, text: str): def broadcastChatMessage(self, client, text: str, name: str = None):
# Names have to be 3+ characters
if name is not None and len(name) < 1:
name = None
if client in self.chat: if client in self.chat:
name = self.chat[client]["name"] curname = self.chat[client]["name"]
color = self.chat[client]["color"] color = self.chat[client]["color"]
if name is None or name == curname:
name = curname
else:
self.chatColors.rename(curname, name)
self.chat[client]["name"] = name
else: else:
name = "User%04d" % (self.chatCount + 1) name = "User%d" % (self.chatCount + 1) if name is None else name
color = self.chatColors.getColor(name) color = self.chatColors.getColor(name)
self.chat[client] = { "name": name, "color": color } self.chat[client] = { "name": name, "color": color }
self.chatCount = (self.chatCount + 1) % 9999 self.chatCount = (self.chatCount + 1) % 9999

View File

@ -345,7 +345,9 @@ class OpenWebRxReceiverClient(OpenWebRxClient, SdrSourceEventClient):
elif message["type"] == "sendmessage": elif message["type"] == "sendmessage":
if "text" in message: if "text" in message:
ClientRegistry.getSharedInstance().broadcastChatMessage( ClientRegistry.getSharedInstance().broadcastChatMessage(
self, message["text"] self,
message["text"],
message["name"] if "name" in message else None
) )
else: else: