-
Notifications
You must be signed in to change notification settings - Fork 0
/
entry.ix
42 lines (38 loc) · 1.3 KB
/
entry.ix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
(import "phunanon/dotenv")
(var [bot-token channel-sf num-comic hours comics-path n-path]
(-> (dotenv) (juxt :discord-bot-token :channel-sf :interval-hours :count :comics-path :n-path))
num-comic (to-num num-comic)
rn (str (char-code 13) (char-code 10)))
(function form-data n
(let num (str n))
(print-str "Image " n ": ")
(let data (read-blob (str comics-path '/' num '.jpg')))
(print "sending " (blob-len data) "B")
(blob '--boundary' rn
'Content-Disposition: form-data; name="payload_json"' rn
'Content-Type: application/json' rn
rn
'{
"content": "Comic #' num '",
"embeds": [{
"description": "I\'m a bot written in Insitux to post Vegansidekick comics."
}],
"attachments": [{
"id": 0,
"description": "Vegansidekick comic",
"filename": "' num '.jpg"
}]
}' rn
'--boundary' rn
'Content-Disposition: form-data; name="files[0]"; filename="' num '.jpg"' rn
'Content-Type: image/jpg' rn rn data rn '--boundary--'))
(function tick
(let n (-> n-path read to-num))
(POST
(str "https://discord.com/api/v10/channels/" channel-sf "/messages")
(form-data n)
{"Authorization" (str "Bot " bot-token), "Content-Type" "multipart/form-data; boundary=boundary"}
print)
(write n-path (str ((>= n num-comic) 0 (inc n)))))
(set-interval tick (* 60,000 60 hours))
(tick)