summaryrefslogtreecommitdiff
path: root/app/api.go
diff options
context:
space:
mode:
authorlost+skunk <[email protected]>2024-09-02 11:16:54 +0300
committerlost+skunk <[email protected]>2024-09-02 11:16:54 +0300
commit14645842643c4e5fa542def715ac1629e182388c (patch)
tree80da1c9b891ce8b4f2393311f36f4530176366af /app/api.go
parent2f8c35ba322e3c8c6e0bff8f7818d4eedf002928 (diff)
downloadskunky-art-14645842643c4e5fa542def715ac1629e182388c.tar.gz
skunky-art-14645842643c4e5fa542def715ac1629e182388c.tar.bz2
skunky-art-14645842643c4e5fa542def715ac1629e182388c.zip
instance list update
Diffstat (limited to 'app/api.go')
-rw-r--r--app/api.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/app/api.go b/app/api.go
new file mode 100644
index 0000000..ddc67c1
--- /dev/null
+++ b/app/api.go
@@ -0,0 +1,34 @@
+package app
+
+import (
+ "math/rand"
+ "strings"
+
+ "git.macaw.me/skunky/devianter"
+)
+
+type API struct {
+ skunkyartLink *skunkyart
+}
+
+func (a API) sendMedia(d *devianter.Deviation) {
+ mediaUrl, name := devianter.UrlFromMedia(d.Media)
+
+ var filename strings.Builder
+ filename.WriteString(`filename="`)
+ filename.WriteString(name)
+ filename.WriteString(`"`)
+ a.skunkyartLink.Writer.Header().Add("Content-Disposition", filename.String())
+
+ if len(mediaUrl) != 0 {
+ mediaUrl = mediaUrl[21:]
+ dot := strings.Index(mediaUrl, ".")
+ a.skunkyartLink.DownloadAndSendMedia(mediaUrl[:dot], mediaUrl[dot+11:])
+ }
+}
+
+func (a API) Random() {
+ s, err := devianter.PerformSearch(string(rand.Intn(999)), rand.Intn(30), 'a')
+ try(err)
+ a.sendMedia(&s.Results[rand.Intn(len(s.Results))])
+}