Merge pull request #68 from bytechef/master

Use nicknames
This commit is contained in:
trigg 2020-10-03 15:33:32 +01:00 committed by GitHub
commit 6f3d2ca2d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 15 deletions

View file

@ -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,8 @@ class DiscordConnector:
elif j["evt"] == "VOICE_STATE_UPDATE":
self.list_altered = True
thisuser = j["data"]["user"]
un = j["data"]["user"]["username"]
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
@ -180,10 +184,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 +274,11 @@ 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"]
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"]:
self.text = []
for message in j["data"]["messages"]:

View file

@ -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: