From e9eba5a8923c90479993c6ffbf3652d17660c403 Mon Sep 17 00:00:00 2001 From: yusing Date: Mon, 15 Dec 2025 14:37:33 +0800 Subject: [PATCH] fix(favicon): enhance variant handling in GetFavIconFromAlias function - Added fallback logic to handle cases where the requested icon variant is unavailable. - If variant not provided, do not call WithVariant. --- internal/api/v1/favicon.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/internal/api/v1/favicon.go b/internal/api/v1/favicon.go index aa4a284b..325274cc 100644 --- a/internal/api/v1/favicon.go +++ b/internal/api/v1/favicon.go @@ -81,9 +81,14 @@ func GetFavIconFromAlias(ctx context.Context, alias string, variant homepage.Ico if hp.Icon != nil { if hp.Icon.IconSource == homepage.IconSourceRelative { result, err = homepage.FindIcon(ctx, r, *hp.Icon.FullURL) + } else if variant != homepage.IconVariantNone { + result, err = homepage.FetchFavIconFromURL(ctx, hp.Icon.WithVariant(variant)) + if err != nil { + // fallback to no variant + result, err = homepage.FetchFavIconFromURL(ctx, hp.Icon.WithVariant(homepage.IconVariantNone)) + } } else { - icon := hp.Icon.WithVariant(variant) - result, err = homepage.FetchFavIconFromURL(ctx, icon) + result, err = homepage.FetchFavIconFromURL(ctx, hp.Icon) } } else { // try extract from "link[rel=icon]"