From 5c38198137921239653291fdd2e846709ed4c4bf Mon Sep 17 00:00:00 2001 From: Luna Date: Mon, 10 Dec 2018 00:51:03 -0300 Subject: [PATCH] user_storage: fix channel_overrides being a dict --- litecord/gateway/gateway.py | 4 ++- litecord/user_storage.py | 58 ++++++++++++------------------------- 2 files changed, 22 insertions(+), 40 deletions(-) diff --git a/litecord/gateway/gateway.py b/litecord/gateway/gateway.py index e028865..0aebfd5 100644 --- a/litecord/gateway/gateway.py +++ b/litecord/gateway/gateway.py @@ -18,7 +18,7 @@ along with this program. If not, see . """ import urllib.parse -from .websocket import GatewayWebsocket +from litecord.gateway.websocket import GatewayWebsocket async def websocket_handler(app, ws, url): @@ -54,6 +54,8 @@ async def websocket_handler(app, ws, url): if gw_compress and gw_compress not in ('zlib-stream',): return await ws.close(1000, 'Invalid gateway compress') + print('encoding', gw_encoding, 'compression', gw_compress) + gws = GatewayWebsocket(ws, app, v=gw_version, encoding=gw_encoding, compress=gw_compress) await gws.run() diff --git a/litecord/user_storage.py b/litecord/user_storage.py index 48cc0e9..5ff4b34 100644 --- a/litecord/user_storage.py +++ b/litecord/user_storage.py @@ -211,6 +211,23 @@ class UserStorage: return res + async def _get_chan_overrides(self, user_id: int, guild_id: int) -> List: + chan_overrides = [] + + overrides = await self.db.fetch(""" + SELECT channel_id::text, muted, message_notifications + FROM guild_settings_channel_overrides + WHERE + user_id = $1 + AND guild_id = $2 + """, user_id, guild_id) + + for chan_row in overrides: + dcrow = dict(chan_row) + chan_overrides.append(dcrow) + + return chan_overrides + async def get_guild_settings_one(self, user_id: int, guild_id: int) -> dict: """Get guild settings information for a single guild.""" @@ -231,25 +248,7 @@ class UserStorage: gid = int(row['guild_id']) drow = dict(row) - - chan_overrides = {} - - overrides = await self.db.fetch(""" - SELECT channel_id::text, muted, message_notifications - FROM guild_settings_channel_overrides - WHERE - user_id = $1 - AND guild_id = $2 - """, user_id, gid) - - for chan_row in overrides: - dcrow = dict(chan_row) - - chan_id = dcrow['channel_id'] - dcrow.pop('channel_id') - - chan_overrides[chan_id] = dcrow - + chan_overrides = await self._get_chan_overrides(user_id, gid) return {**drow, **{ 'channel_overrides': chan_overrides }} @@ -271,26 +270,7 @@ class UserStorage: gid = int(row['guild_id']) drow = dict(row) - chan_overrides = {} - - overrides = await self.db.fetch(""" - SELECT channel_id::text, muted, message_notifications - FROM guild_settings_channel_overrides - WHERE - user_id = $1 - AND guild_id = $2 - """, user_id, gid) - - for chan_row in overrides: - dcrow = dict(chan_row) - - # channel_id isn't on the value of the dict - # so we query it (for the key) then pop - # from the value - chan_id = dcrow['channel_id'] - dcrow.pop('channel_id') - - chan_overrides[chan_id] = dcrow + chan_overrides = await self._get_chan_overrides(user_id, gid) res.append({**drow, **{ 'channel_overrides': chan_overrides