diff options
| author | lost+skunk <[email protected]> | 2024-09-03 15:36:19 +0300 |
|---|---|---|
| committer | lost+skunk <[email protected]> | 2024-09-03 15:36:19 +0300 |
| commit | db53a8bd9004098e6a1507e5826a833fd9efa954 (patch) | |
| tree | b5530d4f9af52a4fbc8b9d7bb7c89bdba8ace250 /app/util.go | |
| parent | 14645842643c4e5fa542def715ac1629e182388c (diff) | |
| download | skunky-art-db53a8bd9004098e6a1507e5826a833fd9efa954.tar.gz skunky-art-db53a8bd9004098e6a1507e5826a833fd9efa954.tar.bz2 skunky-art-db53a8bd9004098e6a1507e5826a833fd9efa954.zip | |
Два API-эндпоинта
Diffstat (limited to 'app/util.go')
| -rw-r--r-- | app/util.go | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/app/util.go b/app/util.go index 71e7d89..c992466 100644 --- a/app/util.go +++ b/app/util.go @@ -64,6 +64,7 @@ type skunkyart struct { Query, QueryRaw string API API + Version string Templates struct { About struct { @@ -131,7 +132,7 @@ func UrlBuilder(strs ...string) string { str.WriteString(CFG.URI) for n, x := range strs { str.WriteString(x) - if n+1 < l && !(strs[n+1][0] == '?' || strs[n+1][0] == '&') && !(x[0] == '?' || x[0] == '&') { + if n := n+1; n < l && len(strs[n]) != 0 && !(strs[n][0] == '?' || strs[n][0] == '&') && !(x[0] == '?' || x[0] == '&') { str.WriteString("/") } } @@ -153,6 +154,14 @@ func (s skunkyart) ReturnHTTPError(status int) { wr(s.Writer, msg.String()) } +func (s skunkyart) SetFilename(name string) { + var filename strings.Builder + filename.WriteString(`filename="`) + filename.WriteString(name) + filename.WriteString(`"`) + s.Writer.Header().Add("Content-Disposition", filename.String()) +} + type Downloaded struct { Headers http.Header Status int @@ -189,6 +198,9 @@ func ParseMedia(media devianter.Media, thumb ...int) string { if len(mediaUrl) != 0 && CFG.Proxy { mediaUrl = mediaUrl[21:] dot := strings.Index(mediaUrl, ".") + if filename == "" { + filename = "image.gif" + } return UrlBuilder("media", "file", mediaUrl[:dot], mediaUrl[dot+11:], "&filename=", filename) } return mediaUrl |
