-
Notifications
You must be signed in to change notification settings - Fork 30
/
Copy pathenv.go
138 lines (134 loc) · 3.4 KB
/
env.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
package jd_cookie
import (
"fmt"
"regexp"
"strings"
"github.com/cdle/sillyGirl/core"
"github.com/cdle/sillyGirl/develop/qinglong"
)
func init() {
core.AddCommand("jd", []core.Function{
{
Rules: []string{`find ?`},
Admin: true,
Handle: func(s core.Sender) interface{} {
a := s.Get()
envs, err := qinglong.GetEnvs("JD_COOKIE")
if err != nil {
return err
}
if len(envs) == 0 {
return "青龙未设置变量。"
}
ncks := []qinglong.Env{}
if s := strings.Split(a, "-"); len(s) == 2 {
for i := range envs {
if i+1 >= core.Int(s[0]) && i+1 <= core.Int(s[1]) {
ncks = append(ncks, envs[i])
}
}
} else if x := regexp.MustCompile(`^[\s\d,]+$`).FindString(a); x != "" {
xx := regexp.MustCompile(`(\d+)`).FindAllStringSubmatch(a, -1)
for i := range envs {
for _, x := range xx {
if fmt.Sprint(i+1) == x[1] {
ncks = append(ncks, envs[i])
}
}
}
} else if a != "" {
a = strings.Replace(a, " ", "", -1)
for i := range envs {
if strings.Contains(envs[i].Value, a) || strings.Contains(envs[i].Remarks, a) || strings.Contains(envs[i].ID, a) {
ncks = append(ncks, envs[i])
}
}
}
if len(ncks) == 0 {
return "没有匹配的变量。"
}
msg := []string{}
for _, ck := range ncks {
status := "已启用"
if ck.Status != 0 {
status = "已禁用"
}
msg = append(msg, strings.Join([]string{
fmt.Sprintf("编号:%v", ck.ID),
fmt.Sprintf("备注:%v", ck.Remarks),
fmt.Sprintf("状态:%v", status),
fmt.Sprintf("pin值:%v", core.FetchCookieValue(ck.Value, "pt_pin")),
}, "\n"))
}
return strings.Join(msg, "\n\n")
},
},
{
Rules: []string{`exchange ? ?`},
Admin: true,
Handle: func(s core.Sender) interface{} {
ac1 := s.Get(0)
ac2 := s.Get(1)
envs, err := qinglong.GetEnvs("JD_COOKIE")
if err != nil {
return err
}
if len(envs) < 2 {
return "数目小于,无需交换顺序。"
}
toe := []qinglong.Env{}
for _, env := range envs {
if env.ID == ac1 || env.ID == ac2 {
toe = append(toe, env)
}
}
if len(toe) < 2 {
return "找不到对应的变量,无法交换顺序。"
}
toe[0].ID, toe[1].ID = toe[1].ID, toe[0].ID
if err := qinglong.Req(qinglong.PUT, qinglong.ENVS, toe[0]); err != nil {
return err
}
if err := qinglong.Req(qinglong.PUT, qinglong.ENVS, toe[1]); err != nil {
return err
}
return "交换成功"
},
},
{
Rules: []string{`enable ?`},
Admin: true,
Handle: func(s core.Sender) interface{} {
if err := qinglong.Req(qinglong.PUT, qinglong.ENVS, "/enable", []byte(`["`+s.Get()+`"]`)); err != nil {
return err
}
return "操作成功"
},
},
{
Rules: []string{`disable ?`},
Admin: true,
Handle: func(s core.Sender) interface{} {
if err := qinglong.Req(qinglong.PUT, qinglong.ENVS, "/disable", []byte(`["`+s.Get()+`"]`)); err != nil {
return err
}
return "操作成功"
},
},
{
Rules: []string{`remark ? ?`},
Admin: true,
Handle: func(s core.Sender) interface{} {
env, err := qinglong.GetEnv(s.Get())
if err != nil {
return err
}
env.Remarks = s.Get(1)
if err := qinglong.Req(qinglong.PUT, qinglong.ENVS, *env); err != nil {
return err
}
return "操作成功"
},
},
})
}