From 21f51b45be01a36907b0a8479de12c39f32569a1 Mon Sep 17 00:00:00 2001 From: LordOfPolls Date: Fri, 7 Jul 2023 08:44:39 +0100 Subject: [PATCH] feat: support media channels (#1458) * feat: support media channels * feat: rename media channel to GuildMedia to fit convention Co-authored-by: i0bs <41456914+i0bs@users.noreply.github.com> * feat: add guild media to namespace * fix: handle enum value name change --------- Co-authored-by: i0bs <41456914+i0bs@users.noreply.github.com> --- interactions/__init__.py | 2 ++ interactions/models/__init__.py | 2 ++ interactions/models/discord/__init__.py | 2 ++ interactions/models/discord/channel.py | 7 +++++++ interactions/models/discord/enums.py | 4 ++++ 5 files changed, 17 insertions(+) diff --git a/interactions/__init__.py b/interactions/__init__.py index 3be1785e8..925377124 100644 --- a/interactions/__init__.py +++ b/interactions/__init__.py @@ -149,6 +149,7 @@ GuildForum, GuildForumPost, GuildIntegration, + GuildMedia, GuildNews, GuildNewsConverter, GuildNewsThread, @@ -476,6 +477,7 @@ "GuildForum", "GuildForumPost", "GuildIntegration", + "GuildMedia", "GuildNews", "GuildNewsConverter", "GuildNewsThread", diff --git a/interactions/models/__init__.py b/interactions/models/__init__.py index a3e3543aa..e8a7c0058 100644 --- a/interactions/models/__init__.py +++ b/interactions/models/__init__.py @@ -67,6 +67,7 @@ GuildForum, GuildForumPost, GuildIntegration, + GuildMedia, GuildNews, GuildNewsThread, GuildPreview, @@ -411,6 +412,7 @@ "GuildForum", "GuildForumPost", "GuildIntegration", + "GuildMedia", "GuildNews", "GuildNewsConverter", "GuildNewsThread", diff --git a/interactions/models/discord/__init__.py b/interactions/models/discord/__init__.py index 5adf044de..2793aefc1 100644 --- a/interactions/models/discord/__init__.py +++ b/interactions/models/discord/__init__.py @@ -13,6 +13,7 @@ GuildChannel, GuildForum, GuildForumPost, + GuildMedia, GuildNews, GuildNewsThread, GuildPrivateThread, @@ -234,6 +235,7 @@ "GuildForum", "GuildForumPost", "GuildIntegration", + "GuildMedia", "GuildNews", "GuildNewsThread", "GuildPreview", diff --git a/interactions/models/discord/channel.py b/interactions/models/discord/channel.py index 26e8200ac..b13125ab0 100644 --- a/interactions/models/discord/channel.py +++ b/interactions/models/discord/channel.py @@ -2640,6 +2640,11 @@ async def delete_tag(self, tag_id: "Snowflake_Type") -> None: self._client.cache.place_channel_data(data) +@attrs.define(eq=False, order=False, hash=False, kw_only=True) +class GuildMedia(GuildForum): + ... + + def process_permission_overwrites( overwrites: Union[dict, PermissionOverwrite, List[Union[dict, PermissionOverwrite]]] ) -> List[dict]: @@ -2694,6 +2699,7 @@ def process_permission_overwrites( GuildVoice, GuildStageVoice, GuildForum, + GuildMedia, GuildPublicThread, GuildForumPost, GuildPrivateThread, @@ -2731,4 +2737,5 @@ def process_permission_overwrites( ChannelType.DM: DM, ChannelType.GROUP_DM: DMGroup, ChannelType.GUILD_FORUM: GuildForum, + ChannelType.GUILD_MEDIA: GuildMedia, } diff --git a/interactions/models/discord/enums.py b/interactions/models/discord/enums.py index 69e1cfbee..d5b3ec054 100644 --- a/interactions/models/discord/enums.py +++ b/interactions/models/discord/enums.py @@ -611,6 +611,8 @@ class ChannelType(CursedIntEnum): """Voice channel for hosting events with an audience""" GUILD_FORUM = 15 """A Forum channel""" + GUILD_MEDIA = 16 + """Channel that can only contain threads, similar to `GUILD_FORUM` channels""" @property def guild(self) -> bool: @@ -794,6 +796,8 @@ class ChannelFlags(DiscordIntFlag): """ Thread is pinned to the top of its parent forum channel """ CLYDE_THREAD = 1 << 8 """This thread was created by Clyde""" + HIDE_MEDIA_DOWNLOAD_OPTIONS = 1 << 15 + """when set hides the embedded media download options. Available only for media channels""" # Special members NONE = 0