diff --git a/litecord/gateway/websocket.py b/litecord/gateway/websocket.py index 3c7a67e..ca2d444 100644 --- a/litecord/gateway/websocket.py +++ b/litecord/gateway/websocket.py @@ -372,11 +372,16 @@ class GatewayWebsocket: # user, fetch info uready = await self._user_ready() + private_channels = ( + await self.user_storage.get_dms(user_id) + + await self.user_storage.get_gdms(user_id) + ) + await self.dispatch('READY', {**{ 'v': 6, 'user': user, - 'private_channels': await self.user_storage.get_dms(user_id), + 'private_channels': private_channels, 'guilds': guilds, 'session_id': self.state.session_id, diff --git a/litecord/storage.py b/litecord/storage.py index 380f97f..54fb8e6 100644 --- a/litecord/storage.py +++ b/litecord/storage.py @@ -436,6 +436,7 @@ class Storage: """, channel_id) drow = dict(gdm_row) + drow['type'] = chan_type drow['recipients'] = await self._gdm_recipients(channel_id) drow['last_message_id'] = await self.chan_last_message_str( channel_id diff --git a/litecord/user_storage.py b/litecord/user_storage.py index bcb3191..36e7cad 100644 --- a/litecord/user_storage.py +++ b/litecord/user_storage.py @@ -348,3 +348,16 @@ class UserStorage: """, user_id) return [r['id'] for r in rows] + + async def get_gdms(self, user_id) -> List[Dict[str, Any]]: + """Get list of group DMs a user is in.""" + gdm_ids = await self.get_gdms_internal(user_id) + + res = [] + + for gdm_id in gdm_ids: + res.append( + await self.storage.get_channel(gdm_id) + ) + + return res