From 4715598d7eb80d78eab8416fd2a3a75babba0b90 Mon Sep 17 00:00:00 2001 From: Gabe Kangas Date: Tue, 20 Jul 2021 10:34:59 -0700 Subject: [PATCH] Override default protocol if one is set in settings (#1226) * Default to http but use the protocol set in settings if available * Add missing instance of the protocol --- controllers/index.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/controllers/index.go b/controllers/index.go index e64ff79c5..bfc54fd0d 100644 --- a/controllers/index.go +++ b/controllers/index.go @@ -75,11 +75,19 @@ func IndexHandler(w http.ResponseWriter, r *http.Request) { func handleScraperMetadataPage(w http.ResponseWriter, r *http.Request) { tmpl := template.Must(template.ParseFiles(path.Join("static", "metadata.html"))) - fullURL, err := url.Parse(fmt.Sprintf("//%s%s", r.Host, r.URL.Path)) + scheme := "http" + + if siteUrl := data.GetServerURL(); siteUrl != "" { + if parsed, err := url.Parse(siteUrl); err == nil && parsed.Scheme != "" { + scheme = parsed.Scheme + } + } + + fullURL, err := url.Parse(fmt.Sprintf("%s://%s%s", scheme, r.Host, r.URL.Path)) if err != nil { log.Panicln(err) } - imageURL, err := url.Parse(fmt.Sprintf("//%s%s", r.Host, "/logo")) + imageURL, err := url.Parse(fmt.Sprintf("%s://%s%s", scheme, r.Host, "/logo")) if err != nil { log.Panicln(err) } @@ -89,7 +97,7 @@ func handleScraperMetadataPage(w http.ResponseWriter, r *http.Request) { // If the thumbnail does not exist or we're offline then just use the logo image var thumbnailURL string if status.Online && utils.DoesFileExists(filepath.Join(config.WebRoot, "thumbnail.jpg")) { - thumbnail, err := url.Parse(fmt.Sprintf("//%s%s", r.Host, "/thumbnail.jpg")) + thumbnail, err := url.Parse(fmt.Sprintf("%s//%s%s", scheme, r.Host, "/thumbnail.jpg")) if err != nil { log.Errorln(err) thumbnailURL = imageURL.String()