| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package core
- import (
- "encoding/json"
- "time"
- "github.com/cdle/sillyplus/utils"
- )
- type PMsg struct {
- Class string `json:"class"`
- Unix int `json:"unix"`
- Content string `json:"content"`
- Version string `json:"version"`
- }
- var plugin_messages = MakeBucket("plugin_messages")
- func WritePluginMessage(uuid string, class string, content string) {
- if uuid == "" {
- return
- }
- var version = ""
- f := GetFunctionByUUID(uuid)
- if f != nil {
- version = f.Version
- }
- var data = plugin_messages.GetBytes(uuid)
- pmsgs := []PMsg{}
- json.Unmarshal(data, &pmsgs)
- s := &Strings{}
- ok := false
- new := PMsg{
- Class: class,
- Unix: int(time.Now().Unix()),
- Content: content,
- Version: version,
- }
- for i := range pmsgs {
- if pmsgs[i].Class != class {
- continue
- }
- if content == "" {
- continue
- }
- if s.Similarity(pmsgs[i].Content, content) > 0.9 {
- pmsgs[i] = new
- ok = true
- break
- }
- }
- if !ok {
- pmsgs = append(pmsgs, new)
- }
- plugin_messages.Set(uuid, utils.JsonMarshal(pmsgs))
- }
- func GetPluginMessage(uuid string) []PMsg {
- var data = plugin_messages.GetBytes(uuid)
- pmsgs := []PMsg{}
- json.Unmarshal(data, &pmsgs)
- return pmsgs
- }
|