diff options
author | 2023-02-25 09:36:19 +0100 | |
---|---|---|
committer | 2023-02-25 15:57:59 -0800 | |
commit | 2c2700a31d7349f67016a3786125597f9ee38c56 (patch) | |
tree | 9a9cef0c5d6a17946be70e709cf1d0349d05bc77 /api/entry.go | |
parent | 8f9ccc6540be9d637b812985936f064bada8fcf3 (diff) | |
download | v2-2c2700a31d7349f67016a3786125597f9ee38c56.tar.gz v2-2c2700a31d7349f67016a3786125597f9ee38c56.tar.zst v2-2c2700a31d7349f67016a3786125597f9ee38c56.zip |
Proxy support for several media types
closes #615
closes #635
Diffstat (limited to '')
-rw-r--r-- | api/entry.go | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/api/entry.go b/api/entry.go index e8d6c908..e64e867f 100644 --- a/api/entry.go +++ b/api/entry.go @@ -35,12 +35,17 @@ func (h *handler) getEntryFromBuilder(w http.ResponseWriter, r *http.Request, b return } - entry.Content = proxy.AbsoluteImageProxyRewriter(h.router, r.Host, entry.Content) - proxyImage := config.Opts.ProxyImages() + entry.Content = proxy.AbsoluteProxyRewriter(h.router, r.Host, entry.Content) + proxyOption := config.Opts.ProxyOption() for i := range entry.Enclosures { - if strings.HasPrefix(entry.Enclosures[i].MimeType, "image/") && (proxyImage == "all" || proxyImage != "none" && !url.IsHTTPS(entry.Enclosures[i].URL)) { - entry.Enclosures[i].URL = proxy.AbsoluteProxifyURL(h.router, r.Host, entry.Enclosures[i].URL) + if proxyOption == "all" || proxyOption != "none" && !url.IsHTTPS(entry.Enclosures[i].URL) { + for _, mediaType := range config.Opts.ProxyMediaTypes() { + if strings.HasPrefix(entry.Enclosures[i].MimeType, mediaType+"/") { + entry.Enclosures[i].URL = proxy.AbsoluteProxifyURL(h.router, r.Host, entry.Enclosures[i].URL) + break + } + } } } @@ -158,7 +163,7 @@ func (h *handler) findEntries(w http.ResponseWriter, r *http.Request, feedID int } for i := range entries { - entries[i].Content = proxy.AbsoluteImageProxyRewriter(h.router, r.Host, entries[i].Content) + entries[i].Content = proxy.AbsoluteProxyRewriter(h.router, r.Host, entries[i].Content) } json.OK(w, r, &entriesResponse{Total: count, Entries: entries}) |