aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/client.py27
-rw-r--r--discord/http.py3
2 files changed, 30 insertions, 0 deletions
diff --git a/discord/client.py b/discord/client.py
index 74a417cd..f304be24 100644
--- a/discord/client.py
+++ b/discord/client.py
@@ -2795,4 +2795,31 @@ class Client:
description=data['description'], icon=data['icon'],
owner=User(**data['owner']))
+ @asyncio.coroutine
+ def get_user_info(self, user_id):
+ """|coro|
+
+ Retrieves a :class:`User` based on their ID. This can only
+ be used by bot accounts. You do not have to share any servers
+ with the user to get this information, however many operations
+ do require that you do.
+
+ Parameters
+ -----------
+ user_id: str
+ The user's ID to fetch from.
+
+ Returns
+ --------
+ :class:`User`
+ The user you requested.
+ Raises
+ -------
+ NotFound
+ A user with this ID does not exist.
+ HTTPException
+ Fetching the user failed.
+ """
+ data = yield from self.http.get_user_info(user_id)
+ return User(**data)
diff --git a/discord/http.py b/discord/http.py
index c7ffa4c0..dd7c1f43 100644
--- a/discord/http.py
+++ b/discord/http.py
@@ -515,3 +515,6 @@ class HTTPClient:
except HTTPException as e:
raise GatewayNotFound() from e
return data.get('url') + '?encoding=json&v=6'
+
+ def get_user_info(self, user_id):
+ return self.get('{0.USERS}/{1}'.format(self, user_id), bucket=_func_())