aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNadir Chowdhury <[email protected]>2021-06-08 04:20:04 +0100
committerGitHub <[email protected]>2021-06-07 23:20:04 -0400
commita7ae2eb1bb8ac9b995a236a31aba11118d08406a (patch)
treedb3c2e5f402c5067575c29221904d8eb67927e15
parentAdd Embed.remove_footer (diff)
downloaddiscord.py-a7ae2eb1bb8ac9b995a236a31aba11118d08406a.tar.xz
discord.py-a7ae2eb1bb8ac9b995a236a31aba11118d08406a.zip
Add Guild.nsfw_level
-rw-r--r--discord/enums.py7
-rw-r--r--discord/guild.py11
-rw-r--r--discord/types/guild.py3
-rw-r--r--docs/api.rst22
4 files changed, 36 insertions, 7 deletions
diff --git a/discord/enums.py b/discord/enums.py
index 211b88fd..d716fa6f 100644
--- a/discord/enums.py
+++ b/discord/enums.py
@@ -53,6 +53,7 @@ __all__ = (
'StagePrivacyLevel',
'InteractionType',
'InteractionResponseType',
+ 'NSFWLevel',
)
def _create_value_cls(name):
@@ -488,6 +489,12 @@ class StagePrivacyLevel(Enum):
closed = 2
guild_only = 2
+class NSFWLevel(Enum):
+ default = 0
+ explicit = 1
+ safe = 2
+ age_restricted = 3
+
T = TypeVar('T')
def create_unknown_value(cls: Type[T], val: Any) -> T:
diff --git a/discord/guild.py b/discord/guild.py
index 36317e47..e9756905 100644
--- a/discord/guild.py
+++ b/discord/guild.py
@@ -37,7 +37,7 @@ from .permissions import PermissionOverwrite
from .colour import Colour
from .errors import InvalidArgument, ClientException
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 .user import User
from .invite import Invite
@@ -167,9 +167,8 @@ class Guild(Hashable):
preferred_locale: Optional[:class:`str`]
The preferred locale for the guild. Used when filtering Server Discovery
results to a specific language.
-
- nsfw: :class:`bool`
- If the guild is marked as "not safe for work".
+ nsfw_level: :class:`NSFWLevel`
+ The guild's NSFW level.
.. versionadded:: 2.0
"""
@@ -183,7 +182,7 @@ class Guild(Hashable):
'description', 'max_presences', 'max_members', 'max_video_channel_users',
'premium_tier', 'premium_subscription_count', '_system_channel_flags',
'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 = {
None: _GuildLimit(emoji=50, bitrate=96e3, filesize=8388608),
@@ -318,7 +317,7 @@ class Guild(Hashable):
self._discovery_splash = guild.get('discovery_splash')
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.nsfw = guild.get('nsfw', False)
+ self.nsfw_level = try_enum(NSFWLevel, guild.get('nsfw_level', 0))
self._stage_instances = {}
for s in guild.get('stage_instances', []):
diff --git a/discord/types/guild.py b/discord/types/guild.py
index d2dadbcf..65e9387b 100644
--- a/discord/types/guild.py
+++ b/discord/types/guild.py
@@ -70,6 +70,7 @@ DefaultMessageNotificationLevel = Literal[0, 1]
ExplicitContentFilterLevel = Literal[0, 1, 2]
MFALevel = Literal[0, 1]
VerificationLevel = Literal[0, 1, 2, 3, 4]
+NSFWLevel = Literal[0, 1, 2, 3]
PremiumTier = Literal[0, 1, 2, 3]
GuildFeature = Literal[
'INVITE_SPLASH',
@@ -119,7 +120,7 @@ class Guild(_BaseGuildPreview, _GuildOptional):
explicit_content_filter: ExplicitContentFilterLevel
roles: List[Role]
mfa_level: MFALevel
- nsfw: bool
+ nsfw_level: NSFWLevel
application_id: Optional[Snowflake]
system_channel_id: Optional[Snowflake]
system_channel_flags: int
diff --git a/docs/api.rst b/docs/api.rst
index d06f1565..68b055f4 100644
--- a/docs/api.rst
+++ b/docs/api.rst
@@ -2197,6 +2197,28 @@ of :class:`enum.Enum`.
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
----------------