Skip to content

Commit 55ffe96

Browse files
authored
refactor: add missed tags fields for Channel and Tags (#1193)
1 parent a250384 commit 55ffe96

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

interactions/api/models/channel.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ async def __aexit__(self, exc_type, exc_val, exc_tb):
298298

299299

300300
@define()
301-
class Tags(ClientSerializerMixin): # helpers, hehe :D
301+
class Tags(ClientSerializerMixin):
302302
"""
303303
.. versionadded:: 4.3.2
304304
@@ -310,17 +310,23 @@ class Tags(ClientSerializerMixin): # helpers, hehe :D
310310
:ivar str name: Name of the tag. The limit is up to 20 characters.
311311
:ivar Snowflake id: ID of the tag. Can also be 0 if manually created.
312312
:ivar bool moderated: A boolean denoting whether this tag can be removed/added by moderators with the :attr:`.Permissions.MANAGE_THREADS` permission.
313-
:ivar Optional[Emoji] emoji: The emoji to represent the tag, if any.
314-
313+
:ivar Optional[str] emoji_name: The unicode character of the emoji.
314+
:ivar Optional[Snowflake] emoji_id: The id of a guild's custom emoji.
315315
"""
316316

317317
# TODO: Rename these to discord-docs
318318
name: str = field()
319319
id: Snowflake = field(converter=Snowflake)
320320
moderated: bool = field()
321-
emoji: Optional[Emoji] = field(converter=Emoji, default=None)
321+
emoji_name: Optional[str] = field(default=None)
322+
emoji_id: Optional[Snowflake] = field(converter=Snowflake, default=None)
322323

323-
# Maybe on post_attrs_init replace emoji object with one from cache for name population?
324+
@property
325+
def emoji(self) -> Emoji:
326+
"""
327+
Returns an emoji of tag.
328+
"""
329+
return Emoji(name=self.emoji_name, id=self.emoji_id, _client=self._client)
324330

325331
@property
326332
def created_at(self) -> datetime:
@@ -432,6 +438,7 @@ class Channel(ClientSerializerMixin, IDMixin):
432438
:ivar Optional[int] total_message_sent: Number of messages ever sent in a thread.
433439
:ivar Optional[int] default_thread_slowmode_delay: The default slowmode delay in seconds for threads, if this channel is a forum.
434440
:ivar Optional[List[Tags]] available_tags: Tags in a forum channel, if any.
441+
:ivar Optional[List[Snowflake]] applied_tags: The IDs of tags that have been applied to a thread, if any.
435442
:ivar Optional[Emoji] default_reaction_emoji: Default reaction emoji for threads created in a forum, if any.
436443
"""
437444

@@ -483,7 +490,8 @@ class Channel(ClientSerializerMixin, IDMixin):
483490
default_thread_slowmode_delay: Optional[int] = field(default=None, repr=False)
484491
available_tags: Optional[List[Tags]] = field(
485492
converter=convert_list(Tags), default=None, add_client=True
486-
) # eh?
493+
)
494+
applied_tags: Optional[List[Snowflake]] = field(converter=convert_list(Snowflake), default=None)
487495
default_reaction_emoji: Optional[Emoji] = field(converter=Emoji, default=None)
488496

489497
def __attrs_post_init__(self): # sourcery skip: last-if-guard

0 commit comments

Comments
 (0)