diff options
Diffstat (limited to 'filter/image_proxy_filter.go')
-rw-r--r-- | filter/image_proxy_filter.go | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/filter/image_proxy_filter.go b/filter/image_proxy_filter.go deleted file mode 100644 index 01ae591..0000000 --- a/filter/image_proxy_filter.go +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2017 Frédéric Guillot. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -package filter // import "miniflux.app/filter" - -import ( - "encoding/base64" - "strings" - - "miniflux.app/config" - "miniflux.app/http/route" - "miniflux.app/url" - - "github.com/PuerkitoBio/goquery" - "github.com/gorilla/mux" -) - -// ImageProxyFilter rewrites image tag URLs to local proxy URL (by default only non-HTTPS URLs) -func ImageProxyFilter(router *mux.Router, cfg *config.Config, data string) string { - proxyImages := cfg.ProxyImages() - if proxyImages == "none" { - return data - } - - doc, err := goquery.NewDocumentFromReader(strings.NewReader(data)) - if err != nil { - return data - } - - doc.Find("img").Each(func(i int, img *goquery.Selection) { - if srcAttr, ok := img.Attr("src"); ok { - if proxyImages == "all" || !url.IsHTTPS(srcAttr) { - img.SetAttr("src", Proxify(router, srcAttr)) - } - } - }) - - output, _ := doc.Find("body").First().Html() - return output -} - -// Proxify returns a proxified link. -func Proxify(router *mux.Router, link string) string { - // We use base64 url encoding to avoid slash in the URL. - return route.Path(router, "proxy", "encodedURL", base64.URLEncoding.EncodeToString([]byte(link))) -} |