File tree Expand file tree Collapse file tree 3 files changed +21
-2
lines changed Expand file tree Collapse file tree 3 files changed +21
-2
lines changed Original file line number Diff line number Diff line change @@ -548,7 +548,7 @@ func setFollowSystemLockScreen(c *gin.Context) {
548
548
func getSysFonts (c * gin.Context ) {
549
549
ret := gulu .Ret .NewResult ()
550
550
defer c .JSON (http .StatusOK , ret )
551
- ret .Data = util .GetSysFonts ()
551
+ ret .Data = util .LoadSysFonts ()
552
552
}
553
553
554
554
func version (c * gin.Context ) {
Original file line number Diff line number Diff line change @@ -48,6 +48,8 @@ func main() {
48
48
util .PushClearAllMsg ()
49
49
50
50
job .StartCron ()
51
+
52
+ go util .LoadSysFonts ()
51
53
go model .AutoGenerateFileHistory ()
52
54
go cache .LoadAssets ()
53
55
go util .CheckFileSysStatus ()
Original file line number Diff line number Diff line change @@ -20,6 +20,8 @@ import (
20
20
"os"
21
21
"sort"
22
22
"strings"
23
+ "sync"
24
+ "time"
23
25
24
26
"github.com/88250/gulu"
25
27
"github.com/ConradIrwin/font/sfnt"
@@ -30,7 +32,20 @@ import (
30
32
"golang.org/x/text/transform"
31
33
)
32
34
33
- func GetSysFonts () (ret []string ) {
35
+ var (
36
+ sysFonts []string
37
+ sysFontsLock = sync.Mutex {}
38
+ )
39
+
40
+ func LoadSysFonts () (ret []string ) {
41
+ sysFontsLock .Lock ()
42
+ defer sysFontsLock .Unlock ()
43
+
44
+ if 0 < len (sysFonts ) {
45
+ return sysFonts
46
+ }
47
+
48
+ start := time .Now ()
34
49
fonts := loadFonts ()
35
50
ret = []string {}
36
51
for _ , font := range fonts {
@@ -39,6 +54,8 @@ func GetSysFonts() (ret []string) {
39
54
ret = gulu .Str .RemoveDuplicatedElem (ret )
40
55
ret = removeUnusedFonts (ret )
41
56
sort .Strings (ret )
57
+ sysFonts = ret
58
+ logging .LogInfof ("loaded system fonts [%d] in [%dms]" , len (sysFonts ), time .Since (start ).Milliseconds ())
42
59
return
43
60
}
44
61
You can’t perform that action at this time.
0 commit comments