From db53a8bd9004098e6a1507e5826a833fd9efa954 Mon Sep 17 00:00:00 2001 From: lost+skunk Date: Tue, 3 Sep 2024 15:36:19 +0300 Subject: Два API-эндпоинта MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/util.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'app/util.go') 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 -- cgit v1.2.3