| 12345678910111213141516171819202122232425262728293031323334353637 |
- // Copyright 2020 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 proxy // import "miniflux.app/proxy"
- import (
- "encoding/base64"
- "net/url"
- "path"
- "miniflux.app/http/route"
- "github.com/gorilla/mux"
- "miniflux.app/config"
- )
- // ProxifyURL generates an URL for a proxified resource.
- func ProxifyURL(router *mux.Router, link string) string {
- if link != "" {
- proxyImageUrl := config.Opts.ProxyImageUrl()
- if proxyImageUrl == "" {
- return route.Path(router, "proxy", "encodedURL", base64.URLEncoding.EncodeToString([]byte(link)))
- }
- proxyUrl, err := url.Parse(proxyImageUrl)
- if err != nil {
- return ""
- }
- proxyUrl.Path = path.Join(proxyUrl.Path, base64.URLEncoding.EncodeToString([]byte(link)))
- return proxyUrl.String()
- }
- return ""
- }
|