From 79f172cf809ee7b51ee9bce379a4c7531e8d1b4e Mon Sep 17 00:00:00 2001 From: Liam H <35095843+ir-3@users.noreply.github.com> Date: Wed, 23 Jan 2019 17:45:35 -0600 Subject: [PATCH] Add PremiumType enumeration and ClientUser.premium_type --- discord/enums.py | 7 ++++++- discord/user.py | 7 +++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/discord/enums.py b/discord/enums.py index f11f1ed11..9e6ec3e60 100644 --- a/discord/enums.py +++ b/discord/enums.py @@ -29,7 +29,8 @@ from enum import Enum, IntEnum __all__ = ['ChannelType', 'MessageType', 'VoiceRegion', 'SpeakingState', 'VerificationLevel', 'ContentFilter', 'Status', 'DefaultAvatar', 'RelationshipType', 'AuditLogAction', 'AuditLogActionCategory', - 'UserFlags', 'ActivityType', 'HypeSquadHouse', 'NotificationLevel'] + 'UserFlags', 'ActivityType', 'HypeSquadHouse', 'NotificationLevel', + 'PremiumType'] class ChannelType(Enum): text = 0 @@ -245,6 +246,10 @@ class HypeSquadHouse(Enum): brilliance = 2 balance = 3 +class PremiumType(Enum): + nitro_classic = 1 + nitro = 2 + def try_enum(cls, val): """A function that tries to turn the value into enum ``cls``. diff --git a/discord/user.py b/discord/user.py index 78ed04919..900e632da 100644 --- a/discord/user.py +++ b/discord/user.py @@ -28,7 +28,7 @@ from collections import namedtuple import discord.abc from .utils import snowflake_time, _bytes_to_base64_data, parse_time, valid_icon_size -from .enums import DefaultAvatar, RelationshipType, UserFlags, HypeSquadHouse +from .enums import DefaultAvatar, RelationshipType, UserFlags, HypeSquadHouse, PremiumType, try_enum from .errors import ClientException, InvalidArgument from .colour import Colour @@ -299,8 +299,10 @@ class ClientUser(BaseUser): Specifies if the user has MFA turned on and working. premium: :class:`bool` Specifies if the user is a premium user (e.g. has Discord Nitro). + premium_type: :class:`PremiumType` + Specifies the type of premium a user has (e.g. Nitro or Nitro Classic). Could be None if the user is not premium. """ - __slots__ = ('email', 'verified', 'mfa_enabled', 'premium', '_relationships') + __slots__ = ('email', 'verified', 'mfa_enabled', 'premium', 'premium_type', '_relationships') def __init__(self, *, state, data): super().__init__(state=state, data=data) @@ -308,6 +310,7 @@ class ClientUser(BaseUser): self.email = data.get('email') self.mfa_enabled = data.get('mfa_enabled', False) self.premium = data.get('premium', False) + self.premium_type = try_enum(PremiumType, data.get('premium_type', None)) self._relationships = {} def __repr__(self):