Browse Source

Add support for guild news channels.

pull/1967/head
Rapptz 6 years ago
parent
commit
5ea84fb971
  1. 12
      discord/channel.py
  2. 1
      discord/enums.py
  3. 3
      docs/api.rst

12
discord/channel.py

@ -85,11 +85,13 @@ class TextChannel(discord.abc.Messageable, discord.abc.GuildChannel, Hashable):
"""
__slots__ = ('name', 'id', 'guild', 'topic', '_state', 'nsfw',
'category_id', 'position', 'slowmode_delay', '_overwrites')
'category_id', 'position', 'slowmode_delay', '_overwrites',
'_type')
def __init__(self, *, state, guild, data):
self._state = state
self.id = int(data['id'])
self._type = data['type']
self._update(guild, data)
def __repr__(self):
@ -129,6 +131,10 @@ class TextChannel(discord.abc.Messageable, discord.abc.GuildChannel, Hashable):
n = self.name
return self.nsfw or n == 'nsfw' or n[:5] == 'nsfw-'
def is_news(self):
"""Checks if the channel is a news channel."""
return self._type == ChannelType.news.value
async def edit(self, *, reason=None, **options):
"""|coro|
@ -460,7 +466,7 @@ class VoiceChannel(discord.abc.Connectable, discord.abc.GuildChannel, Hashable):
if member is not None:
ret.append(member)
return ret
def permissions_for(self, member):
base = super().permissions_for(member)
@ -954,5 +960,7 @@ def _channel_factory(channel_type):
return CategoryChannel, value
elif value is ChannelType.group:
return GroupChannel, value
elif value is ChannelType.news:
return TextChannel, value
else:
return None, value

1
discord/enums.py

@ -38,6 +38,7 @@ class ChannelType(Enum):
voice = 2
group = 3
category = 4
news = 5
def __str__(self):
return self.name

3
docs/api.rst

@ -675,6 +675,9 @@ All enumerations are subclasses of `enum`_.
.. attribute:: group
A private group text channel.
.. attribute:: news
A guild news channel.
.. class:: MessageType

Loading…
Cancel
Save