Browse Source

Add Guild.nsfw_level

pull/7030/head
Nadir Chowdhury 4 years ago
committed by GitHub
parent
commit
a7ae2eb1bb
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      discord/enums.py
  2. 11
      discord/guild.py
  3. 3
      discord/types/guild.py
  4. 22
      docs/api.rst

7
discord/enums.py

@ -53,6 +53,7 @@ __all__ = (
'StagePrivacyLevel', 'StagePrivacyLevel',
'InteractionType', 'InteractionType',
'InteractionResponseType', 'InteractionResponseType',
'NSFWLevel',
) )
def _create_value_cls(name): def _create_value_cls(name):
@ -488,6 +489,12 @@ class StagePrivacyLevel(Enum):
closed = 2 closed = 2
guild_only = 2 guild_only = 2
class NSFWLevel(Enum):
default = 0
explicit = 1
safe = 2
age_restricted = 3
T = TypeVar('T') T = TypeVar('T')
def create_unknown_value(cls: Type[T], val: Any) -> T: def create_unknown_value(cls: Type[T], val: Any) -> T:

11
discord/guild.py

@ -37,7 +37,7 @@ from .permissions import PermissionOverwrite
from .colour import Colour from .colour import Colour
from .errors import InvalidArgument, ClientException from .errors import InvalidArgument, ClientException
from .channel import * from .channel import *
from .enums import AuditLogAction, VideoQualityMode, VoiceRegion, ChannelType, try_enum, VerificationLevel, ContentFilter, NotificationLevel from .enums import AuditLogAction, VideoQualityMode, VoiceRegion, ChannelType, try_enum, VerificationLevel, ContentFilter, NotificationLevel, NSFWLevel
from .mixins import Hashable from .mixins import Hashable
from .user import User from .user import User
from .invite import Invite from .invite import Invite
@ -167,9 +167,8 @@ class Guild(Hashable):
preferred_locale: Optional[:class:`str`] preferred_locale: Optional[:class:`str`]
The preferred locale for the guild. Used when filtering Server Discovery The preferred locale for the guild. Used when filtering Server Discovery
results to a specific language. results to a specific language.
nsfw_level: :class:`NSFWLevel`
nsfw: :class:`bool` The guild's NSFW level.
If the guild is marked as "not safe for work".
.. versionadded:: 2.0 .. versionadded:: 2.0
""" """
@ -183,7 +182,7 @@ class Guild(Hashable):
'description', 'max_presences', 'max_members', 'max_video_channel_users', 'description', 'max_presences', 'max_members', 'max_video_channel_users',
'premium_tier', 'premium_subscription_count', '_system_channel_flags', 'premium_tier', 'premium_subscription_count', '_system_channel_flags',
'preferred_locale', '_discovery_splash', '_rules_channel_id', 'preferred_locale', '_discovery_splash', '_rules_channel_id',
'_public_updates_channel_id', '_stage_instances', 'nsfw') '_public_updates_channel_id', '_stage_instances', 'nsfw_level')
_PREMIUM_GUILD_LIMITS = { _PREMIUM_GUILD_LIMITS = {
None: _GuildLimit(emoji=50, bitrate=96e3, filesize=8388608), None: _GuildLimit(emoji=50, bitrate=96e3, filesize=8388608),
@ -318,7 +317,7 @@ class Guild(Hashable):
self._discovery_splash = guild.get('discovery_splash') self._discovery_splash = guild.get('discovery_splash')
self._rules_channel_id = utils._get_as_snowflake(guild, 'rules_channel_id') self._rules_channel_id = utils._get_as_snowflake(guild, 'rules_channel_id')
self._public_updates_channel_id = utils._get_as_snowflake(guild, 'public_updates_channel_id') self._public_updates_channel_id = utils._get_as_snowflake(guild, 'public_updates_channel_id')
self.nsfw = guild.get('nsfw', False) self.nsfw_level = try_enum(NSFWLevel, guild.get('nsfw_level', 0))
self._stage_instances = {} self._stage_instances = {}
for s in guild.get('stage_instances', []): for s in guild.get('stage_instances', []):

3
discord/types/guild.py

@ -70,6 +70,7 @@ DefaultMessageNotificationLevel = Literal[0, 1]
ExplicitContentFilterLevel = Literal[0, 1, 2] ExplicitContentFilterLevel = Literal[0, 1, 2]
MFALevel = Literal[0, 1] MFALevel = Literal[0, 1]
VerificationLevel = Literal[0, 1, 2, 3, 4] VerificationLevel = Literal[0, 1, 2, 3, 4]
NSFWLevel = Literal[0, 1, 2, 3]
PremiumTier = Literal[0, 1, 2, 3] PremiumTier = Literal[0, 1, 2, 3]
GuildFeature = Literal[ GuildFeature = Literal[
'INVITE_SPLASH', 'INVITE_SPLASH',
@ -119,7 +120,7 @@ class Guild(_BaseGuildPreview, _GuildOptional):
explicit_content_filter: ExplicitContentFilterLevel explicit_content_filter: ExplicitContentFilterLevel
roles: List[Role] roles: List[Role]
mfa_level: MFALevel mfa_level: MFALevel
nsfw: bool nsfw_level: NSFWLevel
application_id: Optional[Snowflake] application_id: Optional[Snowflake]
system_channel_id: Optional[Snowflake] system_channel_id: Optional[Snowflake]
system_channel_flags: int system_channel_flags: int

22
docs/api.rst

@ -2197,6 +2197,28 @@ of :class:`enum.Enum`.
Alias for :attr:`.closed` Alias for :attr:`.closed`
.. class:: NSFWLevel
Represents the NSFW level of a guild.
.. versionadded:: 2.0
.. attribute:: default
The guild has not been categorised yet.
.. attribute:: explicit
The guild contains NSFW content.
.. attribute:: safe
The guild does not contain any NSFW content.
.. attribute:: age_restricted
The guild may contain NSFW content.
Async Iterator Async Iterator
---------------- ----------------

Loading…
Cancel
Save