From e985e9db8b87b6e7fddefc32eb864184fcff894f Mon Sep 17 00:00:00 2001 From: cdle Date: Sat, 10 Jun 2023 15:24:36 +0800 Subject: [PATCH] x --- core/carry.go | 5 +++-- core/node_strings.go | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/core/carry.go b/core/carry.go index d3b7585..5f25d87 100644 --- a/core/carry.go +++ b/core/carry.go @@ -34,8 +34,9 @@ var carryCounter int64 func init() { AddCommand([]*common.Function{ { - Rules: []string{`raw [\s\S]+`}, - Hidden: true, + Rules: []string{`raw [\s\S]+`}, + Hidden: true, + Priority: 9999, Handle: func(s common.Sender, _ func(vm *goja.Runtime)) interface{} { var bot_id = s.GetBotID() var platform = s.GetImType() diff --git a/core/node_strings.go b/core/node_strings.go index 3fa6e9c..6778008 100644 --- a/core/node_strings.go +++ b/core/node_strings.go @@ -307,6 +307,49 @@ func (sender *Strings) Longest(args ...interface{}) string { longest = s.(string) } } + case [][]string: + for _, s := range v { + longest = sender.Longest(s) + } + case [][]interface{}: + for _, s := range v { + longest = sender.Longest(s) + } + + } + } + return longest +} + +func (sender *Strings) Shortest(args ...interface{}) string { + var longest string + for _, arg := range args { + switch v := arg.(type) { + case string: + if len(v) < len(longest) { + longest = v + } + case []string: + for _, s := range v { + if len(s) < len(longest) { + longest = s + } + } + case []interface{}: + for _, s := range v { + if len(s.(string)) < len(longest) { + longest = s.(string) + } + } + case [][]string: + for _, s := range v { + longest = sender.Shortest(s) + } + case [][]interface{}: + for _, s := range v { + longest = sender.Shortest(s) + } + } } return longest