Rules-For-Quantumult-X/Scripts/SignIn/Wanda/wanda.js

534 lines
23 KiB
JavaScript
Raw Normal View History

2020-07-02 11:50:39 +08:00
const $ = new Env('万达电影')
$._mi_ = 'senku_wanda_mi_'
$.desc = []
$.signCode = '17787285'
$.questionCode = '15884027'
const date = tTime(new Date().getTime())
2020-07-02 11:52:57 +08:00
function getKey() {
2020-07-02 11:50:39 +08:00
const ts = new Date().getTime()
2020-07-02 11:52:57 +08:00
const key = 'Wanda1_3B3AA12B0145E1982F282BEDD8A3305B89A9811280C0B8CC3A6A60D81022E4903' + ts
return {'key': key, 'ts': ts}
2020-07-02 11:50:39 +08:00
}
2020-07-02 11:52:57 +08:00
2020-07-02 11:50:39 +08:00
const mx_api = {
2020-07-02 11:52:57 +08:00
"ver": "v1.0.0",
"sCode": "Wanda",
"_mi_": `${$.getdata($._mi_)}`,
"width": 1280,
"json": true,
"cCode": "1_3",
"check": '',
"ts": 0,
"heigth": 720,
"appId": "3"
2020-07-02 11:50:39 +08:00
}
!(async () => {
await sign()
await signRecord()
await question_()
await question()
await answer()
await drawprize_ans()
await drawprize_ans()
2020-07-02 11:52:57 +08:00
if ($.signRecord.data.remainMedal >= 50) {
2020-07-02 11:50:39 +08:00
await lottery()
}
await showmsg()
2020-07-02 11:52:57 +08:00
})()
2020-07-02 11:50:39 +08:00
.catch((e) => $.logErr(e))
.finally(() => $.done())
function sign() {
return new Promise((resolve) => {
2020-07-02 11:52:57 +08:00
const signVal = getKey()['key'] + '/activityWholeSign/wholeSignUp.apiactivityCode=' + $.signCode + '&signDate=' + date
2020-07-02 11:50:39 +08:00
mx_api['ts'] = getKey()['ts']
mx_api['check'] = hex_md5(signVal)
const url = {
2020-07-02 11:52:57 +08:00
url: 'https://activity-api-mx.wandafilm.com/activityWholeSign/wholeSignUp.api',
headers: {
'MX-API': JSON.stringify(mx_api),
2020-07-02 11:50:39 +08:00
},
2020-07-02 11:52:57 +08:00
body: 'activityCode=' + $.signCode + '&signDate=' + date
}
2020-07-02 11:50:39 +08:00
$.post(url, (err, resp, data) => {
try {
$.sign = JSON.parse(data)
} catch (e) {
2020-07-02 11:52:57 +08:00
$.logErr(e, resp)
2020-07-02 11:50:39 +08:00
} finally {
2020-07-02 11:52:57 +08:00
resolve()
2020-07-02 11:50:39 +08:00
}
})
})
}
function signRecord() {
return new Promise((resolve) => {
2020-07-02 11:52:57 +08:00
const signRecordVal = getKey()['key'] + '/activityWholeSign/getSignRecord.apiactivityCode=' + $.signCode
2020-07-02 11:50:39 +08:00
mx_api['ts'] = getKey()['ts']
mx_api['check'] = hex_md5(signRecordVal)
const url = {
2020-07-02 11:52:57 +08:00
url: 'https://activity-api-mx.wandafilm.com/activityWholeSign/getSignRecord.api',
headers: {
'MX-API': JSON.stringify(mx_api),
2020-07-02 11:50:39 +08:00
},
2020-07-02 11:52:57 +08:00
body: 'activityCode=' + $.signCode
}
2020-07-02 11:50:39 +08:00
$.post(url, (err, resp, data) => {
try {
$.signRecord = JSON.parse(data)
} catch (e) {
2020-07-02 11:52:57 +08:00
$.logErr(e, resp)
2020-07-02 11:50:39 +08:00
} finally {
2020-07-02 11:52:57 +08:00
resolve()
2020-07-02 11:50:39 +08:00
}
})
})
}
function lottery() {
return new Promise((resolve) => {
2020-07-02 11:52:57 +08:00
const signVal = getKey()['key'] + '/activityWholeSign/prize/lottery.apiactivityCode=' + $.signCode + '&vcode=&requestId='
2020-07-02 11:50:39 +08:00
mx_api['ts'] = getKey()['ts']
mx_api['check'] = hex_md5(signVal)
const url = {
2020-07-02 11:52:57 +08:00
url: 'https://activity-api-mx.wandafilm.com/activityWholeSign/prize/lottery.api',
headers: {
'MX-API': JSON.stringify(mx_api),
2020-07-02 11:50:39 +08:00
},
2020-07-02 11:52:57 +08:00
body: 'activityCode=' + $.signCode + '&vcode=&requestId='
}
2020-07-02 11:50:39 +08:00
$.post(url, (err, resp, data) => {
try {
$.lottery = JSON.parse(data)
console.log(data)
} catch (e) {
2020-07-02 11:52:57 +08:00
$.logErr(e, resp)
2020-07-02 11:50:39 +08:00
} finally {
2020-07-02 11:52:57 +08:00
resolve()
2020-07-02 11:50:39 +08:00
}
})
})
}
function question_() {
return new Promise((resolve) => {
2020-07-02 11:52:57 +08:00
const questionVal = getKey()['key'] + '/question/qustion/strength.apiactivityCode=' + $.questionCode
2020-07-02 11:50:39 +08:00
mx_api['ts'] = getKey()['ts']
mx_api['check'] = hex_md5(questionVal)
const url = {
2020-07-02 11:52:57 +08:00
url: 'https://activity-api-mx.wandafilm.com/question/qustion/strength.api',
headers: {
'MX-API': JSON.stringify(mx_api),
2020-07-02 11:50:39 +08:00
},
2020-07-02 11:52:57 +08:00
body: 'activityCode=' + $.questionCode
2020-07-02 11:50:39 +08:00
}
$.post(url, (err, resp, data) => {
try {
$.log(`尝试性报名答题`)
} catch (e) {
2020-07-02 11:52:57 +08:00
$.logErr(e, resp)
2020-07-02 11:50:39 +08:00
} finally {
2020-07-02 11:52:57 +08:00
resolve()
2020-07-02 11:50:39 +08:00
}
})
})
}
// 获取题目答案
function question() {
return new Promise((resolve) => {
2020-07-02 11:52:57 +08:00
const questionVal = getKey()['key'] + '/question/question_list.apiactivityCode=' + $.questionCode
2020-07-02 11:50:39 +08:00
mx_api['ts'] = getKey()['ts']
mx_api['check'] = hex_md5(questionVal)
const url = {
2020-07-02 11:52:57 +08:00
url: 'https://activity-api-mx.wandafilm.com/question/question_list.api',
headers: {
'MX-API': JSON.stringify(mx_api),
2020-07-02 11:50:39 +08:00
},
2020-07-02 11:52:57 +08:00
body: 'activityCode=' + $.questionCode
2020-07-02 11:50:39 +08:00
}
$.post(url, (err, resp, data) => {
try {
const res = JSON.parse(data)
$.answer = res.data.questionList[0].movie.nameCN
} catch (e) {
2020-07-02 11:52:57 +08:00
$.logErr(e, resp)
2020-07-02 11:50:39 +08:00
} finally {
2020-07-02 11:52:57 +08:00
resolve()
2020-07-02 11:50:39 +08:00
}
})
})
}
// 答题
function answer() {
return new Promise((resolve) => {
2020-07-02 11:52:57 +08:00
const answerVal = getKey()['key'] + '/question/qustion/answer.apiactivityCode=' + $.questionCode + '&answer=%7b%221%22%3a%22' + escape(`${$.answer}`).toLowerCase() + '%22%7d'
2020-07-02 11:50:39 +08:00
mx_api['ts'] = getKey()['ts']
mx_api['check'] = hex_md5(answerVal)
const url = {
2020-07-02 11:52:57 +08:00
url: 'https://activity-api-mx.wandafilm.com/question/qustion/answer.api',
headers: {
'MX-API': JSON.stringify(mx_api),
2020-07-02 11:50:39 +08:00
},
2020-07-02 11:52:57 +08:00
body: 'activityCode=' + $.questionCode + '&answer=%7B%221%22%3A%22' + encodeURI(`${$.answer}`) + '%22%7D'
2020-07-02 11:50:39 +08:00
}
$.post(url, (err, resp, data) => {
try {
$.answer = JSON.parse(data)
} catch (e) {
2020-07-02 11:52:57 +08:00
$.logErr(e, resp)
2020-07-02 11:50:39 +08:00
} finally {
2020-07-02 11:52:57 +08:00
resolve()
2020-07-02 11:50:39 +08:00
}
})
})
}
// 答题后抽奖
function drawprize_ans() {
return new Promise((resolve) => {
2020-07-02 11:52:57 +08:00
const drawprizeVal = getKey()['key'] + '/question/prize/lottery.apiactivityCode=' + $.questionCode
2020-07-02 11:50:39 +08:00
mx_api['ts'] = getKey()['ts']
mx_api['check'] = hex_md5(drawprizeVal)
const url = {
2020-07-02 11:52:57 +08:00
url: 'https://activity-api-mx.wandafilm.com/question/prize/lottery.api',
headers: {
'MX-API': JSON.stringify(mx_api),
2020-07-02 11:50:39 +08:00
},
2020-07-02 11:52:57 +08:00
body: 'activityCode=' + $.questionCode
2020-07-02 11:50:39 +08:00
}
$.post(url, (err, resp, data) => {
try {
2020-07-02 11:52:57 +08:00
const res = JSON.parse(data)
2020-07-02 11:50:39 +08:00
$.desc.push(`答题抽奖:${res.data.prize.prizeName}`)
} catch (e) {
2020-07-02 11:52:57 +08:00
$.logErr(e, resp)
2020-07-02 11:50:39 +08:00
} finally {
2020-07-02 11:52:57 +08:00
resolve()
2020-07-02 11:50:39 +08:00
}
})
})
}
function showmsg() {
return new Promise((resolve) => {
$.subt = `签到:${$.sign.code == 1 ? `成功` : $.sign.msg}`
2020-07-02 11:52:57 +08:00
2020-07-02 11:50:39 +08:00
if ($.signRecord.code == 1) {
const totalMedal = $.signRecord.data.totalMedal
const remainMedal = $.signRecord.data.remainMedal
$.desc.push(`总计获得${totalMedal}能量,剩余可用${remainMedal}能量`)
}
2020-07-02 11:52:57 +08:00
$.subt += ` 答题详情:${$.answer.code == 1 ? `答案:${$.answer.data.answer},获得:${$.answer.data.remainChance}次抽奖` : $.answer.msg}`
2020-07-02 11:50:39 +08:00
$.lottery ? $.desc.push(`签到抽奖:${$.lottery.data.prize.prizeName}`) : ``
$.msg($.name, $.subt, $.desc.join('\n'))
resolve()
})
}
function tTime(timestamp) {
const date = new Date(timestamp)
const Y = date.getFullYear() + '-'
const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
const D = (date.getDate() + 1 < 10 ? '0' + date.getDate() : date.getDate())
return Y + M + D
}
2020-07-02 11:52:57 +08:00
function hex_md5(r) {
return rstr2hex(rstr_md5(str2rstr_utf8(r)))
}
function b64_md5(r) {
return rstr2b64(rstr_md5(str2rstr_utf8(r)))
}
function any_md5(r, t) {
return rstr2any(rstr_md5(str2rstr_utf8(r)), t)
}
function hex_hmac_md5(r, t) {
return rstr2hex(rstr_hmac_md5(str2rstr_utf8(r), str2rstr_utf8(t)))
}
function b64_hmac_md5(r, t) {
return rstr2b64(rstr_hmac_md5(str2rstr_utf8(r), str2rstr_utf8(t)))
}
function any_hmac_md5(r, t, d) {
return rstr2any(rstr_hmac_md5(str2rstr_utf8(r), str2rstr_utf8(t)), d)
}
function md5_vm_test() {
return "900150983cd24fb0d6963f7d28e17f72" == hex_md5("abc").toLowerCase()
}
function rstr_md5(r) {
return binl2rstr(binl_md5(rstr2binl(r), 8 * r.length))
}
function rstr_hmac_md5(r, t) {
var d = rstr2binl(r);
d.length > 16 && (d = binl_md5(d, 8 * r.length));
for (var n = Array(16), _ = Array(16), m = 0; m < 16; m++) n[m] = 909522486 ^ d[m], _[m] = 1549556828 ^ d[m];
var f = binl_md5(n.concat(rstr2binl(t)), 512 + 8 * t.length);
return binl2rstr(binl_md5(_.concat(f), 640))
}
function rstr2hex(r) {
for (var t, d = hexcase ? "0123456789ABCDEF" : "0123456789abcdef", n = "", _ = 0; _ < r.length; _++) t = r.charCodeAt(_), n += d.charAt(t >>> 4 & 15) + d.charAt(15 & t);
return n
}
function rstr2b64(r) {
for (var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", d = "", n = r.length, _ = 0; _ < n; _ += 3) for (var m = r.charCodeAt(_) << 16 | (_ + 1 < n ? r.charCodeAt(_ + 1) << 8 : 0) | (_ + 2 < n ? r.charCodeAt(_ + 2) : 0), f = 0; f < 4; f++) 8 * _ + 6 * f > 8 * r.length ? d += b64pad : d += t.charAt(m >>> 6 * (3 - f) & 63);
return d
}
function rstr2any(r, t) {
var d, n, _, m, f, h = t.length, e = Array(Math.ceil(r.length / 2));
for (d = 0; d < e.length; d++) e[d] = r.charCodeAt(2 * d) << 8 | r.charCodeAt(2 * d + 1);
var a = Math.ceil(8 * r.length / (Math.log(t.length) / Math.log(2))), i = Array(a);
for (n = 0; n < a; n++) {
for (f = Array(), m = 0, d = 0; d < e.length; d++) m = (m << 16) + e[d], _ = Math.floor(m / h), m -= _ * h, (f.length > 0 || _ > 0) && (f[f.length] = _);
i[n] = m, e = f
}
var o = "";
for (d = i.length - 1; d >= 0; d--) o += t.charAt(i[d]);
return o
}
function str2rstr_utf8(r) {
for (var t, d, n = "", _ = -1; ++_ < r.length;) t = r.charCodeAt(_), d = _ + 1 < r.length ? r.charCodeAt(_ + 1) : 0, 55296 <= t && t <= 56319 && 56320 <= d && d <= 57343 && (t = 65536 + ((1023 & t) << 10) + (1023 & d), _++), t <= 127 ? n += String.fromCharCode(t) : t <= 2047 ? n += String.fromCharCode(192 | t >>> 6 & 31, 128 | 63 & t) : t <= 65535 ? n += String.fromCharCode(224 | t >>> 12 & 15, 128 | t >>> 6 & 63, 128 | 63 & t) : t <= 2097151 && (n += String.fromCharCode(240 | t >>> 18 & 7, 128 | t >>> 12 & 63, 128 | t >>> 6 & 63, 128 | 63 & t));
return n
}
function str2rstr_utf16le(r) {
for (var t = "", d = 0; d < r.length; d++) t += String.fromCharCode(255 & r.charCodeAt(d), r.charCodeAt(d) >>> 8 & 255);
return t
}
function str2rstr_utf16be(r) {
for (var t = "", d = 0; d < r.length; d++) t += String.fromCharCode(r.charCodeAt(d) >>> 8 & 255, 255 & r.charCodeAt(d));
return t
}
function rstr2binl(r) {
for (var t = Array(r.length >> 2), d = 0; d < t.length; d++) t[d] = 0;
for (d = 0; d < 8 * r.length; d += 8) t[d >> 5] |= (255 & r.charCodeAt(d / 8)) << d % 32;
return t
}
function binl2rstr(r) {
for (var t = "", d = 0; d < 32 * r.length; d += 8) t += String.fromCharCode(r[d >> 5] >>> d % 32 & 255);
return t
}
function binl_md5(r, t) {
r[t >> 5] |= 128 << t % 32, r[14 + (t + 64 >>> 9 << 4)] = t;
for (var d = 1732584193, n = -271733879, _ = -1732584194, m = 271733878, f = 0; f < r.length; f += 16) {
var h = d, e = n, a = _, i = m;
d = md5_ff(d, n, _, m, r[f + 0], 7, -680876936), m = md5_ff(m, d, n, _, r[f + 1], 12, -389564586), _ = md5_ff(_, m, d, n, r[f + 2], 17, 606105819), n = md5_ff(n, _, m, d, r[f + 3], 22, -1044525330), d = md5_ff(d, n, _, m, r[f + 4], 7, -176418897), m = md5_ff(m, d, n, _, r[f + 5], 12, 1200080426), _ = md5_ff(_, m, d, n, r[f + 6], 17, -1473231341), n = md5_ff(n, _, m, d, r[f + 7], 22, -45705983), d = md5_ff(d, n, _, m, r[f + 8], 7, 1770035416), m = md5_ff(m, d, n, _, r[f + 9], 12, -1958414417), _ = md5_ff(_, m, d, n, r[f + 10], 17, -42063), n = md5_ff(n, _, m, d, r[f + 11], 22, -1990404162), d = md5_ff(d, n, _, m, r[f + 12], 7, 1804603682), m = md5_ff(m, d, n, _, r[f + 13], 12, -40341101), _ = md5_ff(_, m, d, n, r[f + 14], 17, -1502002290), n = md5_ff(n, _, m, d, r[f + 15], 22, 1236535329), d = md5_gg(d, n, _, m, r[f + 1], 5, -165796510), m = md5_gg(m, d, n, _, r[f + 6], 9, -1069501632), _ = md5_gg(_, m, d, n, r[f + 11], 14, 643717713), n = md5_gg(n, _, m, d, r[f + 0], 20, -373897302), d = md5_gg(d, n, _, m, r[f + 5], 5, -701558691), m = md5_gg(m, d, n, _, r[f + 10], 9, 38016083), _ = md5_gg(_, m, d, n, r[f + 15], 14, -660478335), n = md5_gg(n, _, m, d, r[f + 4], 20, -405537848), d = md5_gg(d, n, _, m, r[f + 9], 5, 568446438), m = md5_gg(m, d, n, _, r[f + 14], 9, -1019803690), _ = md5_gg(_, m, d, n, r[f + 3], 14, -187363961), n = md5_gg(n, _, m, d, r[f + 8], 20, 1163531501), d = md5_gg(d, n, _, m, r[f + 13], 5, -1444681467), m = md5_gg(m, d, n, _, r[f + 2], 9, -51403784), _ = md5_gg(_, m, d, n, r[f + 7], 14, 1735328473), n = md5_gg(n, _, m, d, r[f + 12], 20, -1926607734), d = md5_hh(d, n, _, m, r[f + 5], 4, -378558), m = md5_hh(m, d, n, _, r[f + 8], 11, -2022574463), _ = md5_hh(_, m, d, n, r[f + 11], 16, 1839030562), n = md5_hh(n, _, m, d, r[f + 14], 23, -35309556), d = md5_hh(d, n, _, m, r[f + 1], 4, -1530992060), m = md5_hh(m, d, n, _, r[f + 4], 11, 1272893353), _ = md5_hh(_, m, d, n, r[f + 7], 16, -155497632), n = md5_hh(n, _, m, d, r[f + 10], 23, -1094730640), d = md5_hh(d, n, _, m, r[f + 13], 4, 681279174), m = md5_hh(m, d, n, _, r[f + 0], 11, -358537222), _ = md5_hh(_, m, d, n, r[f + 3], 16, -722521979), n = md5_hh(n, _, m, d, r[f + 6], 23, 76029189), d = md5_hh(d, n, _, m, r[f + 9], 4, -640364487), m = md5_hh(m, d, n, _, r[f + 12], 11, -421815835), _ = md5_hh(_, m, d, n, r[f + 15], 16, 530742520), n = md5_hh(n, _, m, d, r[f + 2], 23, -995338651), d = md5_ii(d, n, _, m, r[f + 0], 6, -198630844), m = md5_ii(m, d, n, _, r[f + 7], 10, 1126891415), _ = md5_ii(_, m, d, n, r[f + 14], 15, -1416354905), n = md5_ii(n, _, m, d, r[f + 5], 21, -57434055), d = md5_ii(d, n, _, m, r[f + 12], 6, 1700485571), m = md5_ii(m, d, n, _, r[f + 3], 10, -1894986606), _ = md5_ii(_, m, d, n, r[f + 10], 15, -1051523), n = md5_ii(n, _, m, d, r[f + 1], 21, -2054922799), d = md5_ii(d, n, _, m, r[f + 8], 6, 1873313359), m = md5_ii(m, d, n, _, r[f + 15], 10, -30611744), _ = md5_ii(_, m, d, n, r[f + 6], 15, -1560198380), n = md5_ii(n, _, m, d, r[f + 13], 21, 1309151649), d = md5_ii(d, n, _, m, r[f + 4], 6, -145523070), m = md5_ii(m, d, n, _, r[f + 11], 10, -1120210379), _ = md5_ii(_, m, d, n, r[f + 2], 15, 718787259), n = md5_ii(n, _, m, d, r[f + 9], 21, -343485551), d = safe_add(d, h), n = safe_add(n, e), _ = safe_add(_, a), m = safe_add(m, i)
}
return Array(d, n, _, m)
}
function md5_cmn(r, t, d, n, _, m) {
return safe_add(bit_rol(safe_add(safe_add(t, r), safe_add(n, m)), _), d)
}
function md5_ff(r, t, d, n, _, m, f) {
return md5_cmn(t & d | ~t & n, r, t, _, m, f)
}
function md5_gg(r, t, d, n, _, m, f) {
return md5_cmn(t & n | d & ~n, r, t, _, m, f)
}
function md5_hh(r, t, d, n, _, m, f) {
return md5_cmn(t ^ d ^ n, r, t, _, m, f)
}
function md5_ii(r, t, d, n, _, m, f) {
return md5_cmn(d ^ (t | ~n), r, t, _, m, f)
}
function safe_add(r, t) {
var d = (65535 & r) + (65535 & t), n = (r >> 16) + (t >> 16) + (d >> 16);
return n << 16 | 65535 & d
}
function bit_rol(r, t) {
return r << t | r >>> 32 - t
}
var hexcase = 0, b64pad = "";
2020-07-02 11:50:39 +08:00
// prettier-ignore
2020-07-02 11:52:57 +08:00
function Env(t, s) {
return new class {
constructor(t, s) {
this.name = t, this.data = null, this.dataFile = "box.dat", this.logs = [], this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, s), 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
}
isLoon() {
return "undefined" != typeof $loon
}
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), s = this.path.resolve(process.cwd(), this.dataFile),
e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s);
if (!e && !i) return {};
{
const i = e ? t : s;
try {
return JSON.parse(this.fs.readFileSync(i))
} catch {
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), s = this.path.resolve(process.cwd(), this.dataFile),
e = this.fs.existsSync(t), i = !e && this.fs.existsSync(s), o = JSON.stringify(this.data);
e ? this.fs.writeFileSync(t, o) : i ? this.fs.writeFileSync(s, o) : this.fs.writeFileSync(t, o)
}
}
lodash_get(t, s, e) {
const i = s.replace(/\[(\d+)\]/g, ".$1").split(".");
let o = t;
for (const t of i) if (o = Object(o)[t], void 0 === o) return e;
return o
}
lodash_set(t, s, e) {
return Object(t) !== t ? t : (Array.isArray(s) || (s = s.toString().match(/[^.[\]]+/g) || []), s.slice(0, -1).reduce((t, e, i) => Object(t[e]) === t[e] ? t[e] : t[e] = Math.abs(s[i + 1]) >> 0 == +s[i + 1] ? [] : {}, t)[s[s.length - 1]] = e, t)
}
getdata(t) {
let s = this.getval(t);
if (/^@/.test(t)) {
const [, e, i] = /^@(.*?)\.(.*?)$/.exec(t), o = e ? this.getval(e) : "";
if (o) try {
const t = JSON.parse(o);
s = t ? this.lodash_get(t, i, "") : s
} catch (t) {
s = ""
}
}
return s
}
setdata(t, s) {
let e = !1;
if (/^@/.test(s)) {
const [, i, o] = /^@(.*?)\.(.*?)$/.exec(s), h = this.getval(i),
a = i ? "null" === h ? null : h || "{}" : "{}";
try {
const s = JSON.parse(a);
this.lodash_set(s, o, t), e = this.setval(JSON.stringify(s), i), console.log(`${i}: ${JSON.stringify(s)}`)
} catch {
const s = {};
this.lodash_set(s, o, t), e = this.setval(JSON.stringify(s), i), console.log(`${i}: ${JSON.stringify(s)}`)
}
} else e = $.setval(t, s);
return e
}
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, s) {
return this.isSurge() || this.isLoon() ? $persistentStore.write(t, s) : this.isQuanX() ? $prefs.setValueForKey(t, s) : this.isNode() ? (this.data = this.loaddata(), this.data[s] = t, this.writedata(), !0) : this.data && this.data[s] || 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, s = (() => {
})) {
t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? $httpClient.get(t, (t, e, i) => {
!t && e && (e.body = i, e.statusCode = e.status, s(t, e, i))
}) : this.isQuanX() ? $task.fetch(t).then(t => {
const {statusCode: e, statusCode: i, headers: o, body: h} = t;
s(null, {status: e, statusCode: i, headers: o, body: h}, h)
}, t => s(t)) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, s) => {
try {
const e = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();
this.ckjar.setCookieSync(e, null), s.cookieJar = this.ckjar
} catch (t) {
this.logErr(t)
}
}).then(t => {
const {statusCode: e, statusCode: i, headers: o, body: h} = t;
s(null, {status: e, statusCode: i, headers: o, body: h}, h)
}, t => s(t)))
}
post(t, s = (() => {
})) {
if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) $httpClient.post(t, (t, e, i) => {
!t && e && (e.body = i, e.statusCode = e.status, s(t, e, i))
}); else if (this.isQuanX()) t.method = "POST", $task.fetch(t).then(t => {
const {statusCode: e, statusCode: i, headers: o, body: h} = t;
s(null, {status: e, statusCode: i, headers: o, body: h}, h)
}, t => s(t)); else if (this.isNode()) {
this.initGotEnv(t);
const {url: e, ...i} = t;
this.got.post(e, i).then(t => {
const {statusCode: e, statusCode: i, headers: o, body: h} = t;
s(null, {status: e, statusCode: i, headers: o, body: h}, h)
}, t => s(t))
}
}
msg(s = t, e = "", i = "", o) {
this.isSurge() || this.isLoon() ? $notification.post(s, e, i) : this.isQuanX() && $notify(s, e, i), this.logs.push("", "==============\ud83d\udce3\u7cfb\u7edf\u901a\u77e5\ud83d\udce3=============="), this.logs.push(s), e && this.logs.push(e), i && this.logs.push(i)
}
log(...t) {
t.length > 0 ? this.logs = [...this.logs, ...t] : console.log(this.logs.join(this.logSeparator))
}
logErr(t, s) {
const e = !this.isSurge() && !this.isQuanX() && !this.isLoon();
e ? $.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.stack) : $.log("", `\u2757\ufe0f${this.name}, \u9519\u8bef!`, t.message)
}
wait(t) {
return new Promise(s => setTimeout(s, t))
}
done(t = null) {
const s = (new Date).getTime(), e = (s - this.startTime) / 1e3;
this.log("", `\ud83d\udd14${this.name}, \u7ed3\u675f! \ud83d\udd5b ${e} \u79d2`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t)
}
}(t, s)
}