x
This commit is contained in:
+3
-2
@@ -31,6 +31,7 @@ func init() {
|
|||||||
ar := strings.Split(bk, ".")
|
ar := strings.Split(bk, ".")
|
||||||
if len(ar) == 2 {
|
if len(ar) == 2 {
|
||||||
if ar[0] == "plugins" && false { //todo
|
if ar[0] == "plugins" && false { //todo
|
||||||
|
|
||||||
// data[bk] = halfDeEct(MakeBucket(ar[0]).GetString(ar[1]))
|
// data[bk] = halfDeEct(MakeBucket(ar[0]).GetString(ar[1]))
|
||||||
} else {
|
} else {
|
||||||
// data[bk] = MakeBucket(ar[0]).GetString(ar[1])
|
// data[bk] = MakeBucket(ar[0]).GetString(ar[1])
|
||||||
@@ -133,8 +134,8 @@ func init() {
|
|||||||
for _, bk := range arr {
|
for _, bk := range arr {
|
||||||
ar := strings.Split(bk, ".")
|
ar := strings.Split(bk, ".")
|
||||||
if len(ar) == 2 {
|
if len(ar) == 2 {
|
||||||
if ar[0] == "plugins" && false { //todo
|
if ar[0] == "plugins" && IsCdle { //todo
|
||||||
data[bk] = halfDeEct(MakeBucket(ar[0]).GetString(ar[1]))
|
data[bk] = DecryptPlugin(halfDeEct(MakeBucket(ar[0]).GetString(ar[1])))
|
||||||
} else {
|
} else {
|
||||||
data[bk] = TransformBucketKeyValue(MakeBucket(ar[0]).GetString(ar[1]))
|
data[bk] = TransformBucketKeyValue(MakeBucket(ar[0]).GetString(ar[1]))
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -376,7 +376,7 @@ func AddCommand(cmds []*common.Function) {
|
|||||||
}
|
}
|
||||||
fmtRule(cmds[j])
|
fmtRule(cmds[j])
|
||||||
{
|
{
|
||||||
if !cmds[j].Disable && !cmds[j].Module && !cmds[j].OnStart {
|
if !cmds[j].Disable && !cmds[j].Module {
|
||||||
for plt, Cron := range cmds[j].Cron {
|
for plt, Cron := range cmds[j].Cron {
|
||||||
plt := plt
|
plt := plt
|
||||||
cron := strings.TrimSpace(Cron)
|
cron := strings.TrimSpace(Cron)
|
||||||
@@ -585,7 +585,7 @@ func HandleMessage(sender common.Sender) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, function := range Functions {
|
for _, function := range Functions {
|
||||||
if function.Disable || function.Module || function.OnStart {
|
if function.Disable || function.Module {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
imType := sender.GetImType()
|
imType := sender.GetImType()
|
||||||
|
|||||||
@@ -18,6 +18,81 @@ import (
|
|||||||
type Strings struct {
|
type Strings struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (sender *Strings) Diff(a, b []interface{}) []interface{} {
|
||||||
|
m := make(map[interface{}]bool)
|
||||||
|
c := make([]interface{}, 0)
|
||||||
|
for _, v := range b {
|
||||||
|
m[v] = true
|
||||||
|
}
|
||||||
|
for _, v := range a {
|
||||||
|
if !m[v] {
|
||||||
|
c = append(c, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
// 寻找所有共同拥有的连续最长字符串
|
||||||
|
func (sender *Strings) Intersects(sa, sb string) []string {
|
||||||
|
var common []string
|
||||||
|
for i := 0; i < len(sa); i++ {
|
||||||
|
for j := i + 1; j <= len(sa); j++ {
|
||||||
|
substr := sa[i:j]
|
||||||
|
if len(substr) > 0 && strings.Contains(sb, substr) && !Contains(common, substr) {
|
||||||
|
common = append(common, substr)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return common
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sender *Strings) Intersect(a, b interface{}) interface{} {
|
||||||
|
// 判断是否为字符串类型
|
||||||
|
if sa, ok := a.(string); ok {
|
||||||
|
if sb, ok := b.(string); ok {
|
||||||
|
// 如果是字符串类型,则寻找共同拥有的最长字符串
|
||||||
|
var longest string
|
||||||
|
for i := 0; i < len(sa); i++ {
|
||||||
|
for j := i + 1; j <= len(sa); j++ {
|
||||||
|
substr := sa[i:j]
|
||||||
|
if strings.Contains(sb, substr) && len(substr) > len(longest) {
|
||||||
|
longest = substr
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return longest
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 否则,使用普通的交集算法
|
||||||
|
m := make(map[interface{}]bool)
|
||||||
|
c := make([]interface{}, 0)
|
||||||
|
for _, v := range a.([]interface{}) {
|
||||||
|
m[v] = true
|
||||||
|
}
|
||||||
|
for _, v := range b.([]interface{}) {
|
||||||
|
if m[v] {
|
||||||
|
c = append(c, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sender *Strings) Union(a, b []interface{}) []interface{} {
|
||||||
|
m := make(map[interface{}]bool)
|
||||||
|
c := make([]interface{}, 0)
|
||||||
|
for _, v := range a {
|
||||||
|
m[v] = true
|
||||||
|
c = append(c, v)
|
||||||
|
}
|
||||||
|
for _, v := range b {
|
||||||
|
if !m[v] {
|
||||||
|
c = append(c, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
func (sender *Strings) Random(length int, substr string) string {
|
func (sender *Strings) Random(length int, substr string) string {
|
||||||
ws := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
ws := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||||
if substr != "" {
|
if substr != "" {
|
||||||
|
|||||||
@@ -473,12 +473,17 @@ type TimeJsImpl struct {
|
|||||||
Minute time.Duration
|
Minute time.Duration
|
||||||
Hour time.Duration
|
Hour time.Duration
|
||||||
Day time.Duration
|
Day time.Duration
|
||||||
|
Month int
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *TimeJsImpl) Now() time.Time {
|
func (t *TimeJsImpl) Now() time.Time {
|
||||||
return time.Now()
|
return time.Now()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *TimeJsImpl) Date(year int, month int, day int, hour int, min int, sec int, nsec int) time.Time {
|
||||||
|
return time.Date(year, time.Month(month), day, hour, min, sec, nsec, loc)
|
||||||
|
}
|
||||||
|
|
||||||
func (t *TimeJsImpl) Sleep(i int) {
|
func (t *TimeJsImpl) Sleep(i int) {
|
||||||
time.Sleep(time.Duration(i) * time.Millisecond)
|
time.Sleep(time.Duration(i) * time.Millisecond)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ type RequestPluginResult struct {
|
|||||||
|
|
||||||
var plugin_list = []*common.Function{}
|
var plugin_list = []*common.Function{}
|
||||||
|
|
||||||
var cdle_sublink = "link://T4EywWN46ztYBhHNdOl6TjL4plwqQWRUoqr8w0KFmMqAdblZX3/xtrZARf3VKKQmH6iQNfyWvB2bqf6P1n/CMh1KLHLbTvUzh9zBQS2u9GeYwAp0APEZvQV1O6pb5g9V/dd6TLH54ssD92DAuMa1xw=="
|
var cdle_sublink = "link://T4EywWN46ztYBhHNdOl6Tpz8QQsCZGj8JvdRJ5QKatJm0P+mI/G3ruO7AC04guqqKKa29VOvTGR7ATUJGYayRBpG2RFq+6ZPK3vcu6KCDGvRE3S43Gj42EXfvs04M6s4"
|
||||||
|
|
||||||
func initPluginList() {
|
func initPluginList() {
|
||||||
list := []*common.Function{}
|
list := []*common.Function{}
|
||||||
|
|||||||
@@ -351,6 +351,7 @@ func SetPluginMethod(vm *goja.Runtime, uuid string, on_start bool, running func(
|
|||||||
Minute: time.Minute,
|
Minute: time.Minute,
|
||||||
Hour: time.Hour,
|
Hour: time.Hour,
|
||||||
Day: time.Hour * 24,
|
Day: time.Hour * 24,
|
||||||
|
Month: 1,
|
||||||
})
|
})
|
||||||
vm.Set("Regexp", Regexp)
|
vm.Set("Regexp", Regexp)
|
||||||
vm.Set("Form", func(...interface{}) {
|
vm.Set("Form", func(...interface{}) {
|
||||||
|
|||||||
+5
-1
@@ -107,7 +107,7 @@ func (cl *Collection) Find(filter interface{}, params map[string]interface{}) in
|
|||||||
}
|
}
|
||||||
if _, ok := params["count"]; ok {
|
if _, ok := params["count"]; ok {
|
||||||
count = true
|
count = true
|
||||||
} else {
|
}
|
||||||
if v, ok := params["skip"]; ok {
|
if v, ok := params["skip"]; ok {
|
||||||
opt := options.Find()
|
opt := options.Find()
|
||||||
opt.SetSkip(utils.Int64(v))
|
opt.SetSkip(utils.Int64(v))
|
||||||
@@ -118,6 +118,10 @@ func (cl *Collection) Find(filter interface{}, params map[string]interface{}) in
|
|||||||
opt.SetLimit(utils.Int64(v))
|
opt.SetLimit(utils.Int64(v))
|
||||||
opts = append(opts, opt)
|
opts = append(opts, opt)
|
||||||
}
|
}
|
||||||
|
if v, ok := params["projection"]; ok {
|
||||||
|
opt := options.Find()
|
||||||
|
opt.SetProjection(v)
|
||||||
|
opts = append(opts, opt)
|
||||||
}
|
}
|
||||||
// opts.SetSkip((pageNumber - 1) * pageSize)
|
// opts.SetSkip((pageNumber - 1) * pageSize)
|
||||||
// opts.SetLimit(pageSize)
|
// opts.SetLimit(pageSize)
|
||||||
|
|||||||
Reference in New Issue
Block a user