mirror of https://gitlab.com/litecord/litecord.git
gateway.websocket: add shards field to ready
see https://github.com/discordapp/discord-api-docs/pull/826
This commit is contained in:
parent
28602dfa68
commit
268b921961
|
|
@ -393,17 +393,17 @@ class GatewayWebsocket:
|
||||||
user_id = self.state.user_id
|
user_id = self.state.user_id
|
||||||
user = await self.storage.get_user(user_id, True)
|
user = await self.storage.get_user(user_id, True)
|
||||||
|
|
||||||
uready = {}
|
user_ready = {}
|
||||||
if not self.state.bot:
|
if not self.state.bot:
|
||||||
# user, fetch info
|
# user, fetch info
|
||||||
uready = await self._user_ready()
|
user_ready = await self._user_ready()
|
||||||
|
|
||||||
private_channels = (
|
private_channels = (
|
||||||
await self.user_storage.get_dms(user_id) +
|
await self.user_storage.get_dms(user_id) +
|
||||||
await self.user_storage.get_gdms(user_id)
|
await self.user_storage.get_gdms(user_id)
|
||||||
)
|
)
|
||||||
|
|
||||||
await self.dispatch('READY', {**{
|
base_ready = {
|
||||||
'v': 6,
|
'v': 6,
|
||||||
'user': user,
|
'user': user,
|
||||||
|
|
||||||
|
|
@ -411,8 +411,11 @@ class GatewayWebsocket:
|
||||||
|
|
||||||
'guilds': guilds,
|
'guilds': guilds,
|
||||||
'session_id': self.state.session_id,
|
'session_id': self.state.session_id,
|
||||||
'_trace': ['transbian']
|
'_trace': ['transbian'],
|
||||||
}, **uready})
|
'shard': self.state.shard,
|
||||||
|
}
|
||||||
|
|
||||||
|
await self.dispatch('READY', {**base_ready, **user_ready})
|
||||||
|
|
||||||
# async dispatch of guilds
|
# async dispatch of guilds
|
||||||
self.ext.loop.create_task(self._guild_dispatch(guilds))
|
self.ext.loop.create_task(self._guild_dispatch(guilds))
|
||||||
|
|
|
||||||
|
|
@ -126,25 +126,30 @@ async def test_ready_fields(test_cli):
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
ready = await _json(conn)
|
try:
|
||||||
assert isinstance(ready, dict)
|
ready = await _json(conn)
|
||||||
assert ready['op'] == OP.DISPATCH
|
assert isinstance(ready, dict)
|
||||||
assert ready['t'] == 'READY'
|
assert ready['op'] == OP.DISPATCH
|
||||||
|
assert ready['t'] == 'READY'
|
||||||
|
|
||||||
data = ready['d']
|
data = ready['d']
|
||||||
assert isinstance(data, dict)
|
assert isinstance(data, dict)
|
||||||
|
|
||||||
# NOTE: change if default gateway changes
|
# NOTE: change if default gateway changes
|
||||||
assert data['v'] == 6
|
assert data['v'] == 6
|
||||||
|
|
||||||
# make sure other fields exist and are with
|
# make sure other fields exist and are with
|
||||||
# proper types.
|
# proper types.
|
||||||
assert isinstance(data['user'], dict)
|
assert isinstance(data['user'], dict)
|
||||||
assert isinstance(data['private_channels'], list)
|
assert isinstance(data['private_channels'], list)
|
||||||
assert isinstance(data['guilds'], list)
|
assert isinstance(data['guilds'], list)
|
||||||
assert isinstance(data['session_id'], str)
|
assert isinstance(data['session_id'], str)
|
||||||
|
assert isinstance(data['_trace'], list)
|
||||||
|
|
||||||
await _close(conn)
|
if 'shard' in data:
|
||||||
|
assert isinstance(data['shard'], list)
|
||||||
|
finally:
|
||||||
|
await _close(conn)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue