Skip to content

Commit 1fa5559

Browse files
authored
support multipart attachment info
1 parent 7b617da commit 1fa5559

File tree

1 file changed

+22
-17
lines changed

1 file changed

+22
-17
lines changed

discord/webhook/async_.py

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -644,8 +644,9 @@ def handle_message_parameters(
644644
payload["embeds"] = [] if embed is None else [embed.to_dict()]
645645
if content is not MISSING:
646646
payload["content"] = str(content) if content is not None else None
647+
attachments = []
647648
if attachments is not MISSING:
648-
payload["attachments"] = [a.to_dict() for a in attachments]
649+
attachments = [a.to_dict() for a in attachments]
649650

650651
if view is not MISSING:
651652
payload["components"] = view.to_components() if view is not None else []
@@ -674,32 +675,36 @@ def handle_message_parameters(
674675
payload["allowed_mentions"] = previous_allowed_mentions.to_dict()
675676

676677
multipart = []
678+
multipart_files = []
677679
if file is not MISSING:
678680
files = [file]
679681

680682
if files:
681-
multipart.append({"name": "payload_json", "value": utils._to_json(payload)})
682-
payload = None
683-
if len(files) == 1:
684-
file = files[0]
685-
multipart.append(
683+
for index, file in enumerate(files):
684+
multipart_files.append(
686685
{
687-
"name": "file",
686+
"name": f"files[{index}]",
688687
"value": file.fp,
689688
"filename": file.filename,
690689
"content_type": "application/octet-stream",
691690
}
692691
)
693-
else:
694-
for index, file in enumerate(files):
695-
multipart.append(
696-
{
697-
"name": f"file{index}",
698-
"value": file.fp,
699-
"filename": file.filename,
700-
"content_type": "application/octet-stream",
701-
}
702-
)
692+
attachments.append(
693+
{
694+
"id": index,
695+
"filename": file.filename,
696+
"description": file.description,
697+
}
698+
)
699+
700+
if attachments:
701+
payload["attachments"] = attachments
702+
703+
if multipart_files:
704+
multipart.append({"name": "payload_json", "value": utils._to_json(payload)})
705+
payload = None
706+
multipart += multipart_files
707+
print(multipart)
703708

704709
return ExecuteWebhookParameters(payload=payload, multipart=multipart, files=files)
705710

0 commit comments

Comments
 (0)