Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| guides:apps:discord [2024-06-06 17:48] – v2 port examples geek | guides:apps:discord [2024-06-06 18:18] (current) – add date geek | ||
|---|---|---|---|
| Line 21: | Line 21: | ||
| Send files/ | Send files/ | ||
| <code AutoHotkey> | <code AutoHotkey> | ||
| - | #Requires AutoHotkey v2 | + | #Requires AutoHotkey v2.0 |
| data := CreateFormData(Map( | data := CreateFormData(Map( | ||
| " | " | ||
| - | " | + | " |
| - | " | + | " |
| )) | )) | ||
| http := ComObject(" | http := ComObject(" | ||
| Line 40: | Line 40: | ||
| * Thanks to Coco: https:// | * Thanks to Coco: https:// | ||
| * Modified version by SKAN, 09/ | * Modified version by SKAN, 09/ | ||
| - | * Ported to AHKv2 and modified by G33kDude | + | * Ported to AHKv2 and modified by G33kDude |
| * | * | ||
| * @param {Map} formData The fields to encode in the form body | * @param {Map} formData The fields to encode in the form body | ||
| Line 58: | Line 58: | ||
| */ | */ | ||
| CreateFormData(formData) { | CreateFormData(formData) { | ||
| - | boundary := Format( | + | boundary := Random(2**60, 2**63-1) Random(2**60, 2**63-1), buf := Buffer() |
| - | " | + | |
| - | | + | |
| - | | + | |
| - | ) | + | |
| - | buf := Buffer() | + | |
| - | AppendStr(str) { | + | |
| - | oldSize := buf.Size | + | |
| - | buf.Size += strSize := StrPut(str, "UTF-8") - 1 | + | |
| - | StrPut(str, buf.Ptr + oldSize, strSize, " | + | |
| - | } | + | |
| - | AppendFile(file) { | + | |
| - | file.Pos | + | |
| - | oldSize := buf.Size | + | |
| - | buf.Size += file.Length | + | |
| - | file.RawRead(buf.ptr + oldSize, file.Length) | + | |
| - | } | + | |
| for k, v in formData { | for k, v in formData { | ||
| if v ~= " | if v ~= " | ||
| - | filePath := LTrim(v, " | + | filePath := LTrim(v, " |
| - | | + | |
| file := FileOpen(filePath, | file := FileOpen(filePath, | ||
| - | | + | |
| - | | + | . '"; |
| - | ' | + | . " |
| - | " | + | |
| - | | + | } else { ; Regular text |
| - | AppendFile(file) | + | |
| - | AppendStr(" | + | . '" |
| - | | + | |
| } | } | ||
| - | | ||
| - | AppendStr( | ||
| - | " | ||
| - | ' | ||
| - | v " | ||
| - | ) | ||
| } | } | ||
| - | | + | |
| | | ||
| return { | return { | ||
| Line 104: | Line 79: | ||
| } | } | ||
| | | ||
| - | | + | |
| - | | + | |
| - | n := file.ReadUInt() | + | |
| - | return ( | + | |
| - | (n | + | |
| - | (n | + | |
| - | | + | |
| - | (n & 0xFFFF = 0xD8FF | + | |
| - | (n & 0xFFFF = 0x4949 | + | |
| - | (n & 0xFFFF = 0x4D4D | + | |
| - | " | + | |
| - | | + | |
| } | } | ||
| - | | + | |
| + | oldSize := buf.Size, buf.Size += file.Length | ||
| + | file.Pos := 0, file.RawRead(buf.ptr + oldSize, file.Length) | ||
| + | } | ||
| + | MimeType(file) => ( | ||
| + | file.Pos := 0, n := file.ReadUInt(), | ||
| + | (n = 0x474E5089) ? " | ||
| + | (n = 0x38464947) ? " | ||
| + | (n & 0xFFFF = 0x4D42 | ||
| + | (n & 0xFFFF = 0xD8FF | ||
| + | (n & 0xFFFF = 0x4949 | ||
| + | (n & 0xFFFF = 0x4D4D | ||
| + | " | ||
| + | ) | ||
| SafeArrayFromBuffer(buf) { | SafeArrayFromBuffer(buf) { | ||
| - | arr := ComObjArray(0x11, | + | arr := ComObjArray(0x11, |
| DllCall(" | DllCall(" | ||
| " | " | ||