package config import "strings" type SafeBrandingConfig struct { SiteIconURL string `json:"siteIconUrl"` DeveloperAvatarURL string `json:"developerAvatarUrl"` DeveloperName string `json:"developerName"` FeedbackEmail string `json:"feedbackEmail"` } func SafeBranding(cfg BrandingConfig) SafeBrandingConfig { return SafeBrandingConfig{ SiteIconURL: strings.TrimSpace(cfg.SiteIconURL), DeveloperAvatarURL: strings.TrimSpace(cfg.DeveloperAvatarURL), DeveloperName: strings.TrimSpace(firstNonEmpty(cfg.DeveloperName, "YMhut")), FeedbackEmail: strings.TrimSpace(firstNonEmpty(cfg.FeedbackEmail, "support@ymhut.cn")), } } func NormalizeBranding(current BrandingConfig, incoming BrandingConfig) BrandingConfig { next := current if value := strings.TrimSpace(incoming.SiteIconURL); value != "" { next.SiteIconURL = value } if value := strings.TrimSpace(incoming.DeveloperAvatarURL); value != "" { next.DeveloperAvatarURL = value } if value := strings.TrimSpace(incoming.DeveloperName); value != "" { next.DeveloperName = value } if value := strings.TrimSpace(incoming.FeedbackEmail); value != "" { next.FeedbackEmail = value } if next.SiteIconURL == "" { next.SiteIconURL = "https://img.ymhut.cn/file/1782108850041_icon.webp" } if next.DeveloperAvatarURL == "" { next.DeveloperAvatarURL = "https://img.ymhut.cn/file/1782108780690_b_3db45f3787f19192c8de8e06bc0987ef.webp" } if next.DeveloperName == "" { next.DeveloperName = "YMhut" } if next.FeedbackEmail == "" { next.FeedbackEmail = "support@ymhut.cn" } return next }