fix favicon path and try dashboard icon first then fallback to html parsing

This commit is contained in:
yusing 2025-01-13 00:15:10 +08:00
parent 137b0820b0
commit 1abd1e257f

View file

@ -174,10 +174,14 @@ func findIcon(r route.HTTPRoute, req *http.Request, uri string) (icon []byte, st
return icon, http.StatusOK, "" return icon, http.StatusOK, ""
} }
icon, status, errMsg = findIconSlow(r, req, uri) icon, status, errMsg = getIconAbsolute(homepage.DashboardIconBaseURL + "png/" + sanitizeName(r.TargetName()) + ".png")
cont := r.RawEntry().Container
if icon == nil && cont != nil {
icon, status, errMsg = getIconAbsolute(homepage.DashboardIconBaseURL + "png/" + sanitizeName(cont.ImageName) + ".png")
}
if icon == nil { if icon == nil {
// fallback to dashboard icon // fallback to parse html
icon, status, errMsg = getIconAbsolute(homepage.DashboardIconBaseURL + "png/" + sanitizeName(r.TargetName()) + ".png") icon, status, errMsg = findIconSlow(r, req, uri)
} }
// set even if error (nil) // set even if error (nil)
storeIconCache(key, icon) storeIconCache(key, icon)
@ -190,6 +194,9 @@ func findIconSlow(r route.HTTPRoute, req *http.Request, uri string) (icon []byte
defer cancel() defer cancel()
newReq := req.WithContext(ctx) newReq := req.WithContext(ctx)
newReq.Header.Set("Accept-Encoding", "identity") // disable compression newReq.Header.Set("Accept-Encoding", "identity") // disable compression
if !strings.HasPrefix(uri, "/") {
uri = "/" + uri
}
u, err := url.ParseRequestURI(uri) u, err := url.ParseRequestURI(uri)
if err != nil { if err != nil {
logging.Error().Err(err). logging.Error().Err(err).