aboutsummaryrefslogtreecommitdiff
path: root/discord/user.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2017-06-30 18:49:49 -0400
committerRapptz <[email protected]>2017-06-30 18:49:49 -0400
commit25a1d8c3004d061946533fffb901b225c38fdd66 (patch)
tree0fc03d21a1bf3f94e660b65fc530396604be06e1 /discord/user.py
parentTypo in docstring for TextChannel.delete_messages (diff)
downloaddiscord.py-25a1d8c3004d061946533fffb901b225c38fdd66.tar.xz
discord.py-25a1d8c3004d061946533fffb901b225c38fdd66.zip
Add support for user flags in Profile.
Diffstat (limited to 'discord/user.py')
-rw-r--r--discord/user.py30
1 files changed, 27 insertions, 3 deletions
diff --git a/discord/user.py b/discord/user.py
index 634e821c..cecd1c51 100644
--- a/discord/user.py
+++ b/discord/user.py
@@ -25,7 +25,7 @@ DEALINGS IN THE SOFTWARE.
"""
from .utils import snowflake_time, _bytes_to_base64_data, parse_time
-from .enums import DefaultAvatar, RelationshipType
+from .enums import DefaultAvatar, RelationshipType, UserFlags
from .errors import ClientException
from collections import namedtuple
@@ -33,7 +33,31 @@ from collections import namedtuple
import discord.abc
import asyncio
-Profile = namedtuple('Profile', 'premium user mutual_guilds connected_accounts premium_since')
+class Profile(namedtuple('Profile', 'flags user mutual_guilds connected_accounts premium_since')):
+ __slots__ = ()
+
+ @property
+ def nitro(self):
+ return self.premium_since is not None
+
+ premium = nitro
+
+ def _has_flag(self, o):
+ v = o.value
+ return (self.flags & v) == v
+
+ @property
+ def staff(self):
+ return self._has_flag(UserFlags.staff)
+
+ @property
+ def hypesquad(self):
+ return self._has_flag(UserFlags.hypesquad)
+
+ @property
+ def partner(self):
+ return self._has_flag(UserFlags.partner)
+
_BaseUser = discord.abc.User
@@ -561,7 +585,7 @@ class User(BaseUser, discord.abc.Messageable):
since = data.get('premium_since')
mutual_guilds = list(filter(None, map(transform, data.get('mutual_guilds', []))))
- return Profile(premium=since is not None,
+ return Profile(flags=data['user'].get('flags', 0),
premium_since=parse_time(since),
mutual_guilds=mutual_guilds,
user=self,