mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-05-13 09:19:48 +00:00
Client.create_invite now works without a websocket connection
This commit is contained in:
parent
43ee53fa99
commit
2cd1ec3066
@ -1738,6 +1738,22 @@ class Client:
|
|||||||
|
|
||||||
# Invite management
|
# Invite management
|
||||||
|
|
||||||
|
def _fill_invite_data(self, data):
|
||||||
|
server = None
|
||||||
|
if self.connection is not None:
|
||||||
|
server = self.connection._get_server(data['guild']['id'])
|
||||||
|
if server is not None:
|
||||||
|
ch_id = data['channel']['id']
|
||||||
|
channels = getattr(server, 'channels', [])
|
||||||
|
channel = utils.find(lambda c: c.id == ch_id, channels)
|
||||||
|
else:
|
||||||
|
server = Object(id=data['guild']['id'])
|
||||||
|
server.name = data['guild']['name']
|
||||||
|
channel = Object(id=data['channel']['id'])
|
||||||
|
channel.name = data['channel']['name']
|
||||||
|
data['server'] = server
|
||||||
|
data['channel'] = channel
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def create_invite(self, destination, **options):
|
def create_invite(self, destination, **options):
|
||||||
"""|coro|
|
"""|coro|
|
||||||
@ -1786,10 +1802,7 @@ class Client:
|
|||||||
yield from utils._verify_successful_response(response)
|
yield from utils._verify_successful_response(response)
|
||||||
data = yield from response.json()
|
data = yield from response.json()
|
||||||
log.debug(request_success_log.format(json=payload, response=response, data=data))
|
log.debug(request_success_log.format(json=payload, response=response, data=data))
|
||||||
|
self._fill_invite_data(data)
|
||||||
data['server'] = self.connection._get_server(data['guild']['id'])
|
|
||||||
channel_id = data['channel']['id']
|
|
||||||
data['channel'] = utils.find(lambda ch: ch.id == channel_id, data['server'].channels)
|
|
||||||
return Invite(**data)
|
return Invite(**data)
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
@ -1828,20 +1841,7 @@ class Client:
|
|||||||
log.debug(request_logging_format.format(method='GET', response=response))
|
log.debug(request_logging_format.format(method='GET', response=response))
|
||||||
yield from utils._verify_successful_response(response)
|
yield from utils._verify_successful_response(response)
|
||||||
data = yield from response.json()
|
data = yield from response.json()
|
||||||
server = None
|
self._fill_invite_data(data)
|
||||||
if self.connection is not None:
|
|
||||||
server = self.connection._get_server(data['guild']['id'])
|
|
||||||
if server is not None:
|
|
||||||
ch_id = data['channel']['id']
|
|
||||||
channels = getattr(server, 'channels', [])
|
|
||||||
channel = utils.find(lambda c: c.id == ch_id, channels)
|
|
||||||
else:
|
|
||||||
server = Object(id=data['guild']['id'])
|
|
||||||
server.name = data['guild']['name']
|
|
||||||
channel = Object(id=data['channel']['id'])
|
|
||||||
channel.name = data['channel']['name']
|
|
||||||
data['server'] = server
|
|
||||||
data['channel'] = channel
|
|
||||||
return Invite(**data)
|
return Invite(**data)
|
||||||
|
|
||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
|
Loading…
x
Reference in New Issue
Block a user