Add Client.application_info to retrieve the current app info.
Fixes #241.
This commit is contained in:
@ -53,12 +53,23 @@ import tempfile, os, hashlib
|
||||
import itertools
|
||||
import datetime
|
||||
from random import randint as random_integer
|
||||
from collections import namedtuple
|
||||
|
||||
PY35 = sys.version_info >= (3, 5)
|
||||
log = logging.getLogger(__name__)
|
||||
request_logging_format = '{method} {response.url} has returned {response.status}'
|
||||
request_success_log = '{response.url} with {json} received {data}'
|
||||
|
||||
AppInfo = namedtuple('AppInfo', 'id name description icon')
|
||||
def app_info_icon_url(self):
|
||||
"""Retrieves the application's icon_url if it exists. Empty string otherwise."""
|
||||
if not self.icon:
|
||||
return ''
|
||||
|
||||
return 'https://cdn.discordapp.com/app-icons/{0.id}/{0.icon}.jpg'.format(self)
|
||||
|
||||
AppInfo.icon_url = property(app_info_icon_url)
|
||||
|
||||
class Client:
|
||||
"""Represents a client connection that connects to Discord.
|
||||
This class is used to interact with the Discord WebSocket and API.
|
||||
@ -2787,3 +2798,31 @@ class Client:
|
||||
The voice client associated with the server.
|
||||
"""
|
||||
return self.connection._get_voice_client(server.id)
|
||||
|
||||
|
||||
# Miscellaneous stuff
|
||||
|
||||
@asyncio.coroutine
|
||||
def application_info(self):
|
||||
"""|coro|
|
||||
|
||||
Retrieve's the bot's application information.
|
||||
|
||||
Returns
|
||||
--------
|
||||
:class:`AppInfo`
|
||||
A namedtuple representing the application info.
|
||||
|
||||
Raises
|
||||
-------
|
||||
HTTPException
|
||||
Retrieving the information failed somehow.
|
||||
"""
|
||||
url = '{}/@me'.format(endpoints.APPLICATIONS)
|
||||
resp = yield from self.session.get(url, headers=self.headers)
|
||||
yield from utils._verify_successful_response(resp)
|
||||
data = yield from resp.json()
|
||||
return AppInfo(id=data['id'], name=data['name'],
|
||||
description=data['description'], icon=data['icon'])
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user