This commit is contained in:
Daniel 2024-12-05 09:01:51 +08:00
parent c7746d1399
commit af434451e0
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
3 changed files with 21 additions and 2 deletions

View file

@ -548,7 +548,7 @@ func setFollowSystemLockScreen(c *gin.Context) {
func getSysFonts(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
ret.Data = util.GetSysFonts()
ret.Data = util.LoadSysFonts()
}
func version(c *gin.Context) {

View file

@ -48,6 +48,8 @@ func main() {
util.PushClearAllMsg()
job.StartCron()
go util.LoadSysFonts()
go model.AutoGenerateFileHistory()
go cache.LoadAssets()
go util.CheckFileSysStatus()

View file

@ -20,6 +20,8 @@ import (
"os"
"sort"
"strings"
"sync"
"time"
"github.com/88250/gulu"
"github.com/ConradIrwin/font/sfnt"
@ -30,7 +32,20 @@ import (
"golang.org/x/text/transform"
)
func GetSysFonts() (ret []string) {
var (
sysFonts []string
sysFontsLock = sync.Mutex{}
)
func LoadSysFonts() (ret []string) {
sysFontsLock.Lock()
defer sysFontsLock.Unlock()
if 0 < len(sysFonts) {
return sysFonts
}
start := time.Now()
fonts := loadFonts()
ret = []string{}
for _, font := range fonts {
@ -39,6 +54,8 @@ func GetSysFonts() (ret []string) {
ret = gulu.Str.RemoveDuplicatedElem(ret)
ret = removeUnusedFonts(ret)
sort.Strings(ret)
sysFonts = ret
logging.LogInfof("loaded system fonts [%d] in [%dms]", len(sysFonts), time.Since(start).Milliseconds())
return
}