From 92445cb193ddc7f0639f2b80a24ed3904ae96604 Mon Sep 17 00:00:00 2001 From: Rapptz Date: Fri, 29 Apr 2022 12:39:12 -0400 Subject: [PATCH] Address latest breaking change in creating forum posts --- discord/channel.py | 4 ++-- discord/http.py | 14 +++++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/discord/channel.py b/discord/channel.py index fc0ed6754..9c8434d70 100644 --- a/discord/channel.py +++ b/discord/channel.py @@ -2185,7 +2185,7 @@ class ForumChannel(discord.abc.GuildChannel, Hashable): content = str(content) if content else MISSING - extras = { + channel_payload = { 'name': name, 'auto_archive_duration': auto_archive_duration or self.default_auto_archive_duration, 'location': 'Forum Channel', @@ -2204,7 +2204,7 @@ class ForumChannel(discord.abc.GuildChannel, Hashable): mention_author=None if mention_author is MISSING else mention_author, stickers=sticker_ids, flags=flags, - extras=extras, + channel_payload=channel_payload, ) as params: data = await state.http.start_thread_in_forum(self.id, params=params, reason=reason) return Thread(guild=self.guild, state=self._state, data=data) diff --git a/discord/http.py b/discord/http.py index 19427150a..d50add7ab 100644 --- a/discord/http.py +++ b/discord/http.py @@ -171,7 +171,7 @@ def handle_message_parameters( stickers: Optional[SnowflakeList] = MISSING, previous_allowed_mentions: Optional[AllowedMentions] = None, mention_author: Optional[bool] = None, - extras: Dict[str, Any] = MISSING, + channel_payload: Dict[str, Any] = MISSING, ) -> MultipartParameters: if files is not MISSING and file is not MISSING: raise TypeError('Cannot mix file and files keyword arguments.') @@ -254,8 +254,11 @@ def handle_message_parameters( payload['attachments'] = attachments_payload - if extras is not MISSING: - payload.update(extras) + if channel_payload is not MISSING: + payload = { + 'message': payload, + } + payload.update(channel_payload) multipart = [] if files: @@ -1226,11 +1229,12 @@ class HTTPClient: params: MultipartParameters, reason: Optional[str] = None, ) -> Response[threads.Thread]: + query = {'use_nested_fields': 1} r = Route('POST', '/channels/{channel_id}/threads', channel_id=channel_id) if params.files: - return self.request(r, files=params.files, form=params.multipart, reason=reason) + return self.request(r, files=params.files, form=params.multipart, params=query, reason=reason) else: - return self.request(r, json=params.payload, reason=reason) + return self.request(r, json=params.payload, params=query, reason=reason) def join_thread(self, channel_id: Snowflake) -> Response[None]: r = Route('POST', '/channels/{channel_id}/thread-members/@me', channel_id=channel_id)