diff options
Diffstat (limited to 'discord')
| -rw-r--r-- | discord/__init__.py | 2 | ||||
| -rw-r--r-- | discord/client.py | 9 | ||||
| -rw-r--r-- | discord/enums.py | 10 | ||||
| -rw-r--r-- | discord/server.py | 15 |
4 files changed, 26 insertions, 10 deletions
diff --git a/discord/__init__.py b/discord/__init__.py index 62166ddf..bd0eac31 100644 --- a/discord/__init__.py +++ b/discord/__init__.py @@ -34,7 +34,7 @@ from .invite import Invite from .object import Object from . import utils, opus, compat from .voice_client import VoiceClient -from .enums import ChannelType, ServerRegion, Status, MessageType +from .enums import ChannelType, ServerRegion, Status, MessageType, VerificationLevel from collections import namedtuple import logging diff --git a/discord/client.py b/discord/client.py index 93679244..74a417cd 100644 --- a/discord/client.py +++ b/discord/client.py @@ -38,7 +38,7 @@ from .errors import * from .state import ConnectionState from .permissions import Permissions, PermissionOverwrite from . import utils, compat -from .enums import ChannelType, ServerRegion +from .enums import ChannelType, ServerRegion, VerificationLevel from .voice_client import VoiceClient from .iterators import LogsFromIterator from .gateway import * @@ -1930,6 +1930,8 @@ class Client: owner : :class:`Member` The new owner of the server to transfer ownership to. Note that you must be owner of the server to do this. + verification_level: :class:`VerificationLevel` + The new verification level for the server. Raises ------- @@ -1968,6 +1970,11 @@ class Client: if 'region' in fields: fields['region'] = str(fields['region']) + level = fields.get('verification_level', server.verification_level) + if not isinstance(level, VerificationLevel): + raise InvalidArgument('verification_level field must of type VerificationLevel') + + fields['verification_level'] = level.value yield from self.http.edit_server(server.id, **fields) @asyncio.coroutine diff --git a/discord/enums.py b/discord/enums.py index c5cdb6f3..191728ee 100644 --- a/discord/enums.py +++ b/discord/enums.py @@ -64,6 +64,16 @@ class ServerRegion(Enum): def __str__(self): return self.value +class VerificationLevel(Enum): + none = 0 + low = 1 + medium = 2 + high = 3 + table_flip = 3 + + def __str__(self): + return self.name + class Status(Enum): online = 'online' offline = 'offline' diff --git a/discord/server.py b/discord/server.py index 035b52a1..6703a8fc 100644 --- a/discord/server.py +++ b/discord/server.py @@ -30,7 +30,7 @@ from .member import Member from .emoji import Emoji from .game import Game from .channel import Channel -from .enums import ServerRegion, Status +from .enums import ServerRegion, Status, try_enum, VerificationLevel from .mixins import Hashable class Server(Hashable): @@ -92,12 +92,15 @@ class Server(Hashable): Indicates the server's two factor authorisation level. If this value is 0 then the server does not require 2FA for their administrative members. If the value is 1 then they do. + verification_level: :class:`VerificationLevel` + The server's verification level. """ __slots__ = ['afk_timeout', 'afk_channel', '_members', '_channels', 'icon', 'name', 'id', 'owner', 'unavailable', 'name', 'region', '_default_role', '_default_channel', 'roles', '_member_count', - 'large', 'owner_id', 'mfa_level', 'emojis'] + 'large', 'owner_id', 'mfa_level', 'emojis', + 'verification_level' ] def __init__(self, **kwargs): self._channels = {} @@ -176,12 +179,8 @@ class Server(Hashable): self._member_count = member_count self.name = guild.get('name') - self.region = guild.get('region') - try: - self.region = ServerRegion(self.region) - except: - pass - + self.region = try_enum(ServerRegion, guild.get('region')) + self.verification_level = try_enum(VerificationLevel, guild.get('verification_level')) self.afk_timeout = guild.get('afk_timeout') self.icon = guild.get('icon') self.unavailable = guild.get('unavailable', False) |