Files
qinglong/脚本库/web版/账密/50-雅迪星球/2023-09-20_ydqx_15686835.js
2026-05-24 05:33:05 +00:00

1028 lines
39 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// # Source: https://github.com/xfmeng970526/ql/blob/main/ydqx.js
// # Raw: https://raw.githubusercontent.com/xfmeng970526/ql/main/ydqx.js
// # Repo: xfmeng970526/ql
// # Path: ydqx.js
// # UploadedAt: 2023-09-20T12:13:28+08:00
// # SHA256: 1568683594a57200d9adbb1b988479b7f574cf8539c9bc50e2e17811cdb1d334
// # Category: web版/账密
// # Evidence: web/H5关键词 + username/password/login
//
/*
地址http://nm6.xyz/ydxq.png 微信复制打开扫码进入
抓域名oneid.op.yadea.com.cn
查看请求文本username=XXXXXXX 只需要XXXXXXXX
变量
export ydxqhd='XXXXXXXXX'
可撸E卡
多号@或换行
cron: 3 9,14 * * *
new Env('50-雅迪星球');
项目名称:雅迪星球
============================================
圈X
重写
[MITM]
hostname = oneid.op.yadea.com.cn
[rewrite_local]
https://oneid.op.yadea.com.cn/auth/realms/vfly-front-master-realm/oauth/getUsertoken url script-request-body http://nm6.xyz:20080/ningmeng/ningmeng/raw/commit/95c63002bebcac27156dc7e89f022b7e7506e12a/ydqx.js
[task_local]
0 0 * * * http://nm6.xyz:20080/ningmeng/ningmeng/raw/commit/95c63002bebcac27156dc7e89f022b7e7506e12a/ydqx.js, tag=雅迪星球, enabled=true
*/
const $ = new Env('雅迪星球');
const axios = require('axios');
let request = require("request");
request = request.defaults({
jar: true
});
const {
log
} = console;
const Notify = 1; //0为关闭通知1为打开通知,默认为1
const debug = 0; //0为关闭调试1为打开调试,默认为0
let ydxqhd = ($.isNode() ? process.env.ydxqhd : $.getdata("ydxqhd")) || ""
let ydxqhdArr = [];
let data = '';
let msg = '';
var hours = new Date().getMonth();
var timestamp = Math.round(new Date().getTime()/1000).toString();
!(async () => {
if (typeof $request !== "undefined") {
await GetRewrite();
} else {
if (!(await Envs()))
return;
else {
log(`\n\n============================================= \n脚本执行 - 北京时间(UTC+8)${new Date(
new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 +
8 * 60 * 60 * 1000).toLocaleString()} \n=============================================\n`);
log(`\n============ 微信公众号:柠檬玩机交流 ============`)
log(`\n=================== 共找到 ${ydxqhdArr.length} 个账号 ===================`)
if (debug) {
log(`【debug】 这是你的全部账号数组:\n ${ydxqhdArr}`);
}
for (let index = 0; index < ydxqhdArr.length; index++) {
let num = index + 1
addNotifyStr(`\n==== 开始【第 ${num} 个账号】====\n`, true)
ydxqhd = ydxqhdArr[index];
await getUsertoken()
await ygSign()
await user()
await toComment()
await share()
await add()
await details()
await users()
}
await SendMsg(msg);
}
}
})()
.catch((e) => log(e))
.finally(() => $.done())
async function getUsertoken() {
return new Promise((resolve) => {
var options = {
method: 'POST',
url: 'https://oneid.op.yadea.com.cn/auth/realms/vfly-front-master-realm/oauth/getUsertoken',
headers: {
Host: 'oneid.op.yadea.com.cn',
Connection: 'keep-alive',
timestamp: timestamp,
xweb_xhr: '1',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 MicroMessenger/7.0.4.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF',
sign: md5(ydxqhd+timestamp+'67A5050F-62ED-D9C0-2072-468B7B85CF22'),
'Content-Type': 'application/x-www-form-urlencoded',
Accept: '*/*',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
Referer: 'https://servicewechat.com/wxcb681732a25815c7/64/page-frame.html',
'Accept-Language': 'en-us,en',
},
data: 'username='+ydxqhd
};
if (debug) {
log(`\n【debug】=============== 这是 请求 url ===============`);
log(JSON.stringify(options));
}
axios.request(options).then(async function(response) {
try {
data = response.data;
if (debug) {
log(`\n\n【debug】===============这是 返回data==============`);
log(JSON.stringify(response.data));
}
if (data.status_code == 0) {
nickname = data.data.userinfo.nickname
userid = data.data.userinfo.userid
token_type = data.data.token_type
access_token =data.data.access_token
log('nickname:'+nickname)
log('userid:'+userid)
msg += nickname
} else
log(data.error_msg)
} catch (e) {
log(`异常:${data},原因:${data.error_msg}`)
}
}).catch(function(error) {
console.error(error);
}).then(res => {
//这里处理正确返回
resolve();
});
})
}
async function ygSign() {
return new Promise((resolve) => {
var options = {
method: 'POST',
url: 'https://cms-api.op.yadea.com.cn/app-api/ygSign/in',
headers: {
Host: 'cms-api.op.yadea.com.cn',
Connection: 'keep-alive',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 MicroMessenger/7.0.4.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF',
xweb_xhr: '1',
Authorization: 'Bearer '+access_token,
'Content-Type': 'application/json',
Accept: '*/*',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
Referer: 'https://servicewechat.com/wxcb681732a25815c7/64/page-frame.html',
'Accept-Language': 'en-us,en',
'Accept-Encoding': 'gzip, deflate',
},
data: {
headImage: 'http://avatar.cwens.com/avatar_292.png',
nickName: nickname,
signDate: new Date(new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 +8 * 60 * 60 * 1000).toLocaleString(),
userId: userid
}
};
if (debug) {
log(`\n【debug】=============== 这是 请求 url ===============`);
log(JSON.stringify(options));
}
axios.request(options).then(async function(response) {
try {
data = response.data;
if (debug) {
log(`\n\n【debug】===============这是 返回data==============`);
log(JSON.stringify(response.data));
}
if (data.code == 200) {
log(data.message)
} else
log(data.message)
} catch (e) {
log(`异常:${data},原因:${data.message}`)
}
}).catch(function(error) {
console.error(error);
}).then(res => {
//这里处理正确返回
resolve();
});
})
}
async function user() {
return new Promise((resolve) => {
var options = {
method: 'GET',
url: 'https://cms-api.op.yadea.com.cn/app-api/integral/user/details?userId='+userid,
headers: {
Host: 'cms-api.op.yadea.com.cn',
Connection: 'keep-alive',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 MicroMessenger/7.0.4.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF',
xweb_xhr: '1',
Authorization: 'Bearer '+access_token,
'Content-Type': 'application/json',
Accept: '*/*',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
Referer: 'https://servicewechat.com/wxcb681732a25815c7/64/page-frame.html',
'Accept-Language': 'en-us,en',
'Accept-Encoding': 'gzip, deflate',
},
};
if (debug) {
log(`\n【debug】=============== 这是 请求 url ===============`);
log(JSON.stringify(options));
}
axios.request(options).then(async function(response) {
try {
data = response.data;
if (debug) {
log(`\n\n【debug】===============这是 返回data==============`);
log(JSON.stringify(response.data));
}
if (data.code == 200) {
id = data.object.head.id
log('id:'+id)
integralValue = data.object.head.integralValue
log('integralValue:'+integralValue)
} else
log(data.message)
} catch (e) {
log(`异常:${data},原因:${data.message}`)
}
}).catch(function(error) {
console.error(error);
}).then(res => {
//这里处理正确返回
resolve();
});
})
}
async function toComment() {
return new Promise((resolve) => {
var options = {
method: 'POST',
url: 'https://cms-api.op.yadea.com.cn/app-api/comment/toComment',
headers: {
Host: 'cms-api.op.yadea.com.cn',
Connection: 'keep-alive',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 MicroMessenger/7.0.4.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF',
xweb_xhr: '1',
Authorization: 'Bearer '+access_token,
'Content-Type': 'application/json',
Accept: '*/*',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
Referer: 'https://servicewechat.com/wxcb681732a25815c7/64/page-frame.html',
'Accept-Language': 'en-us,en',
'Accept-Encoding': 'gzip, deflate',
},
data:{"authotId":"650e6798-ceb1-491a-8e5e-6a7eecdb18b8","content":"😂😀👍","fromId":"1610133461727711234","type":0}
};
if (debug) {
log(`\n【debug】=============== 这是 请求 url ===============`);
log(JSON.stringify(options));
}
axios.request(options).then(async function(response) {
try {
data = response.data;
if (debug) {
log(`\n\n【debug】===============这是 返回data==============`);
log(JSON.stringify(response.data));
}
if (data.code == 200) {
log(data.message)
} else
log(data.message)
} catch (e) {
log(`异常:${data},原因:${data.message}`)
}
}).catch(function(error) {
console.error(error);
}).then(res => {
//这里处理正确返回
resolve();
});
})
}
async function share() {
return new Promise((resolve) => {
var options = {
method: 'POST',
url: 'https://cms-api.op.yadea.com.cn/app-api/integral/user/share/'+userid+'/1610104012839665666',
headers: {
Host: 'cms-api.op.yadea.com.cn',
Connection: 'keep-alive',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 MicroMessenger/7.0.4.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF',
xweb_xhr: '1',
Authorization: 'Bearer '+access_token,
'Content-Type': 'application/json',
Accept: '*/*',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
Referer: 'https://servicewechat.com/wxcb681732a25815c7/64/page-frame.html',
'Accept-Language': 'en-us,en',
'Accept-Encoding': 'gzip, deflate',
},
data:{"authotId":"650e6798-ceb1-491a-8e5e-6a7eecdb18b8","content":"😂😀👍","fromId":"1610133461727711234","type":0}
};
if (debug) {
log(`\n【debug】=============== 这是 请求 url ===============`);
log(JSON.stringify(options));
}
axios.request(options).then(async function(response) {
try {
data = response.data;
if (debug) {
log(`\n\n【debug】===============这是 返回data==============`);
log(JSON.stringify(response.data));
}
if (data.code == 200) {
log(data.message)
} else
log(data.message)
} catch (e) {
log(`异常:${data},原因:${data.message}`)
}
}).catch(function(error) {
console.error(error);
}).then(res => {
//这里处理正确返回
resolve();
});
})
}
async function add() {
return new Promise((resolve) => {
var options = {
method: 'POST',
url: 'https://cms-api.op.yadea.com.cn/app-api/post/app/add',
headers: {
Host: 'cms-api.op.yadea.com.cn',
Connection: 'keep-alive',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 MicroMessenger/7.0.4.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF',
xweb_xhr: '1',
Authorization: 'Bearer '+access_token,
'Content-Type': 'application/json',
Accept: '*/*',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
Referer: 'https://servicewechat.com/wxcb681732a25815c7/64/page-frame.html',
'Accept-Language': 'en-us,en',
'Accept-Encoding': 'gzip, deflate',
},
data:{"id":"","address":"","lat":"","lon":"","postContent":"你好😂😀👍","topicId":"1587980740314968065","topicName":"潮酷玩咖","imageList":null,"activityType":2}
};
if (debug) {
log(`\n【debug】=============== 这是 请求 url ===============`);
log(JSON.stringify(options));
}
axios.request(options).then(async function(response) {
try {
data = response.data;
if (debug) {
log(`\n\n【debug】===============这是 返回data==============`);
log(JSON.stringify(response.data));
}
if (data.code == 200) {
log(data.message)
} else
log(data.message)
} catch (e) {
log(`异常:${data},原因:${data.message}`)
}
}).catch(function(error) {
console.error(error);
}).then(res => {
//这里处理正确返回
resolve();
});
})
}
async function details() {
return new Promise((resolve) => {
var options = {
method: 'GET',
url: 'https://cms-api.op.yadea.com.cn/app-api/integral/user/details?userId='+userid,
headers: {
Host: 'cms-api.op.yadea.com.cn',
Connection: 'keep-alive',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 MicroMessenger/7.0.4.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF',
xweb_xhr: '1',
Authorization: 'Bearer '+access_token,
'Content-Type': 'application/json',
Accept: '*/*',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
Referer: 'https://servicewechat.com/wxcb681732a25815c7/64/page-frame.html',
'Accept-Language': 'en-us,en',
//'Accept-Encoding': 'gzip, deflate',
},
};
if (debug) {
log(`\n【debug】=============== 这是 请求 url ===============`);
log(JSON.stringify(options));
}
axios.request(options).then(async function(response) {
try {
data = response.data;
if (debug) {
log(`\n\n【debug】===============这是 返回data==============`);
log(JSON.stringify(response.data));
}
if (data.code == 200) {
list = data.object.details
for(let i=0;i<list.length;i++){
await integrals(list[i].id)
log(list[i].id)
await $.wait(2000)
}
} else
log(data.message)
} catch (e) {
log(`异常:${JSON.stringify(response.data)},原因:${data.message}`)
}
}).catch(function(error) {
console.error(error);
}).then(res => {
//这里处理正确返回
resolve();
});
})
}
async function integrals(a) {
return new Promise((resolve) => {
var options = {
method: 'POST',
url: 'https://cms-api.op.yadea.com.cn/app-api/integral/user/'+userid+'/'+a,
headers: {
Host: 'cms-api.op.yadea.com.cn',
Connection: 'keep-alive',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 MicroMessenger/7.0.4.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF',
xweb_xhr: '1',
Authorization: 'Bearer '+access_token,
'Content-Type': 'application/json',
Accept: '*/*',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
Referer: 'https://servicewechat.com/wxcb681732a25815c7/64/page-frame.html',
'Accept-Language': 'en-us,en',
'Accept-Encoding': 'gzip, deflate',
},
data:{}
};
if (debug) {
log(`\n【debug】=============== 这是 请求 url ===============`);
log(JSON.stringify(options));
}
axios.request(options).then(async function(response) {
try {
data = response.data;
if (debug) {
log(`\n\n【debug】===============这是 返回data==============`);
log(JSON.stringify(response.data));
}
if (data.code == 200) {
log(data.message)
} else
log(data.message)
} catch (e) {
log(`异常:${data},原因:${data.message}`)
}
}).catch(function(error) {
console.error(error);
}).then(res => {
//这里处理正确返回
resolve();
});
})
}
async function users() {
return new Promise((resolve) => {
var options = {
method: 'GET',
url: 'https://cms-api.op.yadea.com.cn/app-api/integral/user/details?userId='+userid,
headers: {
Host: 'cms-api.op.yadea.com.cn',
Connection: 'keep-alive',
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 MicroMessenger/7.0.4.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF',
xweb_xhr: '1',
Authorization: 'Bearer '+access_token,
'Content-Type': 'application/json',
Accept: '*/*',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
Referer: 'https://servicewechat.com/wxcb681732a25815c7/64/page-frame.html',
'Accept-Language': 'en-us,en',
'Accept-Encoding': 'gzip, deflate',
},
};
if (debug) {
log(`\n【debug】=============== 这是 请求 url ===============`);
log(JSON.stringify(options));
}
axios.request(options).then(async function(response) {
try {
data = response.data;
if (debug) {
log(`\n\n【debug】===============这是 返回data==============`);
log(JSON.stringify(response.data));
}
if (data.code == 200) {
id = data.object.head.id
log('id:'+id)
integralValue = data.object.head.integralValue
log('integralValue:'+integralValue)
msg += integralValue
} else
log(data.message)
} catch (e) {
log(`异常:${data},原因:${data.message}`)
}
}).catch(function(error) {
console.error(error);
}).then(res => {
//这里处理正确返回
resolve();
});
})
}
function md5(a){function b(a,b){return a<<b|a>>>32-b}function c(a,b){var c,d,e,f,g;return e=2147483648&a,f=2147483648&b,c=1073741824&a,d=1073741824&b,g=(1073741823&a)+(1073741823&b),c&d?2147483648^g^e^f:c|d?1073741824&g?3221225472^g^e^f:1073741824^g^e^f:g^e^f}function d(a,b,c){return a&b|~a&c}function e(a,b,c){return a&c|b&~c}function f(a,b,c){return a^b^c}function g(a,b,c){return b^(a|~c)}function h(a,e,f,g,h,i,j){return a=c(a,c(c(d(e,f,g),h),j)),c(b(a,i),e)}function i(a,d,f,g,h,i,j){return a=c(a,c(c(e(d,f,g),h),j)),c(b(a,i),d)}function j(a,d,e,g,h,i,j){return a=c(a,c(c(f(d,e,g),h),j)),c(b(a,i),d)}function k(a,d,e,f,h,i,j){return a=c(a,c(c(g(d,e,f),h),j)),c(b(a,i),d)}function l(a){for(var b,c=a.length,d=c+8,e=(d-d%64)/64,f=16*(e+1),g=new Array(f-1),h=0,i=0;c>i;)b=(i-i%4)/4,h=i%4*8,g[b]=g[b]|a.charCodeAt(i)<<h,i++;return b=(i-i%4)/4,h=i%4*8,g[b]=g[b]|128<<h,g[f-2]=c<<3,g[f-1]=c>>>29,g}function m(a){var b,c,d="",e="";for(c=0;3>=c;c++)b=a>>>8*c&255,e="0"+b.toString(16),d+=e.substr(e.length-2,2);return d}function n(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):d>127&&2048>d?(b+=String.fromCharCode(d>>6|192),b+=String.fromCharCode(63&d|128)):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128),b+=String.fromCharCode(63&d|128))}return b}var o,p,q,r,s,t,u,v,w,x=[],y=7,z=12,A=17,B=22,C=5,D=9,E=14,F=20,G=4,H=11,I=16,J=23,K=6,L=10,M=15,N=21;for(a=n(a),x=l(a),t=1732584193,u=4023233417,v=2562383102,w=271733878,o=0;o<x.length;o+=16)p=t,q=u,r=v,s=w,t=h(t,u,v,w,x[o+0],y,3614090360),w=h(w,t,u,v,x[o+1],z,3905402710),v=h(v,w,t,u,x[o+2],A,606105819),u=h(u,v,w,t,x[o+3],B,3250441966),t=h(t,u,v,w,x[o+4],y,4118548399),w=h(w,t,u,v,x[o+5],z,1200080426),v=h(v,w,t,u,x[o+6],A,2821735955),u=h(u,v,w,t,x[o+7],B,4249261313),t=h(t,u,v,w,x[o+8],y,1770035416),w=h(w,t,u,v,x[o+9],z,2336552879),v=h(v,w,t,u,x[o+10],A,4294925233),u=h(u,v,w,t,x[o+11],B,2304563134),t=h(t,u,v,w,x[o+12],y,1804603682),w=h(w,t,u,v,x[o+13],z,4254626195),v=h(v,w,t,u,x[o+14],A,2792965006),u=h(u,v,w,t,x[o+15],B,1236535329),t=i(t,u,v,w,x[o+1],C,4129170786),w=i(w,t,u,v,x[o+6],D,3225465664),v=i(v,w,t,u,x[o+11],E,643717713),u=i(u,v,w,t,x[o+0],F,3921069994),t=i(t,u,v,w,x[o+5],C,3593408605),w=i(w,t,u,v,x[o+10],D,38016083),v=i(v,w,t,u,x[o+15],E,3634488961),u=i(u,v,w,t,x[o+4],F,3889429448),t=i(t,u,v,w,x[o+9],C,568446438),w=i(w,t,u,v,x[o+14],D,3275163606),v=i(v,w,t,u,x[o+3],E,4107603335),u=i(u,v,w,t,x[o+8],F,1163531501),t=i(t,u,v,w,x[o+13],C,2850285829),w=i(w,t,u,v,x[o+2],D,4243563512),v=i(v,w,t,u,x[o+7],E,1735328473),u=i(u,v,w,t,x[o+12],F,2368359562),t=j(t,u,v,w,x[o+5],G,4294588738),w=j(w,t,u,v,x[o+8],H,2272392833),v=j(v,w,t,u,x[o+11],I,1839030562),u=j(u,v,w,t,x[o+14],J,4259657740),t=j(t,u,v,w,x[o+1],G,2763975236),w=j(w,t,u,v,x[o+4],H,1272893353),v=j(v,w,t,u,x[o+7],I,4139469664),u=j(u,v,w,t,x[o+10],J,3200236656),t=j(t,u,v,w,x[o+13],G,681279174),w=j(w,t,u,v,x[o+0],H,3936430074),v=j(v,w,t,u,x[o+3],I,3572445317),u=j(u,v,w,t,x[o+6],J,76029189),t=j(t,u,v,w,x[o+9],G,3654602809),w=j(w,t,u,v,x[o+12],H,3873151461),v=j(v,w,t,u,x[o+15],I,530742520),u=j(u,v,w,t,x[o+2],J,3299628645),t=k(t,u,v,w,x[o+0],K,4096336452),w=k(w,t,u,v,x[o+7],L,1126891415),v=k(v,w,t,u,x[o+14],M,2878612391),u=k(u,v,w,t,x[o+5],N,4237533241),t=k(t,u,v,w,x[o+12],K,1700485571),w=k(w,t,u,v,x[o+3],L,2399980690),v=k(v,w,t,u,x[o+10],M,4293915773),u=k(u,v,w,t,x[o+1],N,2240044497),t=k(t,u,v,w,x[o+8],K,1873313359),w=k(w,t,u,v,x[o+15],L,4264355552),v=k(v,w,t,u,x[o+6],M,2734768916),u=k(u,v,w,t,x[o+13],N,1309151649),t=k(t,u,v,w,x[o+4],K,4149444226),w=k(w,t,u,v,x[o+11],L,3174756917),v=k(v,w,t,u,x[o+2],M,718787259),u=k(u,v,w,t,x[o+9],N,3951481745),t=c(t,p),u=c(u,q),v=c(v,r),w=c(w,s);var O=m(t)+m(u)+m(v)+m(w);return O.toLowerCase()}
async function Envs() {
if (ydxqhd) {
if (ydxqhd.indexOf("@") != -1) {
ydxqhd.split("@").forEach((item) => {
ydxqhdArr.push(item);
});
} else if (ydxqhd.indexOf("\n") != -1) {
ydxqhd.split("\n").forEach((item) => {
ydxqhdArr.push(item);
});
} else {
ydxqhdArr.push(ydxqhd);
}
} else {
log(`\n${$.name}】:未填写变量 ydxqhd`)
return;
}
return true;
}
function addNotifyStr(str, is_log = true) {
if (is_log) {
log(`${str}\n`)
}
msg += `${str}\n`
}
async function GetRewrite() {
if ($request.url.indexOf("/oauth/getUsertoken") > -1) {
const ck = $request.body;
if (ydxqhd) {
if (ydxqhd.indexOf(ck) == -1) {
ydxqhd = ydxqhd + "@" + ck;
$.setdata(ydxqhd, "ydxqhd");
let List = ydxqhd.split("@");
$.msg(`${$.name}` + ` 获取第${List.length}个 ck 成功: ${ck} ,不用请自行关闭重写!`);
}
} else {
$.setdata(ck, "ydxqhd");
$.msg(`${$.name}` + ` 获取第1个 ck 成功: ${ck} ,不用请自行关闭重写!`);
}
}
}
// ============================================发送消息============================================ \\
async function SendMsg(message) {
if (!message)
return;
if (Notify > 0) {
if ($.isNode()) {
var notify = require('./sendNotify');
await notify.sendNotify($.name, message);
} else {
$.msg(message);
}
} else {
log(message);
}
}
function Env(t, e) {
"undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0);
class s {
constructor(t) {
this.env = t
}
send(t, e = "GET") {
t = "string" == typeof t ? {
url: t
} : t;
let s = this.get;
return "POST" === e && (s = this.post), new Promise((e, i) => {
s.call(this, t, (t, s, r) => {
t ? i(t) : e(s)
})
})
}
get(t) {
return this.send.call(this.env, t)
}
post(t) {
return this.send.call(this.env, t, "POST")
}
}
return new class {
constructor(t, e) {
this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`)
}
isNode() {
return "undefined" != typeof module && !!module.exports
}
isQuanX() {
return "undefined" != typeof $task
}
isSurge() {
return "undefined" != typeof $httpClient && "undefined" == typeof $loon
}
isLoon() {
return "undefined" != typeof $loon
}
toObj(t, e = null) {
try {
return JSON.parse(t)
} catch {
return e
}
}
toStr(t, e = null) {
try {
return JSON.stringify(t)
} catch {
return e
}
}
getjson(t, e) {
let s = e;
const i = this.getdata(t);
if (i) try {
s = JSON.parse(this.getdata(t))
} catch {}
return s
}
setjson(t, e) {
try {
return this.setdata(JSON.stringify(t), e)
} catch {
return !1
}
}
getScript(t) {
return new Promise(e => {
this.get({
url: t
}, (t, s, i) => e(i))
})
}
runScript(t, e) {
return new Promise(s => {
let i = this.getdata("@chavy_boxjs_userCfgs.httpapi");
i = i ? i.replace(/\n/g, "").trim() : i;
let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");
r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r;
const [o, h] = i.split("@"), n = {
url: `http://${h}/v1/scripting/evaluate`,
body: {
script_text: t,
mock_type: "cron",
timeout: r
},
headers: {
"X-Key": o,
Accept: "*/*"
}
};
this.post(n, (t, e, i) => s(i))
}).catch(t => this.logErr(t))
}
loaddata() {
if (!this.isNode()) return {}; {
this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path");
const t = this.path.resolve(this.dataFile),
e = this.path.resolve(process.cwd(), this.dataFile),
s = this.fs.existsSync(t),
i = !s && this.fs.existsSync(e);
if (!s && !i) return {}; {
const i = s ? t : e;
try {
return JSON.parse(this.fs.readFileSync(i))
} catch (t) {
return {}
}
}
}
}
writedata() {
if (this.isNode()) {
this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path");
const t = this.path.resolve(this.dataFile),
e = this.path.resolve(process.cwd(), this.dataFile),
s = this.fs.existsSync(t),
i = !s && this.fs.existsSync(e),
r = JSON.stringify(this.data);
s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r)
}
}
lodash_get(t, e, s) {
const i = e.replace(/\[(\d+)\]/g, ".$1").split(".");
let r = t;
for (const t of i)
if (r = Object(r)[t], void 0 === r) return s;
return r
}
lodash_set(t, e, s) {
return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t)
}
getdata(t) {
let e = this.getval(t);
if (/^@/.test(t)) {
const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : "";
if (r) try {
const t = JSON.parse(r);
e = t ? this.lodash_get(t, i, "") : e
} catch (t) {
e = ""
}
}
return e
}
setdata(t, e) {
let s = !1;
if (/^@/.test(e)) {
const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i),
h = i ? "null" === o ? null : o || "{}" : "{}";
try {
const e = JSON.parse(h);
this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i)
} catch (e) {
const o = {};
this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i)
}
} else s = this.setval(t, e);
return s
}
getval(t) {
return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null
}
setval(t, e) {
return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null
}
initGotEnv(t) {
this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar))
}
get(t, e = (() => {})) {
t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {
"X-Surge-Skip-Scripting": !1
})), $httpClient.get(t, (t, s, i) => {
!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i)
})) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {
hints: !1
})), $task.fetch(t).then(t => {
const {
statusCode: s,
statusCode: i,
headers: r,
body: o
} = t;
e(null, {
status: s,
statusCode: i,
headers: r,
body: o
}, o)
}, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => {
try {
if (t.headers["set-cookie"]) {
const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();
s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar
}
} catch (t) {
this.logErr(t)
}
}).then(t => {
const {
statusCode: s,
statusCode: i,
headers: r,
body: o
} = t;
e(null, {
status: s,
statusCode: i,
headers: r,
body: o
}, o)
}, t => {
const {
message: s,
response: i
} = t;
e(s, i, i && i.body)
}))
}
post(t, e = (() => {})) {
if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {
"X-Surge-Skip-Scripting": !1
})), $httpClient.post(t, (t, s, i) => {
!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i)
});
else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {
hints: !1
})), $task.fetch(t).then(t => {
const {
statusCode: s,
statusCode: i,
headers: r,
body: o
} = t;
e(null, {
status: s,
statusCode: i,
headers: r,
body: o
}, o)
}, t => e(t));
else if (this.isNode()) {
this.initGotEnv(t);
const {
url: s,
...i
} = t;
this.got.post(s, i).then(t => {
const {
statusCode: s,
statusCode: i,
headers: r,
body: o
} = t;
e(null, {
status: s,
statusCode: i,
headers: r,
body: o
}, o)
}, t => {
const {
message: s,
response: i
} = t;
e(s, i, i && i.body)
})
}
}
time(t, e = null) {
const s = e ? new Date(e) : new Date;
let i = {
"M+": s.getMonth() + 1,
"d+": s.getDate(),
"H+": s.getHours(),
"m+": s.getMinutes(),
"s+": s.getSeconds(),
"q+": Math.floor((s.getMonth() + 3) / 3),
S: s.getMilliseconds()
};
/(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length)));
for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length)));
return t
}
msg(e = t, s = "", i = "", r) {
const o = t => {
if (!t) return t;
if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? {
"open-url": t
} : this.isSurge() ? {
url: t
} : void 0;
if ("object" == typeof t) {
if (this.isLoon()) {
let e = t.openUrl || t.url || t["open-url"],
s = t.mediaUrl || t["media-url"];
return {
openUrl: e,
mediaUrl: s
}
}
if (this.isQuanX()) {
let e = t["open-url"] || t.url || t.openUrl,
s = t["media-url"] || t.mediaUrl;
return {
"open-url": e,
"media-url": s
}
}
if (this.isSurge()) {
let e = t.url || t.openUrl || t["open-url"];
return {
url: e
}
}
}
};
if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) {
let t = ["", "==============📣系统通知📣=============="];
t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t)
}
}
log(...t) {
t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator))
}
logErr(t, e) {
const s = !this.isSurge() && !this.isQuanX() && !this.isLoon();
s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t)
}
wait(t) {
return new Promise(e => setTimeout(e, t))
}
done(t = {}) {
const e = (new Date).getTime(),
s = (e - this.startTime) / 1e3;
this.log("", `🔔${this.name}, 结束! 🕛 ${s}`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t)
}
}(t, e)
}