Skip to content

Commit 2fae9f4

Browse files
committed
fix: files sending not working
1 parent fd17c1f commit 2fae9f4

File tree

2 files changed

+25
-11
lines changed

2 files changed

+25
-11
lines changed

discord_components/dpy_overrides.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ def send_files(
177177
if components:
178178
data["components"] = components
179179

180-
form = _form_files(data, files)
180+
form = _form_files(data, files, use_form=False)
181181
return self.request(
182182
Route("POST", "/channels/{channel_id}/messages", channel_id=channel_id),
183183
form=form,

discord_components/utils.py

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,28 @@ def _get_components_json(
2727
return [row.to_dict() for row in lines] if lines else []
2828

2929

30-
def _form_files(data: dict, files: List[File] = None) -> FormData:
31-
form = FormData()
32-
form.add_field("payload_json", dumps(data))
33-
for i in range(len(files)):
34-
form.add_field(
35-
f"file{i if len(files) > 1 else ''}",
36-
files[i].fp,
37-
filename=files[i].filename,
38-
content_type="application/octet-stream",
39-
)
30+
def _form_files(
31+
data: dict, files: List[File] = None, use_form: bool = True
32+
) -> Union[FormData, List[dict]]:
33+
if use_form:
34+
form = FormData()
35+
form.add_field("payload_json", dumps(data))
36+
for i in range(len(files)):
37+
form.add_field(
38+
f"file{i if len(files) > 1 else ''}",
39+
files[i].fp,
40+
filename=files[i].filename,
41+
content_type="application/octet-stream",
42+
)
43+
else:
44+
form = [{"name": "payload_json", "value": dumps(data)}]
45+
for i in range(len(files)):
46+
form.append(
47+
{
48+
"name": f"file{i if len(files) > 1 else ''}",
49+
"value": files[i].fp,
50+
"filename": files[i].filename,
51+
"content_type": "application/octet-stream",
52+
}
53+
)
4054
return form

0 commit comments

Comments
 (0)