commit
6f3d2ca2d3
2 changed files with 35 additions and 15 deletions
|
|
@ -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"]:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue