Add initial support for forum channels

Closes #7652
This commit is contained in:
Rapptz
2022-04-06 22:42:18 -04:00
parent bc91e1667f
commit 23f6876492
12 changed files with 467 additions and 14 deletions

View File

@@ -147,6 +147,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,
) -> MultipartParameters:
if files is not MISSING and file is not MISSING:
raise TypeError('Cannot mix file and files keyword arguments.')
@@ -234,6 +235,9 @@ def handle_message_parameters(
payload['attachments'] = attachments_payload
if extras is not MISSING:
payload.update(extras)
multipart = []
if files:
multipart.append({'name': 'payload_json', 'value': utils._to_json(payload)})
@@ -976,6 +980,19 @@ class HTTPClient:
route = Route('POST', '/channels/{channel_id}/threads', channel_id=channel_id)
return self.request(route, json=payload, reason=reason)
def start_thread_in_forum(
self,
channel_id: Snowflake,
*,
params: MultipartParameters,
reason: Optional[str] = None,
) -> Response[threads.Thread]:
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)
else:
return self.request(r, json=params.payload, reason=reason)
def join_thread(self, channel_id: Snowflake) -> Response[None]:
return self.request(Route('POST', '/channels/{channel_id}/thread-members/@me', channel_id=channel_id))