diff options
| author | Rapptz <[email protected]> | 2017-06-30 18:49:49 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2017-06-30 18:49:49 -0400 |
| commit | 25a1d8c3004d061946533fffb901b225c38fdd66 (patch) | |
| tree | 0fc03d21a1bf3f94e660b65fc530396604be06e1 /discord/user.py | |
| parent | Typo in docstring for TextChannel.delete_messages (diff) | |
| download | discord.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.py | 30 |
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, |