Client.create_invite now works without a websocket connection
This commit is contained in:
		@@ -1738,6 +1738,22 @@ class Client:
 | 
			
		||||
 | 
			
		||||
    # 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
 | 
			
		||||
    def create_invite(self, destination, **options):
 | 
			
		||||
        """|coro|
 | 
			
		||||
@@ -1786,10 +1802,7 @@ class Client:
 | 
			
		||||
        yield from utils._verify_successful_response(response)
 | 
			
		||||
        data = yield from response.json()
 | 
			
		||||
        log.debug(request_success_log.format(json=payload, response=response, 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)
 | 
			
		||||
        self._fill_invite_data(data)
 | 
			
		||||
        return Invite(**data)
 | 
			
		||||
 | 
			
		||||
    @asyncio.coroutine
 | 
			
		||||
@@ -1828,20 +1841,7 @@ class Client:
 | 
			
		||||
        log.debug(request_logging_format.format(method='GET', response=response))
 | 
			
		||||
        yield from utils._verify_successful_response(response)
 | 
			
		||||
        data = yield from response.json()
 | 
			
		||||
        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
 | 
			
		||||
        self._fill_invite_data(data)
 | 
			
		||||
        return Invite(**data)
 | 
			
		||||
 | 
			
		||||
    @asyncio.coroutine
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user