Files
smallfawn-QLScriptPublic/smart汽车+.js
smallfawn 745de23884 脱密
2025-01-25 16:33:53 +08:00

566 lines
22 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.
/**
* smart汽车+ V1.02
* const $ = new Env("smart汽车+");
* cron 0 8,20 * * * smart汽车+.js
* 走下我的注册地址谢谢有本请投稿利润项目偷撸可ddhttps://z1.ax1x.com/2023/10/17/piChdQH.png
* 更新:修复运行问题以及提现逻辑
* ========= 青龙--配置文件 ===========
* # 项目名称
* export smart_car_plus='Id-Token'
* 自己登录时开启抓包 搜索 refresh_tokenminiapp/quicklogin 或者 miniapp/getittoken 的返回里有
* 注意:抓到后不要再自己打开这个小程序了,不然会顶号!
*
* 多账号可用 换行、&、@ 符号隔开,支持新建多个同名环境变量来设置多账号
* 奖励:签到开盲盒
* ====================================
*/
//Sat Jan 25 2025 08:24:09 GMT+0000 (Coordinated Universal Time)
//Base:https://github.com/echo094/decode-js
//Modify:https://github.com/smallfawn/decode_action
const _0x2c5ee3 = new _0x16e925("smart汽车+"),
_0x40c21a = require("https");
_0x40c21a.globalAgent.options.rejectUnauthorized = false;
let _0x1778c4 = "smart_car_plus",
_0x55a0cf = ["\n", "@", "&"];
const _0x86dc7f = require("fs");
let _0x6bb841 = (_0x2c5ee3.isNode() ? process.env[_0x1778c4] : _0x2c5ee3.getdata(_0x1778c4)) || "",
_0x18bbd5 = [],
_0x44bda9 = 0;
class _0x57add7 {
constructor(_0x387cf7) {
this.index = ++_0x44bda9;
this.valid = false;
try {
{
if (_0x387cf7?.["length"] === 2) [this.Authorization, this.token] = _0x387cf7, this.Authorization = this.Authorization?.["replace"]("Bearer ", "");else _0x387cf7?.["length"] === 1 ? ([this.refreshToken] = _0x387cf7, this.refreshToken = this.refreshToken?.["replace"]("Bearer ", "")) : console.log("参数不完整:自己抓包 请求头里的 Id-Token");
}
} catch (_0x159593) {
console.log("参数不完整:自己抓包 请求头里的 Id-Token");
}
}
async ["taskApi"](_0x40ea26, _0x3daa52, _0x3f5fcb, _0x22e96e, _0x1c1124 = {}) {
let _0x13a5e2 = null;
try {
{
let _0x378cf3 = {
"url": _0x3f5fcb,
"headers": {
"Authorization": "Bearer " + this.Authorization,
"Content-Type": "application/json; Charset=UTF-8",
"id-token": this.token || "",
..._0x1c1124
},
"timeout": 60000
};
_0x22e96e && (_0x378cf3.body = _0x22e96e);
await _0x4a407b(_0x3daa52, _0x378cf3).then(async _0x23f56a => {
{
if (_0x23f56a.resp?.["statusCode"] == 200) {
{
if (_0x23f56a.resp?.["body"]) {
_0x13a5e2 = JSON.parse(_0x23f56a.resp.body);
} else console.log("账号[" + this.index + "]调用" + _0x3daa52 + "[" + _0x40ea26 + "]出错,返回为空");
}
} else console.log("账号[" + this.index + "]调用" + _0x3daa52 + "[" + _0x40ea26 + "]出错,返回状态码[" + (_0x23f56a.resp?.["statusCode"] || "") + "]", "返回结果:", _0x23f56a.resp?.["body"] || _0x23f56a?.["err"]);
}
});
}
} catch (_0x324e72) {
console.log(_0x324e72);
} finally {
return Promise.resolve(_0x13a5e2);
}
}
async ["sign_statistics"]() {
try {
{
let _0x7e33c7 = "sign_statistics",
_0x595a82 = "post",
_0x531078 = "https://eco-api.smart.cn/member-center/sign/toc/supplement/sign/statistics";
const _0x48a208 = new Date(),
_0x45e49d = _0x48a208.getFullYear(),
_0x14824f = String(_0x48a208.getMonth() + 1).padStart(2, "0"),
_0x4d9c57 = _0x45e49d + "-" + _0x14824f;
let _0x54116c = "{\"month\":\"" + _0x4d9c57 + "\"}";
await this.taskApi(_0x7e33c7, _0x595a82, _0x531078, _0x54116c, {}).then(async _0xbd54ea => {
_0xbd54ea?.["success"] ? (console.log("账号[" + this.index + "] 查询打卡信息成功,积分:" + (_0xbd54ea?.["data"]["pointsBalance"] || 0)), this.valid = true) : (console.log("账号[" + this.index + "] 查询打卡信息失败:" + (_0xbd54ea?.["msg"] || JSON.stringify(_0xbd54ea))), this.valid = false);
});
}
} catch (_0x595987) {
console.log(_0x595987);
}
}
async ["sign_daliy"]() {
try {
{
let _0x1884eb = "sign_daliy",
_0x12b8c3 = "post",
_0x120f2f = "https://app-api.smart.cn/smartapp-me/signs/v2",
_0x4c4500 = "{}";
await this.taskApi(_0x1884eb, _0x12b8c3, _0x120f2f, _0x4c4500, {
"X-Auth-Token": this.token
}).then(async _0x492146 => {
_0x492146?.["code"] === "success" ? console.log("账号[" + this.index + "] 签到成功,当前总积分:" + (_0x492146?.["data"]["totalIntegral"] || 0) + ",已签到:" + _0x492146?.["data"]["signCount"] + "次") : console.log("账号[" + this.index + "] 签到失败:" + (_0x492146?.["message"] || JSON.stringify(_0x492146)));
});
}
} catch (_0x297601) {
console.log(_0x297601);
}
}
async ["RefreshToken"]() {
let _0x475482,
_0x56592f = _0x4f0b0f(_0x1778c4 + "_config", this.refreshToken);
_0x56592f && typeof _0x56592f === "string" && JSON.parse(_0x56592f)?.["access_token"] && (_0x475482 = JSON.parse(_0x56592f)?.["access_token"]);
let _0x68ba58 = _0x475482 || this.refreshToken;
try {
let _0x103c88 = "RefreshToken",
_0x3da2a3 = "get",
_0x392b92 = "https://cms-api.smart.cn/api/smart/web/1.0/oauth/miniapp/getittoken?refreshToken=" + _0x68ba58,
_0x563be0 = "";
await this.taskApi(_0x103c88, _0x3da2a3, _0x392b92, _0x563be0, {}).then(async _0x539175 => {
if (_0x539175?.["message"] === "success") {
this.token = _0x539175?.["result"]?.["id_token"];
try {
const _0x29342b = atob(this.token?.["split"](".")[1]),
_0x530edd = new Date(Number(_0x29342b?.["exp"] + "000"))?.["getMonth"]() + 1 + "月" + new Date(Number(_0x29342b?.["exp"] + "000"))?.["getDate"]() + "日" + "00:00:00过期";
console.log("账号[" + this.index + "] 刷新token成功当前token" + _0x530edd);
} catch (_0x57e8da) {
console.log("账号[" + this.index + "] 刷新token成功");
}
this.valid = true;
_0x68ba58 = _0x539175?.["result"]?.["refresh_token"];
_0x5bb44c(_0x1778c4 + "_config", this.refreshToken, JSON.stringify({
"access_token": _0x68ba58
}));
} else console.log("账号[" + this.index + "] 刷新token失败" + (_0x539175?.["message"] || JSON.stringify(_0x539175))), this.valid = false;
});
} catch (_0x2656d5) {
console.log(_0x2656d5);
}
}
async ["doTask"]() {
try {
await this.sign_daliy();
} catch (_0x515fb9) {
console.log(_0x515fb9);
}
}
}
!(async () => {
if (typeof $request !== "undefined") {
await _0x2024a5();
} else {
if (!(await _0x25bb93())) return;
console.log("\n================ 开始执行 ================\n作者幻生禁止倒卖\n注册地址非常感谢https://z1.ax1x.com/2023/10/17/piChdQH.png\n脚本仓库认准更新地址https://github.com/smallfawn/QLScriptPublic");
for (let _0x4f2e33 of _0x18bbd5) {
console.log("----------- 执行 第 [" + _0x4f2e33.index + "] 个账号 -----------");
await _0x4f2e33.RefreshToken();
}
let _0x6ece0c = _0x18bbd5.filter(_0x2edfdc => _0x2edfdc.valid);
if (_0x6ece0c.length > 0) {
{
console.log("\n================ 任务队列构建完毕 ================");
for (let _0x1b59b0 of _0x6ece0c) {
console.log("----------- 账号[" + _0x1b59b0.index + "] -----------");
await _0x1b59b0.doTask();
}
}
} else {
console.log("\n====幻生提示:无可用账号,请检查配置============ 任务结束 ================");
}
await _0x2c5ee3.showmsg();
}
})().catch(_0x4cdc29 => console.log(_0x4cdc29)).finally(() => _0x2c5ee3.done());
async function _0x2024a5() {}
function _0x5bb44c(_0x2600dc, _0x4406e7, _0x1e26bc) {
let _0xd1b387 = {},
_0x49a008 = {};
try {
_0xd1b387 = _0x86dc7f.readFileSync(_0x2600dc + ".json", "utf8");
_0x49a008 = JSON.parse(_0xd1b387);
} catch (_0x626fda) {}
_0x49a008[_0x4406e7] = _0x1e26bc;
const _0x232a65 = JSON.stringify(_0x49a008);
try {
_0x86dc7f.writeFileSync(_0x2600dc + ".json", _0x232a65);
} catch (_0x4603da) {
{
if (_0x4603da.code === "ENOENT") {
_0x86dc7f.writeFileSync(_0x2600dc + ".json", _0x232a65);
} else {
console.error("保存文件时发生错误:", _0x4603da);
}
}
}
}
function _0x4f0b0f(_0x412496, _0x14b4cf) {
try {
const _0x3cab3d = _0x86dc7f.readFileSync(_0x412496 + ".json", "utf8"),
_0x5ceb2a = JSON.parse(_0x3cab3d);
return _0x5ceb2a[_0x14b4cf];
} catch (_0x46344d) {
if (_0x46344d.code === "ENOENT") {
return undefined;
} else {
console.error("读取文件时发生错误:", _0x46344d);
}
}
}
async function _0x25bb93() {
if (_0x6bb841) {
let _0x4863b0 = _0x55a0cf[0];
for (let _0xb394dc of _0x55a0cf) {
{
if (_0x6bb841.indexOf(_0xb394dc) > -1) {
_0x4863b0 = _0xb394dc;
break;
}
}
}
for (let _0x3e5995 of _0x6bb841.split(_0x4863b0)) {
{
if (_0x3e5995) _0x18bbd5.push(new _0x57add7(_0x3e5995?.["split"]("#")));
}
}
userCount = _0x18bbd5.length;
} else {
console.log("未找到 配置信息,请检查是否配置 变量:", _0x1778c4);
return;
}
console.log("共找到" + userCount + "个账号");
return true;
}
async function _0x4a407b(_0xb326d3, _0x2deb03) {
httpErr = null;
httpReq = null;
httpResp = null;
return new Promise(_0x2d11b1 => {
_0x2c5ee3.send(_0xb326d3, _0x2deb03, async (_0x5950d0, _0x53d531, _0x3d1b29) => {
httpErr = _0x5950d0;
httpReq = _0x53d531;
httpResp = _0x3d1b29;
_0x2d11b1({
"err": _0x5950d0,
"req": _0x53d531,
"resp": _0x3d1b29
});
});
});
}
function _0x16e925(_0x1f9940, _0x1c147f) {
"undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0);
return new class {
constructor(_0x3d1489, _0x45584c) {
{
this.name = _0x3d1489;
this.notifyStr = "";
this.startTime = new Date().getTime();
Object.assign(this, _0x45584c);
console.log(this.name + " 开始运行:\n");
}
}
["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;
}
["getdata"](_0x1e7d3c) {
let _0x78169a = this.getval(_0x1e7d3c);
if (/^@/.test(_0x1e7d3c)) {
{
const [, _0x4c8217, _0x579fbb] = /^@(.*?)\.(.*?)$/.exec(_0x1e7d3c),
_0x18867a = _0x4c8217 ? this.getval(_0x4c8217) : "";
if (_0x18867a) try {
const _0x1e47b8 = JSON.parse(_0x18867a);
_0x78169a = _0x1e47b8 ? this.lodash_get(_0x1e47b8, _0x579fbb, "") : _0x78169a;
} catch (_0x3b2502) {
_0x78169a = "";
}
}
}
return _0x78169a;
}
["setdata"](_0x54829e, _0x445aad) {
let _0x1307d9 = false;
if (/^@/.test(_0x445aad)) {
const [, _0x431f1f, _0x15a6db] = /^@(.*?)\.(.*?)$/.exec(_0x445aad),
_0x380310 = this.getval(_0x431f1f),
_0x56d8a8 = _0x431f1f ? "null" === _0x380310 ? null : _0x380310 || "{}" : "{}";
try {
const _0x162c71 = JSON.parse(_0x56d8a8);
this.lodash_set(_0x162c71, _0x15a6db, _0x54829e);
_0x1307d9 = this.setval(JSON.stringify(_0x162c71), _0x431f1f);
} catch (_0x26326d) {
const _0x356dc1 = {};
this.lodash_set(_0x356dc1, _0x15a6db, _0x54829e);
_0x1307d9 = this.setval(JSON.stringify(_0x356dc1), _0x431f1f);
}
} else {
_0x1307d9 = this.setval(_0x54829e, _0x445aad);
}
return _0x1307d9;
}
["getval"](_0x1f9bea) {
return this.isSurge() || this.isLoon() ? $persistentStore.read(_0x1f9bea) : this.isQuanX() ? $prefs.valueForKey(_0x1f9bea) : this.isNode() ? (this.data = this.loaddata(), this.data[_0x1f9bea]) : this.data && this.data[_0x1f9bea] || null;
}
["setval"](_0x49a603, _0x31080a) {
return this.isSurge() || this.isLoon() ? $persistentStore.write(_0x49a603, _0x31080a) : this.isQuanX() ? $prefs.setValueForKey(_0x49a603, _0x31080a) : this.isNode() ? (this.data = this.loaddata(), this.data[_0x31080a] = _0x49a603, this.writedata(), true) : this.data && this.data[_0x31080a] || null;
}
["send"](_0x3009e2, _0x172a12, _0x6bbd77 = () => {}) {
if (_0x3009e2 != "get" && _0x3009e2 != "post" && _0x3009e2 != "put" && _0x3009e2 != "delete") {
console.log("无效的http方法" + _0x3009e2);
return;
}
if (_0x3009e2 == "get" && _0x172a12.headers) delete _0x172a12.headers["Content-Type"], delete _0x172a12.headers["Content-Length"];else {
if (_0x172a12.body && _0x172a12.headers) {
{
if (!_0x172a12.headers["Content-Type"]) _0x172a12.headers["Content-Type"] = "application/x-www-form-urlencoded";
}
}
}
if (this.isSurge() || this.isLoon()) {
this.isSurge() && this.isNeedRewrite && (_0x172a12.headers = _0x172a12.headers || {}, Object.assign(_0x172a12.headers, {
"X-Surge-Skip-Scripting": false
}));
let _0x2382c0 = {
"method": _0x3009e2,
"url": _0x172a12.url,
"headers": _0x172a12.headers,
"timeout": _0x172a12.timeout,
"data": _0x172a12.body
};
if (_0x3009e2 == "get") delete _0x2382c0.data;
$axios(_0x2382c0).then(_0x2b9d5c => {
const {
status: _0x2dfb09,
request: _0xe9fae1,
headers: _0x449d3c,
data: _0x5e4b23
} = _0x2b9d5c;
_0x6bbd77(null, _0xe9fae1, {
"statusCode": _0x2dfb09,
"headers": _0x449d3c,
"body": _0x5e4b23
});
}).catch(_0xe893ba => console.log(_0xe893ba));
} else {
if (this.isQuanX()) _0x172a12.method = _0x3009e2.toUpperCase(), this.isNeedRewrite && (_0x172a12.opts = _0x172a12.opts || {}, Object.assign(_0x172a12.opts, {
"hints": false
})), $task.fetch(_0x172a12).then(_0x5db606 => {
{
const {
statusCode: _0x696fe4,
request: _0x17e5a1,
headers: _0x45fcd2,
body: _0x16bbaa
} = _0x5db606;
_0x6bbd77(null, _0x17e5a1, {
"statusCode": _0x696fe4,
"headers": _0x45fcd2,
"body": _0x16bbaa
});
}
}, _0x504696 => _0x6bbd77(_0x504696));else {
if (this.isNode()) {
{
this.got = this.got ? this.got : require("got");
const {
url: _0x5b0415,
..._0x3f2b41
} = _0x172a12;
this.instance = this.got.extend({
"followRedirect": false,
"hooks": {
"beforeRequest": [_0x463820 => {
_0x463820.headers = Object.assign({}, _0x463820.headers, {});
}]
}
});
this.instance[_0x3009e2](_0x5b0415, _0x3f2b41).then(_0xbb33dd => {
const {
statusCode: _0x2b3568,
request: _0xb0f43f,
headers: _0x3e9766,
body: _0x45cec0
} = _0xbb33dd;
_0x6bbd77(null, _0xb0f43f, {
"statusCode": _0x2b3568,
"headers": _0x3e9766,
"body": _0x45cec0
});
}, _0x5466e0 => {
{
const {
message: _0x206425,
request: _0x25ab86,
response: _0xdb01e8
} = _0x5466e0;
_0x6bbd77(_0x206425, _0x25ab86, _0xdb01e8);
}
});
}
}
}
}
}
["time"](_0x5414c2, _0x2c0b5a = null) {
{
let _0x251dd2 = _0x2c0b5a ? new Date(_0x2c0b5a) : new Date(),
_0xb70116 = {
"M+": _0x251dd2.getMonth() + 1,
"d+": _0x251dd2.getDate(),
"h+": _0x251dd2.getHours(),
"m+": _0x251dd2.getMinutes(),
"s+": _0x251dd2.getSeconds(),
"q+": Math.floor((_0x251dd2.getMonth() + 3) / 3),
"S": _0x251dd2.getMilliseconds()
};
/(y+)/.test(_0x5414c2) && (_0x5414c2 = _0x5414c2.replace(RegExp.$1, (_0x251dd2.getFullYear() + "").substr(4 - RegExp.$1.length)));
for (let _0x287f0a in _0xb70116) new RegExp("(" + _0x287f0a + ")").test(_0x5414c2) && (_0x5414c2 = _0x5414c2.replace(RegExp.$1, 1 == RegExp.$1.length ? _0xb70116[_0x287f0a] : ("00" + _0xb70116[_0x287f0a]).substr(("" + _0xb70116[_0x287f0a]).length)));
return _0x5414c2;
}
}
async ["showmsg"]() {
if (!this.notifyStr) return;
let _0x41820a = this.name + " 运行通知\n\n" + this.notifyStr;
if (_0x2c5ee3.isNode()) {
var _0x63cdcc = require("./sendNotify");
console.log("\n============== 推送 ==============");
await _0x63cdcc.sendNotify(this.name, _0x41820a);
} else this.msg(_0x41820a);
}
["logAndNotify"](_0x5cb695) {
console.log(_0x5cb695);
this.notifyStr += _0x5cb695;
this.notifyStr += "\n";
}
["logAndNotifyWithTime"](_0x3775b9) {
let _0xf02487 = "[" + this.time("hh:mm:ss.S") + "]" + _0x3775b9;
console.log(_0xf02487);
this.notifyStr += _0xf02487;
this.notifyStr += "\n";
}
["logWithTime"](_0x4ffc16) {
console.log("[" + this.time("hh:mm:ss.S") + "]" + _0x4ffc16);
}
["msg"](_0x2d1661 = t, _0x4ad7b5 = "", _0x45a26f = "", _0x426041) {
const _0x423763 = _0x424db1 => {
if (!_0x424db1) return _0x424db1;
if ("string" == typeof _0x424db1) return this.isLoon() ? _0x424db1 : this.isQuanX() ? {
"open-url": _0x424db1
} : this.isSurge() ? {
"url": _0x424db1
} : undefined;
if ("object" == typeof _0x424db1) {
{
if (this.isLoon()) {
let _0x20d209 = _0x424db1.openUrl || _0x424db1.url || _0x424db1["open-url"],
_0xd532d9 = _0x424db1.mediaUrl || _0x424db1["media-url"];
return {
"openUrl": _0x20d209,
"mediaUrl": _0xd532d9
};
}
if (this.isQuanX()) {
{
let _0x4c1193 = _0x424db1["open-url"] || _0x424db1.url || _0x424db1.openUrl,
_0x3d2cf4 = _0x424db1["media-url"] || _0x424db1.mediaUrl;
return {
"open-url": _0x4c1193,
"media-url": _0x3d2cf4
};
}
}
if (this.isSurge()) {
let _0xc7d34e = _0x424db1.url || _0x424db1.openUrl || _0x424db1["open-url"];
return {
"url": _0xc7d34e
};
}
}
}
};
this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(_0x2d1661, _0x4ad7b5, _0x45a26f, _0x423763(_0x426041)) : this.isQuanX() && $notify(_0x2d1661, _0x4ad7b5, _0x45a26f, _0x423763(_0x426041)));
let _0x253529 = ["", "============== 系统通知 =============="];
_0x253529.push(_0x2d1661);
_0x4ad7b5 && _0x253529.push(_0x4ad7b5);
_0x45a26f && _0x253529.push(_0x45a26f);
console.log(_0x253529.join("\n"));
}
["getMin"](_0x5602e4, _0x2c31ee) {
return _0x5602e4 < _0x2c31ee ? _0x5602e4 : _0x2c31ee;
}
["getMax"](_0x2bc1b6, _0x11b977) {
return _0x2bc1b6 < _0x11b977 ? _0x11b977 : _0x2bc1b6;
}
["padStr"](_0x4bae34, _0x477169, _0x5bcafd = "0") {
let _0x2214d3 = String(_0x4bae34),
_0x5da1af = _0x477169 > _0x2214d3.length ? _0x477169 - _0x2214d3.length : 0,
_0x3de83d = "";
for (let _0x19167c = 0; _0x19167c < _0x5da1af; _0x19167c++) {
_0x3de83d += _0x5bcafd;
}
_0x3de83d += _0x2214d3;
return _0x3de83d;
}
["json2str"](_0x5130e0, _0x42b14c, _0xcd9b9d = false) {
let _0x1dac7c = [];
for (let _0x3355a1 of Object.keys(_0x5130e0).sort()) {
let _0x2fe663 = _0x5130e0[_0x3355a1];
if (_0x2fe663 && _0xcd9b9d) _0x2fe663 = encodeURIComponent(_0x2fe663);
_0x1dac7c.push(_0x3355a1 + "=" + _0x2fe663);
}
return _0x1dac7c.join(_0x42b14c);
}
["str2json"](_0x201b5c, _0x418cfb = false) {
{
let _0x1c03af = {};
for (let _0x222703 of _0x201b5c.split("&")) {
{
if (!_0x222703) continue;
let _0x12ba0e = _0x222703.indexOf("=");
if (_0x12ba0e == -1) continue;
let _0x53bf2c = _0x222703.substr(0, _0x12ba0e),
_0x5e9be8 = _0x222703.substr(_0x12ba0e + 1);
if (_0x418cfb) _0x5e9be8 = decodeURIComponent(_0x5e9be8);
_0x1c03af[_0x53bf2c] = _0x5e9be8;
}
}
return _0x1c03af;
}
}
["randomString"](_0x98a690, _0x49bf69 = "abcdef0123456789") {
{
let _0xd30c = "";
for (let _0x6bc475 = 0; _0x6bc475 < _0x98a690; _0x6bc475++) {
_0xd30c += _0x49bf69.charAt(Math.floor(Math.random() * _0x49bf69.length));
}
return _0xd30c;
}
}
["randomList"](_0x4c0004) {
{
let _0x5b785f = Math.floor(Math.random() * _0x4c0004.length);
return _0x4c0004[_0x5b785f];
}
}
["wait"](_0x1d4ae6) {
return new Promise(_0x4197a0 => setTimeout(_0x4197a0, _0x1d4ae6));
}
["done"](_0x8da243 = {}) {
const _0x2d6e02 = new Date().getTime(),
_0x25f9b3 = (_0x2d6e02 - this.startTime) / 1000;
console.log("\n" + this.name + " 运行结束,共运行了 " + _0x25f9b3 + " 秒!");
if (this.isSurge() || this.isQuanX() || this.isLoon()) $done(_0x8da243);
}
}(_0x1f9940, _0x1c147f);
}