This commit is contained in:
cdle
2023-06-28 13:35:04 +08:00
parent 3bdbb07ba3
commit bae0e14898
24 changed files with 354 additions and 322 deletions
+28
View File
@@ -11,6 +11,7 @@ import (
"time"
"github.com/cdle/sillyplus/utils"
"github.com/dop251/goja"
"github.com/gin-gonic/gin"
"github.com/goccy/go-json"
)
@@ -215,3 +216,30 @@ func parseReply(str string) string {
return MakeBucket(b_k[1]).GetString(b_k[2])
})
}
// 能处理字符:你好,我是${ user.name ?? 6 }
func parseReply2(str string) string {
re := regexp.MustCompile(`\$\{\s*([^{}]+)\s*\}`)
return re.ReplaceAllStringFunc(str, func(match string) string {
script := match[2 : len(match)-1]
script = regexp.MustCompile(`(\w+)\.(\w+)`).ReplaceAllStringFunc(script, func(match string) string {
parts := strings.Split(match, ".")
return fmt.Sprintf(`Bucket("%s")["%s"]`, parts[0], parts[1])
})
vm := goja.New()
vm.Set("Bucket", func(name string) interface{} {
return JsBucket(vm, name, "", false)
})
v, err := vm.RunString(script)
if err == nil {
return v.String()
}
return match
// b_k := strings.Split(bk, ".")
// if len(b_k) != 3 {
// return fmt.Sprintf("${%s}", bk)
// }
// return MakeBucket(b_k[1]).GetString(b_k[2])
// return ""
})
}