diff --git a/kernel/api/system.go b/kernel/api/system.go index ca3d1d2ca..5908cebb0 100644 --- a/kernel/api/system.go +++ b/kernel/api/system.go @@ -22,7 +22,6 @@ import ( "os" "path/filepath" "strings" - "sync" "time" "github.com/88250/gulu" @@ -166,7 +165,7 @@ func getEmojiConf(c *gin.Context) { items := []map[string]interface{}{} custom["items"] = items if gulu.File.IsDir(customConfDir) { - model.CustomEmojis = sync.Map{} + model.ClearCustomEmojis() customEmojis, err := os.ReadDir(customConfDir) if err != nil { logging.LogErrorf("read custom emojis failed: %s", err) @@ -224,7 +223,7 @@ func addCustomEmoji(name string, items *[]map[string]interface{}) { *items = append(*items, emoji) imgSrc := "/emojis/" + name - model.CustomEmojis.Store(nameWithoutExt, imgSrc) + model.AddCustomEmoji(nameWithoutExt, imgSrc) } func checkUpdate(c *gin.Context) { diff --git a/kernel/model/conf.go b/kernel/model/conf.go index 9e40090a3..5b0eb9f64 100644 --- a/kernel/model/conf.go +++ b/kernel/model/conf.go @@ -691,7 +691,15 @@ func Close(force, setCurrentWorkspace bool, execInstallPkg int) (exitCode int) { return } -var CustomEmojis = sync.Map{} +var customEmojis = sync.Map{} + +func AddCustomEmoji(emojiName, imgSrc string) { + customEmojis.Store(emojiName, imgSrc) +} + +func ClearCustomEmojis() { + customEmojis.Clear() +} func NewLute() (ret *lute.Lute) { ret = util.NewLute() @@ -701,7 +709,7 @@ func NewLute() (ret *lute.Lute) { ret.SetSpellcheck(Conf.Editor.Spellcheck) customEmojiMap := map[string]string{} - CustomEmojis.Range(func(key, value interface{}) bool { + customEmojis.Range(func(key, value interface{}) bool { customEmojiMap[key.(string)] = value.(string) return true })