diff options
| author | lost+skunk <[email protected]> | 2024-09-23 09:38:32 +0300 |
|---|---|---|
| committer | lost+skunk <[email protected]> | 2024-09-23 09:38:32 +0300 |
| commit | 191984b31ef228c4077904a2831a2af593352670 (patch) | |
| tree | 33d8dd464d525ce2ad8c92a749436f1c12442800 /app/api.go | |
| parent | c39399403e031a8c1ad53969770e4261d2c9e7aa (diff) | |
| download | skunky-art-191984b31ef228c4077904a2831a2af593352670.tar.gz skunky-art-191984b31ef228c4077904a2831a2af593352670.tar.bz2 skunky-art-191984b31ef228c4077904a2831a2af593352670.zip | |
v1.3.2v1.3.2
Diffstat (limited to 'app/api.go')
| -rw-r--r-- | app/api.go | 91 |
1 files changed, 45 insertions, 46 deletions
@@ -9,69 +9,68 @@ import ( ) type API struct { - main *skunkyart + main *skunkyart } type info struct { - Version string `json:"version"` - Settings settingsParams `json:"settings"` + Version string `json:"version"` + Settings settingsParams `json:"settings"` } func (a API) Info() { - json, err := json.Marshal(info{ - Version: a.main.Version, - Settings: settingsParams{ - Nsfw: CFG.Nsfw, - Proxy: CFG.Proxy, - }, - }) - try(err) - a.main.Writer.Write(json) - return + json, err := json.Marshal(info{ + Version: a.main.Version, + Settings: settingsParams{ + Nsfw: CFG.Nsfw, + Proxy: CFG.Proxy, + }, + }) + try(err) + a.main.Writer.Write(json) } func (a API) Error(description string, status int) { - a.main.Writer.WriteHeader(status) - var response strings.Builder - response.WriteString(`{"error":"`) - response.WriteString(description) - response.WriteString(`"}`) - wr(a.main.Writer, response.String()) + a.main.Writer.WriteHeader(status) + var response strings.Builder + response.WriteString(`{"error":"`) + response.WriteString(description) + response.WriteString(`"}`) + wr(a.main.Writer, response.String()) } func (a API) sendMedia(d *devianter.Deviation) { - mediaUrl, name := devianter.UrlFromMedia(d.Media) + mediaUrl, name := devianter.UrlFromMedia(d.Media) a.main.SetFilename(name) - - if len(mediaUrl) != 0 { - mediaUrl = mediaUrl[21:] + + if len(mediaUrl) != 0 { + mediaUrl = mediaUrl[21:] dot := strings.Index(mediaUrl, ".") a.main.Writer.Header().Del("Content-Type") - a.main.DownloadAndSendMedia(mediaUrl[:dot], mediaUrl[dot+11:]) - } + a.main.DownloadAndSendMedia(mediaUrl[:dot], mediaUrl[dot+11:]) + } } // TODO: сделать фильтры func (a API) Random() { - for attempt := 1;; { - if attempt > 3 { - a.Error("Sorry, butt NSFW on this are disabled, and the instance failed to find a random art without NSFW", 500) - } - - s, err, daErr := devianter.PerformSearch(string(rand.Intn(999)), rand.Intn(30), 'a') - try(err) - if daErr.RAW != nil { - continue - } - - deviation := &s.Results[rand.Intn(len(s.Results))] - - if deviation.NSFW && !CFG.Nsfw { - attempt++ - continue - } - - a.sendMedia(deviation) - return - } + for attempt := 1; ; { + if attempt > 3 { + a.Error("Sorry, butt NSFW on this are disabled, and the instance failed to find a random art without NSFW", 500) + } + + s, err, daErr := devianter.PerformSearch(string(rand.Intn(999)), rand.Intn(30), 'a') + try(err) + if daErr.RAW != nil { + continue + } + + deviation := &s.Results[rand.Intn(len(s.Results))] + + if deviation.NSFW && !CFG.Nsfw { + attempt++ + continue + } + + a.sendMedia(deviation) + return + } } |
