From 9143799bedf8f4714584a17186db11b3719cd739 Mon Sep 17 00:00:00 2001 From: mastercooker Date: Sat, 3 Oct 2020 14:46:38 +0100 Subject: [PATCH 1/3] Fix import error --- discover_overlay/voice_settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/discover_overlay/voice_settings.py b/discover_overlay/voice_settings.py index 9550aed..c7b2e18 100644 --- a/discover_overlay/voice_settings.py +++ b/discover_overlay/voice_settings.py @@ -4,7 +4,7 @@ import json from configparser import ConfigParser from .draggable_window import DraggableWindow from .settings import SettingsWindow -from gi.repository import Gtk, Gdk +from gi.repository import Gtk, Gdk, Pango import logging From 2fd5d18604f38606dc77f3ee545758e4d28feb42 Mon Sep 17 00:00:00 2001 From: mastercooker Date: Sat, 3 Oct 2020 14:51:49 +0100 Subject: [PATCH 2/3] Use nicknames --- discover_overlay/discord_connector.py | 29 ++++++++++++++++----------- discover_overlay/voice_overlay.py | 17 +++++++++++++--- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/discover_overlay/discord_connector.py b/discover_overlay/discord_connector.py index 6424e1c..e0fed32 100644 --- a/discover_overlay/discord_connector.py +++ b/discover_overlay/discord_connector.py @@ -151,13 +151,16 @@ class DiscordConnector: def update_user(self, user): if user["id"] in self.userlist: - if not "mute" in user and "mute" in self.userlist[user["id"]]: - user["mute"] = self.userlist[user["id"]]["mute"] - if not "deaf" in user and "deaf" in self.userlist[user["id"]]: - user["deaf"] = self.userlist[user["id"]]["deaf"] - if not "speaking" in user and "speaking" in self.userlist[user["id"]]: - user["speaking"] = self.userlist[user["id"]]["speaking"] - if self.userlist[user["id"]]["avatar"] != user["avatar"]: + olduser = self.userlist[user["id"]] + if "mute" not in user and "mute" in olduser: + user["mute"] = olduser["mute"] + if "deaf" not in user and "deaf" in olduser: + user["deaf"] = olduser["deaf"] + if "speaking" not in user and "speaking" in olduser: + user["speaking"] = olduser["speaking"] + if "nick" not in user and "nick" in olduser: + user["nick"] = olduser["nick"] + if olduser["avatar"] != user["avatar"]: self.voice_overlay.delete_avatar(user["id"]) self.userlist[user["id"]] = user @@ -172,7 +175,6 @@ class DiscordConnector: elif j["evt"] == "VOICE_STATE_UPDATE": self.list_altered = True thisuser = j["data"]["user"] - un = j["data"]["user"]["username"] mute = j["data"]["voice_state"]["mute"] or j["data"]["voice_state"]["self_mute"] or j["data"]["voice_state"]["suppress"] deaf = j["data"]["voice_state"]["deaf"] or j["data"]["voice_state"]["self_deaf"] thisuser["mute"] = mute @@ -180,10 +182,12 @@ class DiscordConnector: self.update_user(thisuser) elif j["evt"] == "VOICE_STATE_CREATE": self.list_altered = True - self.update_user(j["data"]["user"]) + thisuser = j["data"]["user"] + nick = j["data"]["nick"] + thisuser["nick"] = nick + self.update_user(thisuser) # If someone joins any voice room grab it fresh from server self.req_channel_details(self.current_voice) - un = j["data"]["user"]["username"] if j["data"]["user"]["id"] == self.user["id"]: self.find_user() elif j["evt"] == "VOICE_STATE_DELETE": @@ -268,8 +272,9 @@ class DiscordConnector: self.list_altered = True self.in_room = [] for voice in j["data"]["voice_states"]: - self.update_user(voice["user"]) - self.set_in_room(voice["user"]["id"], True) + thisuser = voice["user"] + self.update_user(thisuser) + self.set_in_room(thisuser["id"], True) if self.current_text == j["data"]["id"]: self.text = [] for message in j["data"]["messages"]: diff --git a/discover_overlay/voice_overlay.py b/discover_overlay/voice_overlay.py index f98740e..5a81322 100644 --- a/discover_overlay/voice_overlay.py +++ b/discover_overlay/voice_overlay.py @@ -111,7 +111,12 @@ class VoiceOverlayWindow(OverlayWindow): def set_user_list(self, userlist, alt): self.userlist = userlist - self.userlist.sort(key=lambda x: x["username"]) + for user in userlist: + if "nick" in user: + user["friendlyname"] = user["nick"] + else: + user["friendlyname"] = user["username"] + self.userlist.sort(key=lambda x: x["friendlyname"]) screen = self.get_screen() c = screen.is_composited() if not self.compositing == c: @@ -153,6 +158,12 @@ class VoiceOverlayWindow(OverlayWindow): if user["id"] == self_user["id"]: self_user = user + # Update friendly name with nick if possible + if "nick" in user: + user["friendlyname"] = user["nick"] + else: + user["friendlyname"] = user["username"] + # Remove users that arent speaking if self.only_speaking: speaking = "speaking" in user and user["speaking"] @@ -226,7 +237,7 @@ class VoiceOverlayWindow(OverlayWindow): pix = self.avatars[user["id"]] if self.align_right: self.draw_text( - context, user["username"], w - self.avatar_size - self.horz_edge_padding, y) + context, user["friendlyname"], w - self.avatar_size - self.horz_edge_padding, y) self.draw_avatar_pix( context, pix, w - self.avatar_size - self.horz_edge_padding, y, c, alpha) if deaf: @@ -237,7 +248,7 @@ class VoiceOverlayWindow(OverlayWindow): self.horz_edge_padding, y, alpha) else: self.draw_text( - context, user["username"], self.avatar_size + self.horz_edge_padding, y) + context, user["friendlyname"], self.avatar_size + self.horz_edge_padding, y) self.draw_avatar_pix( context, pix, self.horz_edge_padding, y, c, alpha) if deaf: From 0407a59fcb8734d56fe32f9f17d558c96fb930a9 Mon Sep 17 00:00:00 2001 From: mastercooker Date: Sat, 3 Oct 2020 15:13:09 +0100 Subject: [PATCH 3/3] Fix nicknames --- discover_overlay/discord_connector.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/discover_overlay/discord_connector.py b/discover_overlay/discord_connector.py index e0fed32..e7cfc35 100644 --- a/discover_overlay/discord_connector.py +++ b/discover_overlay/discord_connector.py @@ -175,6 +175,8 @@ class DiscordConnector: elif j["evt"] == "VOICE_STATE_UPDATE": self.list_altered = True thisuser = j["data"]["user"] + nick = j["data"]["nick"] + thisuser["nick"] = nick mute = j["data"]["voice_state"]["mute"] or j["data"]["voice_state"]["self_mute"] or j["data"]["voice_state"]["suppress"] deaf = j["data"]["voice_state"]["deaf"] or j["data"]["voice_state"]["self_deaf"] thisuser["mute"] = mute @@ -273,6 +275,8 @@ class DiscordConnector: self.in_room = [] for voice in j["data"]["voice_states"]: thisuser = voice["user"] + if "nick" in j["data"]: + thisuser["nick"] = j["data"]["nick"] self.update_user(thisuser) self.set_in_room(thisuser["id"], True) if self.current_text == j["data"]["id"]: