Add initial support for buttons and components

This commit is contained in:
Rapptz
2021-04-25 04:57:29 -04:00
parent f42e922696
commit 98570793e4
17 changed files with 1195 additions and 14 deletions

View File

@@ -354,6 +354,7 @@ class HTTPClient:
nonce=None,
allowed_mentions=None,
message_reference=None,
components=None,
):
r = Route('POST', '/channels/{channel_id}/messages', channel_id=channel_id)
payload = {}
@@ -376,6 +377,9 @@ class HTTPClient:
if message_reference:
payload['message_reference'] = message_reference
if components:
payload['components'] = components
return self.request(r, json=payload)
def send_typing(self, channel_id):
@@ -393,6 +397,7 @@ class HTTPClient:
nonce=None,
allowed_mentions=None,
message_reference=None,
components=None,
):
form = []
@@ -409,6 +414,8 @@ class HTTPClient:
payload['allowed_mentions'] = allowed_mentions
if message_reference:
payload['message_reference'] = message_reference
if components:
payload['components'] = components
form.append({'name': 'payload_json', 'value': utils.to_json(payload)})
if len(files) == 1:
@@ -445,6 +452,7 @@ class HTTPClient:
nonce=None,
allowed_mentions=None,
message_reference=None,
components=None,
):
r = Route('POST', '/channels/{channel_id}/messages', channel_id=channel_id)
return self.send_multipart_helper(
@@ -456,6 +464,7 @@ class HTTPClient:
nonce=nonce,
allowed_mentions=allowed_mentions,
message_reference=message_reference,
components=components,
)
def delete_message(self, channel_id, message_id, *, reason=None):
@@ -1210,14 +1219,21 @@ class HTTPClient:
return self.request(route, form=form, files=[file])
def create_interaction_response(self, interaction_id, token):
def create_interaction_response(self, interaction_id, token, *, type, data=None):
r = Route(
'POST',
'/interactions/{interaction_id}/{interaction_token}/callback',
interaction_id=interaction_id,
interaction_token=token,
)
return self.request(r)
payload = {
'type': type,
}
if data is not None:
payload['data'] = data
return self.request(r, json=payload)
def get_original_interaction_response(
self,