You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

13 lines
68 KiB

4 years ago
/*
邀请码 : 982827434
感谢大家的填写
*/
var _0xodZ='jsjiami.com.v6',_0xodZ_=['‮_0xodZ'],_0x1990=[_0xodZ,'wqQIwqrDsks=','e8KfP8O3HA==','wrfDpgjCh8OLF8K8woUpc8OjNVJIw5Y9w53ChsKXZcKVPnk6wo3Dm8OSw5/DmzvClcKJwoF5BHzCi3lSKsOqScO5aFIffjrDqELCmjLDuSl3WsKVB8OAQgPDoWYJTcOVBQ==','EAXDiWY9Mz7DgQzDosOxRBkowrbCsyPDqw4=','woUtOg==','TQbCtcKdwqc=','w7rDiCk=','w4fCnBxEw7U=','w7HDtMKbVcK8w4Uzwrph','w5jDg8KHw6wQ','wrTjgZLkuqbml6zltaXlrL3miLHjg7HCiho=','wrA/wpPDiHfDpMOcaAQ=','VFXCg8KnLQ==','LMK8wpM=','wrEswpXDhg==','K8K1GMOOQw==','EMK9U8Kbwqk=','WuOCveethOWKuOWllui1jOOBmC7Dgg==','w758fQ9zbU7DkEA=','SuODg+euiuWJgOaKkeWKvuOBvXp+','w7tkIFtN','OOOBjumjkue4m+Wnvei3l+OBmsO9w6E=','w7gSdgHCjg==','w419K1lP','woIVwpPCmmI=','dXPDv2IC','V1LDj3DDiw==','w6nChMKFE8K1','eUHCiA8Mw5nCmQ==','b8O6SQHDpQ==','w7jCrFdnw6c=','e2gcwp8=','VHbDj1Mwc8OBwqvCgsO5w4vCv8KwwogXNUlCSMK+OSjCulhiw5Qgw6kUNAzChMKlw7U+J2JgwokZwp7Dh1PCg8KvXMK3w4lpwpt0wrY7NhHCq8OeDsKyNcOPw43DkyLCi8KN','w7HDgjo=','MxDDslkg','DXbDr8O8w4s=','QMKJFsOTIcO1','wqnDhA9OKg==','wqBEQcOmVw==','PMOCXQ==','w6PCqSJhw4E=','wrfDpWDDsA==','I8K1R8KNwrohwqXClEdLNXvDhg==','SQDCosKdwqo=','fMKYwpMTUQ==','WwzCs8KVwq3DkMKZFMOUScOew6h+','QcKZB8OyJMO1w6vDlA==','QHTCq3PCpw==','VDszw5nCrsKTKMKswpHDsErCgmk=','K8KzDcORUg==','d8KLVQ4aQMOW','wogbw5t5','w7DCiQs+X8OUVcKDNsK5w6jCucOP','VX/DonPDp2fCm8O1','wpoXLsKIw7o=','bHTCrSUK','IMKiUMKGwqofwqvCjHA=','w7g2dzjCvQ==','d+OAh+WmrOi2quOCv8K0WA==','wrvDsGDDoR9LeFTDtsOpw58Zw6LCpMKgO8KGJHDCjMOXVsOUZGh4wpgfwrURwpFGwqdGL8Ouw50uw4xgC3jDjMOYGsOYLMOOYAdqU8OCMx/Cp2DDtG0gw55Cw6FF','w6HCj8KyKsKSw4LDlTVXXExowp/DicKlw5TDkUY7','woLCmHjCn8Kr','bGgFwq/DoA==','wocLGHcc','NcKxUMKawr0=','w5RRM1tk','wqHDoWfDpAAF','w5fCsMK2wrI+','G8KMYcOz','JA7DhA==','wofDhhZMA8KAw6Q=','woDDhSNLJQ==','w7/Cggo=','OcKJRcOFKg==','L8K2ZMKdwp8=','MsObbMO9IA==','PQ5gw77Dh8OIU1HClw==','w7rCgwk=','w6pfHV54','wooCMMKpw6k=','woPDnHjDvS0=','WQjCosKQ','L8Kfwqcew4Q=','T+ODgOWkk+i3jOODiXrDpg==','w6bjgarotonmiK/kv4bpoavjgKTCmUo=','w6NRJmVg','a8KEYhk3','wqfDusOZRsO8w6ZvwrUzwqvCkw==','wpzjgrfoj7nlvY3lvYnlr6XnrIDphp3luZ/jgYrDpmg=','AsOVWcOxKQ==','wrTDnATCgMOb','S8O5exTCnw==','wo1GScOic2I7BlJCwrdRI8OPwp05wpZFwp4=','JsKxwoIjFw==','wpQqJm08','VMKgFMOSPw==','clHDkFUS','w4DjgY3lvLbmipbmnozpgYnnl7DmiYzjgr4tLA==','WMKLwqYPbg==','HjzDtnTCtA==','wrw5w5l7w6o=','wqXDijHCo8Oo','asKqbDgt','fHk5wo7Dsw==','cwsuw4/Crw==','wqcFwozCt3k=','LhRCw5XDgg==','VcO3UgbDtQ==','w5DCjsKhwqwN','w7fCqWx6w78=','w5wOKFzDrw==','GTTDhlQI','w5jCnR0Jdg==','w7fCoystcg==','w6zDqsKraMK8','wpLDpQnCosOp','YcOLYz/Cmg==','fGHClGTCrA==','wqsZwrHCq2Q=','Qhocw7jCmg==','AwvDrFTClQ==','w73CqcKgFcKJ','w7wzayfCoQ==','w6jjgZjoj7nlvozlvYnlr43nrLDphLXluoLjgLZoaA==','wq48wqnCvA==','LsKiwo8EA8K/UkhPw5M6','CQHDgmc=','w7LCmcKawrUM','QmvDtEY=','w7XDiCPCtyYWw7A7PynCuBjDplbChsKa','OQtzw6PDkcOWU03ChcK7w7Y=','acODbyI=','R8KNwogBcA==','RsOEeRjCtw==','wp7jgpblp5jotJ/jg5/CoH4=','wo8tPWgoN8Ok','KMK1UcKawrknwqM=','wqhtScOVTA==','X8KJFsOVLMOmw6I=','woFmfMODWA==','wqMZA8Kcw44=','wpQiwqLDvX8=','wpcAwqnDhnY=','wrrDoA7CmMOKcsO+w5kg','NRlhw6LDlMOwWw==','woZRWcO4bVx4HkA=','fcKhwq43cQ==','w74ZeibCgw==','woUXw45Qw5E=','IsOscMOJJg==','w7LDhjrCuw==','wo0Nw45qw7vCt1jDjB8Ywpg=','YWXClWTCqMOYFw==','w7fCr2Njw6I=','w5LDksKIdsKe','AQXDsQcXIXk=','MC12w5zDmA==','cEQZwqbDhA==','wofjgr7lvJ3mi5Xmn6DpgLjnlZDmib7jgr0Afw==','JMKywoAR','w5PDrMK/asKdwq8Cw4A=','w7VnbAtvU07Dhg==','w4rDsMK9','dOOBsOi2jeaIpOS8iOmjj+OAgcKQWQ==','wqg0NcKZ','wr4ywqnCvGEVwrkIw4c=','XsKDAg==','S8OqQhjDsA==','RFDDmkIi','wo7DghFe','a2Ycwp/DqsK8B1XCiQ==','c8OHdSXDgRNz','GQnDt2nCpA==','wr8uwrjCr0k3wqwa','McKzGsOWWcO9w4Zb','EwXDmGAwNXU=','worDlhDCpMOe','PB1mw7A=','JcOtesKGw68+Rw==','w6jDrsKpS8KS','IhHDsSc9','w57DjcK7ecK4','wr4ywqnCvGEVwrcSw4E=','QuOCmOmAkuiiouWmv+i1vOOAs8OhwoI=','w5vDrcKlw5cV','wropw5t3w7o=','JsK8S8KMwrY0wpnClHJdeA==','wqXDscO0','LcKTwrsQAQ==','wqXDq3rDmQM=','w4rCl8KGwqcx','wqgFworCmH4=','wrzDpBNpLg==','wobDjAI=','STDCo8K3woE=','wpMGOHo7','K8KDDMO7eQ==','KMKjwo0nw5E=','wp8Kw4Nxw6s=','HxDDgiF/Nz7DgQzDosOxRBkowrbCsyPDqw4=','McKJVMOYCg==','w7TDpcKrYsKq','RVfChcK9PsKbw5jDgcKBw4bDrMOdwrJUJ8OqG8OnaGYjSivCicOwPCXCocO1HMKEwp07fA==','wpNMWMOj','wpLDig5wLQ==','HS3DiXrCpw==','T+ODgOmipue5j+Wnqe
//env模块 不要动
function Env(t, e) { 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("", `\ud83d\udd14${this.name}, \u5f00\u59cb!`) } 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("@"), a = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(a, (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.