From 92cf5d54730fa4d2f807391d40979b230d075cbd Mon Sep 17 00:00:00 2001 From: Soheab_ <33902984+Soheab@users.noreply.github.com> Date: Thu, 24 Apr 2025 23:47:58 +0200 Subject: [PATCH 1/2] Make it possible to create a media channel --- discord/guild.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/discord/guild.py b/discord/guild.py index 20a50d4e932f..a29d609a871b 100644 --- a/discord/guild.py +++ b/discord/guild.py @@ -1800,6 +1800,7 @@ async def create_forum( category: Optional[CategoryChannel] = None, slowmode_delay: int = MISSING, nsfw: bool = MISSING, + media_only: bool = MISSING, overwrites: Mapping[Union[Role, Member, Object], PermissionOverwrite] = MISSING, reason: Optional[str] = None, default_auto_archive_duration: int = MISSING, @@ -1862,12 +1863,17 @@ async def create_forum( .. versionadded:: 2.3 default_layout: :class:`ForumLayoutType` The default layout for posts in this forum. + This cannot be set if ``media_only`` is set to ``True``. .. versionadded:: 2.3 available_tags: Sequence[:class:`ForumTag`] The available tags for this forum channel. .. versionadded:: 2.1 + media_only: :class:`bool` + Whether to create a media-only forum channel. + + .. versionadded:: 2.6 Raises ------- @@ -1919,7 +1925,7 @@ async def create_forum( else: raise ValueError(f'default_reaction_emoji parameter must be either Emoji, PartialEmoji, or str') - if default_layout is not MISSING: + if not media_only and default_layout is not MISSING: if not isinstance(default_layout, ForumLayoutType): raise TypeError( f'default_layout parameter must be a ForumLayoutType not {default_layout.__class__.__name__}' @@ -1931,7 +1937,12 @@ async def create_forum( options['available_tags'] = [t.to_dict() for t in available_tags] data = await self._create_channel( - name=name, overwrites=overwrites, channel_type=ChannelType.forum, category=category, reason=reason, **options + name=name, + overwrites=overwrites, + channel_type=ChannelType.forum if not media_only else ChannelType.media, + category=category, + reason=reason, + **options, ) channel = ForumChannel(state=self._state, guild=self, data=data) From 3e869d85c778c272d068f22dbacb8e70d7c9e53c Mon Sep 17 00:00:00 2001 From: Soheab_ <33902984+Soheab@users.noreply.github.com> Date: Fri, 25 Apr 2025 22:50:26 +0200 Subject: [PATCH 2/2] media_only -> media --- discord/guild.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/discord/guild.py b/discord/guild.py index a29d609a871b..57cbefc133f4 100644 --- a/discord/guild.py +++ b/discord/guild.py @@ -1800,7 +1800,7 @@ async def create_forum( category: Optional[CategoryChannel] = None, slowmode_delay: int = MISSING, nsfw: bool = MISSING, - media_only: bool = MISSING, + media: bool = MISSING, overwrites: Mapping[Union[Role, Member, Object], PermissionOverwrite] = MISSING, reason: Optional[str] = None, default_auto_archive_duration: int = MISSING, @@ -1870,8 +1870,8 @@ async def create_forum( The available tags for this forum channel. .. versionadded:: 2.1 - media_only: :class:`bool` - Whether to create a media-only forum channel. + media: :class:`bool` + Whether to create a media forum channel. .. versionadded:: 2.6 @@ -1925,7 +1925,7 @@ async def create_forum( else: raise ValueError(f'default_reaction_emoji parameter must be either Emoji, PartialEmoji, or str') - if not media_only and default_layout is not MISSING: + if not media and default_layout is not MISSING: if not isinstance(default_layout, ForumLayoutType): raise TypeError( f'default_layout parameter must be a ForumLayoutType not {default_layout.__class__.__name__}' @@ -1939,13 +1939,13 @@ async def create_forum( data = await self._create_channel( name=name, overwrites=overwrites, - channel_type=ChannelType.forum if not media_only else ChannelType.media, + channel_type=ChannelType.forum if not media else ChannelType.media, category=category, reason=reason, **options, ) - channel = ForumChannel(state=self._state, guild=self, data=data) + channel = ForumChannel(state=self._state, guild=self, data=data) # pyright: ignore[reportArgumentType] # it's the correct data # temporarily add to the cache self._channels[channel.id] = channel