make guild ids kinda working
This commit is contained in:
parent
b0d1c0873d
commit
923c579eb9
7 changed files with 41 additions and 22 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -5,3 +5,5 @@ env
|
|||
.vscode/launch.json
|
||||
.vscode/settings.json
|
||||
__pycache__
|
||||
venv
|
||||
.idea
|
||||
|
|
@ -336,10 +336,9 @@ class DiscordConnector:
|
|||
return
|
||||
elif j["cmd"] == "GET_GUILDS":
|
||||
for guild in j["data"]["guilds"]:
|
||||
if len(self.voice_settings.guild_ids) == 0 or guild["id"] in self.voice_settings.guild_ids:
|
||||
print("Requesting channels for guild:", guild)
|
||||
self.req_channels(guild["id"])
|
||||
self.guilds[guild["id"]] = guild
|
||||
if len(self.voice_settings.guild_ids) == 0 or guild["id"] in self.voice_settings.guild_ids:
|
||||
self.req_channels(guild["id"])
|
||||
return
|
||||
elif j["cmd"] == "GET_CHANNELS":
|
||||
self.guilds[j['nonce']]["channels"] = j["data"]["channels"]
|
||||
|
|
@ -461,7 +460,13 @@ class DiscordConnector:
|
|||
Request all channels information for given guild.
|
||||
Don't perform now but pass off to rate-limiter
|
||||
"""
|
||||
|
||||
if guild in self.guilds:
|
||||
self.rate_limited_channels.append(guild)
|
||||
print("Requesting channels for guild:",
|
||||
self.guilds.get(guild))
|
||||
else:
|
||||
print("Didn't find guild with id", guild)
|
||||
#cmd = {
|
||||
# "cmd": "GET_CHANNELS",
|
||||
# "args": {
|
||||
|
|
@ -637,11 +642,10 @@ class DiscordConnector:
|
|||
|
||||
This will be mixed in with 'None' in the list where a voice channel is
|
||||
"""
|
||||
if guild_id in self.guilds:
|
||||
if guild_id in self.guilds and "channels" in self.guilds[guild_id]:
|
||||
self.request_text_rooms_awaiting = 0
|
||||
self.request_text_rooms = guild_id
|
||||
self.request_text_rooms_response = [
|
||||
None] * len(self.guilds[guild_id]["channels"])
|
||||
self.request_text_rooms_response = [None] * len(self.guilds[guild_id]["channels"])
|
||||
self.req_all_channel_details(guild_id)
|
||||
|
||||
def connect(self):
|
||||
|
|
|
|||
|
|
@ -38,12 +38,14 @@ class Discover:
|
|||
self.tray = None
|
||||
|
||||
self.create_gui()
|
||||
|
||||
self.connection = DiscordConnector(
|
||||
self.settings.text_settings,
|
||||
self.settings.voice_settings,
|
||||
self.text_overlay,
|
||||
self.voice_overlay
|
||||
)
|
||||
|
||||
self.settings.text_settings.add_connector(self.connection)
|
||||
self.connection.connect()
|
||||
GLib.timeout_add((1000 / 60), self.connection.do_read)
|
||||
|
|
|
|||
|
|
@ -47,8 +47,9 @@ class OverlayWindow(Gtk.Window):
|
|||
return Gtk.WindowType.TOPLEVEL
|
||||
return Gtk.WindowType.POPUP
|
||||
|
||||
def __init__(self):
|
||||
def __init__(self, discover):
|
||||
Gtk.Window.__init__(self, type=self.detect_type())
|
||||
self.discover = discover
|
||||
screen = self.get_screen()
|
||||
self.compositing = False
|
||||
self.text_font = None
|
||||
|
|
|
|||
|
|
@ -28,8 +28,7 @@ class TextOverlayWindow(OverlayWindow):
|
|||
"""Overlay window for voice"""
|
||||
|
||||
def __init__(self, discover):
|
||||
OverlayWindow.__init__(self)
|
||||
self.discover = discover
|
||||
OverlayWindow.__init__(self, discover)
|
||||
self.text_spacing = 4
|
||||
self.content = []
|
||||
self.text_font = None
|
||||
|
|
|
|||
|
|
@ -27,9 +27,8 @@ class VoiceOverlayWindow(OverlayWindow):
|
|||
"""Overlay window for voice"""
|
||||
|
||||
def __init__(self, discover):
|
||||
OverlayWindow.__init__(self)
|
||||
OverlayWindow.__init__(self, discover)
|
||||
|
||||
self.discover = discover
|
||||
self.avatars = {}
|
||||
|
||||
self.avatar_size = 48
|
||||
|
|
@ -186,9 +185,14 @@ class VoiceOverlayWindow(OverlayWindow):
|
|||
self.redraw()
|
||||
|
||||
def set_guild_ids(self, guild_ids=tuple()):
|
||||
try:
|
||||
for _id in guild_ids:
|
||||
if _id not in self.guild_ids:
|
||||
self.discover.connection.req_channels(_id)
|
||||
except AttributeError as _e:
|
||||
print(_e)
|
||||
# it some times says: AttributeError: 'Discover' object has no attribute 'connection'
|
||||
pass
|
||||
self.guild_ids = guild_ids
|
||||
|
||||
def set_wind_col(self):
|
||||
|
|
|
|||
|
|
@ -29,6 +29,11 @@ def parse_guild_ids(guild_ids_str):
|
|||
guild_ids.add(guild_id)
|
||||
return tuple(guild_ids)
|
||||
|
||||
|
||||
def guild_ids_to_string(guild_ids):
|
||||
"""Put the guild ids into a comma seperated string."""
|
||||
return ", ".join(str(_id) for _id in guild_ids)
|
||||
|
||||
class VoiceSettingsWindow(SettingsWindow):
|
||||
"""Voice setting tab on settings window"""
|
||||
|
||||
|
|
@ -203,7 +208,7 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
config.set("main", "floating_h", "%s" % (self.floating_h))
|
||||
config.set("main", "order", "%s" % (self.order))
|
||||
config.set("main", "horizontal", "%s" % (self.horizontal))
|
||||
config.set("main", "guild_ids", "%s" % (", ".join(self.guild_ids)))
|
||||
config.set("main", "guild_ids", "%s" % guild_ids_to_string(self.guild_ids))
|
||||
|
||||
with open(self.config_file, 'w') as file:
|
||||
config.write(file)
|
||||
|
|
@ -411,10 +416,10 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
horizontal.connect("toggled", self.change_horizontal)
|
||||
|
||||
# Guild ids to load:
|
||||
guild_ids_label = Gtk.Label.new("Guild ids to load (empty = all)")
|
||||
guild_ids = Gtk.HBox.new()
|
||||
guild_ids.set_active(self.horizontal)
|
||||
guild_ids.connect("toggled", self.change_horizontal)
|
||||
guild_ids_label = Gtk.Label.new("Guild Ids")
|
||||
guild_ids = Gtk.Entry.new()
|
||||
guild_ids.set_text(guild_ids_to_string(self.guild_ids))
|
||||
guild_ids.connect("changed", self.change_guild_ids)
|
||||
|
||||
box.attach(autohide_label, 0, 0, 1, 1)
|
||||
box.attach(autohide, 1, 0, 1, 1)
|
||||
|
|
@ -462,6 +467,8 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
box.attach(order, 1, 23, 1, 1)
|
||||
box.attach(horizontal_label, 0, 24, 1, 1)
|
||||
box.attach(horizontal, 1, 24, 1, 1)
|
||||
box.attach(guild_ids_label, 0, 25, 1, 1)
|
||||
box.attach(guild_ids, 1, 25, 1, 1)
|
||||
|
||||
self.add(box)
|
||||
|
||||
|
|
@ -658,7 +665,7 @@ class VoiceSettingsWindow(SettingsWindow):
|
|||
"""
|
||||
Horizontal layout setting changed
|
||||
"""
|
||||
self.guild_ids = parse_guild_ids(button.get_content())
|
||||
self.guild_ids = parse_guild_ids(button.get_text())
|
||||
self.overlay.set_guild_ids(self.guild_ids)
|
||||
self.save_config()
|
||||
self.set_orientated_names()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue