From 6da078d61690816643f082b2230c0842660bbf4c Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 5 Jan 2022 14:00:32 +0800 Subject: [PATCH] slight optimization for default avatar (#18187) * slight optimization * Update comment Co-authored-by: 6543 <6543@obermui.de> --- models/avatars/avatar.go | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/models/avatars/avatar.go b/models/avatars/avatar.go index 7206a8ae905..6107856adee 100644 --- a/models/avatars/avatar.go +++ b/models/avatars/avatar.go @@ -10,6 +10,7 @@ import ( "path" "strconv" "strings" + "sync" "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/modules/base" @@ -31,16 +32,24 @@ func init() { db.RegisterModel(new(EmailHash)) } +var ( + defaultAvatarLink string + once sync.Once +) + // DefaultAvatarLink the default avatar link func DefaultAvatarLink() string { - u, err := url.Parse(setting.AppSubURL) - if err != nil { - log.Error("GetUserByEmail: %v", err) - return "" - } + once.Do(func() { + u, err := url.Parse(setting.AppSubURL) + if err != nil { + log.Error("Can not parse AppSubURL: %v", err) + return + } - u.Path = path.Join(u.Path, "/assets/img/avatar_default.png") - return u.String() + u.Path = path.Join(u.Path, "/assets/img/avatar_default.png") + defaultAvatarLink = u.String() + }) + return defaultAvatarLink } // HashEmail hashes email address to MD5 string. https://en.gravatar.com/site/implement/hash/