1
0
mirror of https://github.com/fumiama/go-onebot-agent.git synced 2026-06-05 02:00:23 +08:00
Files
go-onebot-agent/memory.go
2026-01-03 21:44:26 +08:00

46 lines
832 B
Go

package goba
import (
"errors"
"strings"
zero "github.com/wdvxdr1123/ZeroBot"
)
var (
errEmptyMemory = errors.New("empty memory")
errMemoryHasReturn = errors.New("memory has \\r|\\n")
)
// MemoryStorage can be a db or just some files
type MemoryStorage interface {
Save(grp int64, text string) error
Load(grp int64) []string
}
func extractMemory(r *zero.APIRequest) (string, error) {
txt, ok := r.Params["text"].(string)
if !ok || txt == "" {
return "", errEmptyMemory
}
for _, c := range txt {
if c == '\r' || c == '\n' {
return "", errMemoryHasReturn
}
}
return txt, nil
}
func (ag *Agent) memoryof(grp int64) string {
mems := ag.mem.Load(grp)
if len(mems) == 0 {
return ""
}
sb := strings.Builder{}
for _, m := range mems {
sb.WriteByte('\n')
sb.WriteString(m)
}
return sb.String()
}