|
|
@ -131,7 +131,7 @@ class HTTPClient: |
|
|
|
|
|
|
|
return await self.__session.ws_connect(url, **kwargs) |
|
|
|
|
|
|
|
async def request(self, route, *, files=None, **kwargs): |
|
|
|
async def request(self, route, *, files=None, form=None, **kwargs): |
|
|
|
bucket = route.bucket |
|
|
|
method = route.method |
|
|
|
url = route.url |
|
|
@ -181,6 +181,13 @@ class HTTPClient: |
|
|
|
if files: |
|
|
|
for f in files: |
|
|
|
f.reset(seek=tries) |
|
|
|
|
|
|
|
if form: |
|
|
|
form_data = aiohttp.FormData() |
|
|
|
for params in form: |
|
|
|
form_data.add_field(**params) |
|
|
|
kwargs['data'] = form_data |
|
|
|
|
|
|
|
try: |
|
|
|
async with self.__session.request(method, url, **kwargs) as r: |
|
|
|
log.debug('%s %s with %s has returned %s', method, url, kwargs.get('data'), r.status) |
|
|
@ -371,7 +378,7 @@ class HTTPClient: |
|
|
|
|
|
|
|
def send_files(self, channel_id, *, files, content=None, tts=False, embed=None, nonce=None, allowed_mentions=None, message_reference=None): |
|
|
|
r = Route('POST', '/channels/{channel_id}/messages', channel_id=channel_id) |
|
|
|
form = aiohttp.FormData() |
|
|
|
form = [] |
|
|
|
|
|
|
|
payload = {'tts': tts} |
|
|
|
if content: |
|
|
@ -385,15 +392,25 @@ class HTTPClient: |
|
|
|
if message_reference: |
|
|
|
payload['message_reference'] = message_reference |
|
|
|
|
|
|
|
form.add_field('payload_json', utils.to_json(payload)) |
|
|
|
form.append({'name': 'payload_json', 'value': utils.to_json(payload)}) |
|
|
|
if len(files) == 1: |
|
|
|
file = files[0] |
|
|
|
form.add_field('file', file.fp, filename=file.filename, content_type='application/octet-stream') |
|
|
|
form.append({ |
|
|
|
'name': 'file', |
|
|
|
'value': file.fp, |
|
|
|
'filename': file.filename, |
|
|
|
'content_type': 'application/octet-stream' |
|
|
|
}) |
|
|
|
else: |
|
|
|
for index, file in enumerate(files): |
|
|
|
form.add_field('file%s' % index, file.fp, filename=file.filename, content_type='application/octet-stream') |
|
|
|
|
|
|
|
return self.request(r, data=form, files=files) |
|
|
|
form.append({ |
|
|
|
'name': 'file%s' % index, |
|
|
|
'value': file.fp, |
|
|
|
'filename': file.filename, |
|
|
|
'content_type': 'application/octet-stream' |
|
|
|
}) |
|
|
|
|
|
|
|
return self.request(r, form=form, files=files) |
|
|
|
|
|
|
|
async def ack_message(self, channel_id, message_id): |
|
|
|
r = Route('POST', '/channels/{channel_id}/messages/{message_id}/ack', channel_id=channel_id, message_id=message_id) |
|
|
|