aboutsummaryrefslogtreecommitdiff
path: root/discord/webhook.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2021-03-24 08:49:12 -0400
committerRapptz <[email protected]>2021-03-24 08:50:34 -0400
commit1c8d1b028950c111fab4c654e27c288264bb82fc (patch)
tree799e93facdf16f8bcb7dd53b18537c703bd96c42 /discord/webhook.py
parentRemove deprecated uses of about (diff)
downloaddiscord.py-1c8d1b028950c111fab4c654e27c288264bb82fc.tar.xz
discord.py-1c8d1b028950c111fab4c654e27c288264bb82fc.zip
Recreate aiohttp.FormData objects during request retries
Fixes #6531
Diffstat (limited to 'discord/webhook.py')
-rw-r--r--discord/webhook.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/discord/webhook.py b/discord/webhook.py
index 9b22d42c..0b0195b2 100644
--- a/discord/webhook.py
+++ b/discord/webhook.py
@@ -203,13 +203,6 @@ class AsyncWebhookAdapter(WebhookAdapter):
if reason:
headers['X-Audit-Log-Reason'] = _uriquote(reason, safe='/ ')
- if multipart:
- data = aiohttp.FormData()
- for key, value in multipart.items():
- if key.startswith('file'):
- data.add_field(key, value[1], filename=value[0], content_type=value[2])
- else:
- data.add_field(key, value)
base_url = url.replace(self._request_url, '/') or '/'
_id = self._webhook_id
@@ -217,6 +210,14 @@ class AsyncWebhookAdapter(WebhookAdapter):
for file in files:
file.reset(seek=tries)
+ if multipart:
+ data = aiohttp.FormData()
+ for key, value in multipart.items():
+ if key.startswith('file'):
+ data.add_field(key, value[1], filename=value[0], content_type=value[2])
+ else:
+ data.add_field(key, value)
+
async with self.session.request(verb, url, headers=headers, data=data) as r:
log.debug('Webhook ID %s with %s %s has returned status code %s', _id, verb, base_url, r.status)
# Coerce empty strings to return None for hygiene purposes