Jelajahi Sumber

Minor simplification of internal/proxy/proxy.go

- re-use ProxifiedUrl to implement AbsoluteProxifyURL, reducing the copy-pasta
- reduce the internal indentation of ProxifiedUrl by inverting some conditions
jvoisin 2 tahun lalu
induk
melakukan
66b8483791
1 mengubah file dengan 16 tambahan dan 33 penghapusan
  1. 16 33
      internal/proxy/proxy.go

+ 16 - 33
internal/proxy/proxy.go

@@ -19,51 +19,34 @@ import (
 
 
 // ProxifyURL generates a relative URL for a proxified resource.
 // ProxifyURL generates a relative URL for a proxified resource.
 func ProxifyURL(router *mux.Router, link string) string {
 func ProxifyURL(router *mux.Router, link string) string {
-	if link != "" {
-		proxyImageUrl := config.Opts.ProxyUrl()
-
-		if proxyImageUrl == "" {
-			mac := hmac.New(sha256.New, config.Opts.ProxyPrivateKey())
-			mac.Write([]byte(link))
-			digest := mac.Sum(nil)
-			return route.Path(router, "proxy", "encodedDigest", base64.URLEncoding.EncodeToString(digest), "encodedURL", base64.URLEncoding.EncodeToString([]byte(link)))
-		}
+	if link == "" {
+		return ""
+	}
 
 
+	if proxyImageUrl := config.Opts.ProxyUrl(); proxyImageUrl != "" {
 		proxyUrl, err := url.Parse(proxyImageUrl)
 		proxyUrl, err := url.Parse(proxyImageUrl)
 		if err != nil {
 		if err != nil {
 			return ""
 			return ""
 		}
 		}
-
 		proxyUrl.Path = path.Join(proxyUrl.Path, base64.URLEncoding.EncodeToString([]byte(link)))
 		proxyUrl.Path = path.Join(proxyUrl.Path, base64.URLEncoding.EncodeToString([]byte(link)))
 		return proxyUrl.String()
 		return proxyUrl.String()
 	}
 	}
-	return ""
+
+	mac := hmac.New(sha256.New, config.Opts.ProxyPrivateKey())
+	mac.Write([]byte(link))
+	digest := mac.Sum(nil)
+	return route.Path(router, "proxy", "encodedDigest", base64.URLEncoding.EncodeToString(digest), "encodedURL", base64.URLEncoding.EncodeToString([]byte(link)))
 }
 }
 
 
 // AbsoluteProxifyURL generates an absolute URL for a proxified resource.
 // AbsoluteProxifyURL generates an absolute URL for a proxified resource.
 func AbsoluteProxifyURL(router *mux.Router, host, link string) string {
 func AbsoluteProxifyURL(router *mux.Router, host, link string) string {
-	if link != "" {
-		proxyImageUrl := config.Opts.ProxyUrl()
-
-		if proxyImageUrl == "" {
-			mac := hmac.New(sha256.New, config.Opts.ProxyPrivateKey())
-			mac.Write([]byte(link))
-			digest := mac.Sum(nil)
-			path := route.Path(router, "proxy", "encodedDigest", base64.URLEncoding.EncodeToString(digest), "encodedURL", base64.URLEncoding.EncodeToString([]byte(link)))
-			if config.Opts.HTTPS {
-				return "https://" + host + path
-			} else {
-				return "http://" + host + path
-			}
-		}
+	proxifiedUrl := ProxifyURL(router, link)
 
 
-		proxyUrl, err := url.Parse(proxyImageUrl)
-		if err != nil {
-			return ""
-		}
-
-		proxyUrl.Path = path.Join(proxyUrl.Path, base64.URLEncoding.EncodeToString([]byte(link)))
-		return proxyUrl.String()
+	if config.Opts.ProxyUrl() == "" {
+		return proxifiedUrl
+	}
+	if config.Opts.HTTPS {
+		return "https://" + host + proxifiedUrl
 	}
 	}
-	return ""
+	return "http://" + host + proxifiedUrl
 }
 }