diff --git a/litecord/storage.py b/litecord/storage.py index 3be90d3..92e3acf 100644 --- a/litecord/storage.py +++ b/litecord/storage.py @@ -17,6 +17,7 @@ class Storage: """Class for common SQL statements.""" def __init__(self, db): self.db = db + self.presence = None async def get_user(self, user_id, secure=False) -> Dict[str, Any]: """Get a single user payload.""" @@ -307,6 +308,8 @@ class Storage: channels = await self.get_channel_data(guild_id) roles = await self.get_role_data(guild_id) + mids = [int(m['user']['id']) for m in members] + return {**res, **{ 'member_count': member_count, 'members': members, @@ -314,8 +317,9 @@ class Storage: 'channels': channels, 'roles': roles, - # TODO: finish presences - 'presences': [], + 'presences': await self.presence.guild_presences( + mids, guild_id + ), }} async def _msg_regex(self, regex, method, content) -> List[Dict]: diff --git a/run.py b/run.py index 8f19dcd..9b5da85 100644 --- a/run.py +++ b/run.py @@ -87,9 +87,11 @@ async def app_before_serving(): app.state_manager = StateManager() app.dispatcher = EventDispatcher(app.state_manager) + app.storage = Storage(app.db) app.presence = PresenceManager(app.storage, app.state_manager, app.dispatcher) + app.storage.presence = app.presence # start the websocket, etc host, port = app.config['WS_HOST'], app.config['WS_PORT']