From 0aa679677fb632a4cc51575d7c7dda95656b8e00 Mon Sep 17 00:00:00 2001 From: Luna Mendes Date: Sat, 17 Nov 2018 18:41:54 -0300 Subject: [PATCH] user_storage: add UserStorage.get_user_guilds So that we're consistent. - gateway.websocket, presence: change to UserStorage for get_user_guilds --- litecord/gateway/websocket.py | 5 +++-- litecord/presence.py | 5 +++-- litecord/storage.py | 10 ---------- litecord/user_storage.py | 10 ++++++++++ run.py | 8 ++++++-- 5 files changed, 22 insertions(+), 16 deletions(-) diff --git a/litecord/gateway/websocket.py b/litecord/gateway/websocket.py index 7526c57..5b03805 100644 --- a/litecord/gateway/websocket.py +++ b/litecord/gateway/websocket.py @@ -329,7 +329,7 @@ class GatewayWebsocket: raise InvalidShard('Shard count > Total shards') async def _guild_ids(self): - guild_ids = await self.storage.get_user_guilds( + guild_ids = await self.user_storage.get_user_guilds( self.state.user_id ) @@ -667,7 +667,8 @@ class GatewayWebsocket: """Handle OP 12 Guild Sync.""" data = payload['d'] - gids = await self.storage.get_user_guilds(self.state.user_id) + gids = await self.user_storage.get_user_guilds( + self.state.user_id) for guild_id in data: try: diff --git a/litecord/presence.py b/litecord/presence.py index 7704448..1163fa7 100644 --- a/litecord/presence.py +++ b/litecord/presence.py @@ -59,8 +59,9 @@ async def _pres(storage, user_id: int, status_obj: dict) -> dict: class PresenceManager: """Presence related functions.""" - def __init__(self, storage, state_manager, dispatcher): + def __init__(self, storage, user_storage, state_manager, dispatcher): self.storage = storage + self.user_storage = user_storage self.state_manager = state_manager self.dispatcher = dispatcher @@ -171,7 +172,7 @@ class PresenceManager: state['status'] = 'offline' # TODO: shard-aware - guild_ids = await self.storage.get_user_guilds(user_id) + guild_ids = await self.user_storage.get_user_guilds(user_id) for guild_id in guild_ids: await self.dispatch_guild_pres( diff --git a/litecord/storage.py b/litecord/storage.py index c809583..c6354a0 100644 --- a/litecord/storage.py +++ b/litecord/storage.py @@ -147,16 +147,6 @@ class Storage: return drow - async def get_user_guilds(self, user_id: int) -> List[int]: - """Get all guild IDs a user is on.""" - guild_ids = await self.db.fetch(""" - SELECT guild_id - FROM members - WHERE user_id = $1 - """, user_id) - - return [row['guild_id'] for row in guild_ids] - async def _member_basic(self, guild_id: int, member_id: int): return await self.db.fetchrow(""" SELECT user_id, nickname, joined_at, deafened, muted diff --git a/litecord/user_storage.py b/litecord/user_storage.py index 785adfb..931bf93 100644 --- a/litecord/user_storage.py +++ b/litecord/user_storage.py @@ -278,3 +278,13 @@ class UserStorage: }}) return res + + async def get_user_guilds(self, user_id: int) -> List[int]: + """Get all guild IDs a user is on.""" + guild_ids = await self.db.fetch(""" + SELECT guild_id + FROM members + WHERE user_id = $1 + """, user_id) + + return [row['guild_id'] for row in guild_ids] diff --git a/run.py b/run.py index a6ae943..e0c4065 100644 --- a/run.py +++ b/run.py @@ -194,8 +194,12 @@ def init_app_managers(app): app.icons = IconManager(app) app.dispatcher = EventDispatcher(app) - app.presence = PresenceManager(app.storage, - app.state_manager, app.dispatcher) + + # TODO: only pass app + app.presence = PresenceManager( + app.storage, app.user_storage, + app.state_manager, app.dispatcher + ) app.storage.presence = app.presence