-
Notifications
You must be signed in to change notification settings - Fork 2
/
MaiARK登录6.20.2.js
213 lines (171 loc) · 6.42 KB
/
MaiARK登录6.20.2.js
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
// [rule: 登录 ] 有问题tg频道留言 https://t.me/silly_MaiArk
// [rule: 登陆 ] 作者QQ1483081359 转载请保留版权 github仓库:zhacha222/sillyGirljs
// [priority:924703993] 优先权重 为了屏蔽内置ark
// [disable: false] 是否禁用
// [admin: false] 是否只允许管理员使用
/*注意事项:
1.傻妞和MaiARK都要对接青龙
2.傻妞可以对接多个青龙,但是要设置一个聚合容器
3.MaiARK只需要对接 傻妞聚合的那个青龙就行了
可以实现直接登录查询,不需要再复制ck发送给机器人,和对接Nolan的效果一样
*更新日志:
6.6更新 适配QQ,微信,TG,微信公众号 全平台登录
6.7更新 修复部分人GetImType()报错,修复登录时显示获取超时但实际上有收到短信的bug
6.9更新 新增 登录后更新查询数据中的【登录时长】,修复部分人登录立即查询提示过期的现象
6.12更新 增加手机号初步筛选,防止叼毛钓鱼使MaiARK频繁请求导致黑ip
6.18更新 修改手机号初步筛选的逻辑bug
6.19更新 新增 超时重连(默认5次),增加验证码格式验证
6.20 修复微信登录过程中撤回手机号报错的bug(仅测试vlw框架的) 彻底解决session报错的问题
*/
var addr = "http://jd7.994938.xyz:8082"
//这修改成自己MaiARK的ip地址和端口
//最后面不要带“/” ,不然会出错!
//只要修改这一处就行了,其他不懂就不要乱改!!!
var user = GetUserID()
sendText("MaiARK为你服务,请输入11位手机号:(输入“q”随时退出会话。)");
var num = input(60000)
function main() {
if (!num.match(/^[1][3,4,5,6.7,8,9][0-9]{9}$/)) {
for (var i = 0; i < 4; i++) {
//错误4次直接退出
if(!num || num == "q" || num == "Q"){
sendText("已退出会话。")
return;
}
if(num.match(/^[1][3,4,5,6.7,8,9][0-9]{9}$/)){
sendText("正在获取登录验证码,请耐心等待...")
return getcode()
}
else{
sendText("请输入正确的手机号:")
num = input(60000)
//默认等待20s,不够自己改
}
}
sendText("输入错误次数过多,已退出。")
return;
}
else{
sendText("正在获取登录验证码,请耐心等待...")
getcode()
}
}
function getcode() {
var result = request({
url: addr +"/getsms?mobile=" + num,
"dataType": "json"
})
if (!result) {
sendText("获取验证码超时,请尝试重新登录,或检查MaiARK配置!");
//如果这里登录时返回这个内容,请检查自己的MaiARK是否正常
return;
}
if (result.code == 0) {
sendText("请输入短信验证码:")
LoginJD(result);
} else {
sendText(result.msg)
return;
}
}
function LoginJD(result) {
var gsalt = result.gsalt
var guid = result.guid
var lsid = result.lsid
var i = 0
code = input(30000)
while (!code.match(/^[0-9]{6}$/)) {
i++
if (i > 2) return sendText("输入错误次数过多,已退出。")
if (!code || code == "q" || code == "Q") return sendText("已退出会话。")
if (code.match(/(.*)revoked_msg(.*)$/)) {code = input(30000)}
if (!code.match(/^[0-9]{6}$/)) {
sendText("请输入正确格式的验证码:")
code = input(30000)
}
}
var result1 = request({
url: addr +"/verify?mobile="+num +"&gsalt=" + gsalt+"&guid="+guid+"&lsid="+lsid+"&smscode="+code,
"dataType": "json"
})
while (!result1) {
i++
if (i > 4) return sendText("登录超时,请重新申请登录。")
if (!result1) {
sendText("正在尝试第" + i + "次重登...")
result1 = request({
url: addr +"/verify?mobile="+num +"&gsalt=" + gsalt+"&guid="+guid+"&lsid="+lsid+"&smscode="+code,
"dataType": "json"
})
}
}
while (result1.msg == "验证码输入错误") {
i++
if (i > 5) return sendText("输入错误次数过多,已退出。")
if (result1.msg == "验证码输入错误") {
sendText("验证码错误,请重新输入:")
code = input(30000)
result1 = request({
url: addr +"/verify?mobile="+num +"&gsalt=" + gsalt+"&guid="+guid+"&lsid="+lsid+"&smscode="+code,
"dataType": "json"
})
}
if (!code || code == "q" || code == "Q") return sendText("已退出会话。")
if (!code.match(/^[0-9]{6}$/)) return sendText("验证码格式错误,已退出会话。")
if (!result1) return sendText("登录信息已过期,请重新登录。")
}
if (result1.msg == "验证码已过期,请重新获取") {
sendText("验证码已过期,请重新登录!(如多次报错此消息,请检查MaiARK配置)");
return;
}
if (result1.msg == "操作过于频繁,请24小时后再试,或先使用其他方式登录") {
sendText("操作过于频繁,请24小时后再试,或换使用其他方式登录!");
return;
}
if (result1.msg == "您的账号存在安全风险,请使用其他方式登录") {
sendText("您的账号存在安全风险,请手动登录一次京东app以解除风险!");
return;
}
if (result1.ck != undefined) {
postck(result1)
}else {
sendText(result1.msg + ",请重新登录!");
return;
}
}
function postck(result1) {
var rule = /[^;]+;pt_pin=(.*);$/
var ck = result1.ck
var ckpin = rule.exec(ck)
var jj = ckpin[1]
var pin = encodeURI(jj)
try
{
sillyGirl.session(ck)
}
catch (e)
{
sillyGirl.Session(ck)
}
if (ImType() == "qq" ) {
bucketSet('pinQQ', pin, user)
sendText("上车成功。")
return;
}
if (ImType() == "wx" ) {
bucketSet('pinWX', pin, user)
sendText("登录成功。查询发送 查询")
return;
}
if (ImType() == "wxmp" ) {
bucketSet('pinWXMP', pin, user)
sendText("上车成功。")
return;
}
else if (ImType() == "tg" ) {
bucketSet('pinTG', pin, user)
sendText("上车成功。")
return;
}
}
main()