mirror of
https://github.com/smallfawn/QLScriptPublic.git
synced 2025-12-16 23:09:38 +08:00
583 lines
22 KiB
JavaScript
583 lines
22 KiB
JavaScript
|
||
/**
|
||
* 商战网络签到V1.1
|
||
* cron 10 8,12 * * * 商战网络.js 一天5分满2元提现
|
||
* const $ = new Env("商战网络签到");
|
||
|
||
* ========= 青龙--配置文件 ===========
|
||
* # 项目名称
|
||
* export szwl='你抓包的token#你抓包的Client_ip'
|
||
* 你抓包的Client_ip可以为空,软件会随机生成一个ip(也就是:export szwl='你抓包的token')
|
||
* 新增提示:
|
||
* 格式支持以下几种,自己选:
|
||
* export szwl='就一个token'
|
||
* 或者 export szwl='你抓包的token#你抓包的Client_ip'
|
||
* 或者 export szwl='手机号#密码'(推荐这种,因为账号密码不会过期)
|
||
* 或者 export szwl='手机号#密码#你抓包的Client_ip'(推荐这种,因为账号密码不会过期)
|
||
|
||
* 自己抓包协议头上的Authorization
|
||
|
||
* 多账号换行或&隔开
|
||
|
||
* 奖励:签到得红包,满1提现
|
||
*
|
||
* ====================================
|
||
*
|
||
*/
|
||
//Sat Jan 25 2025 08:25:03 GMT+0000 (Coordinated Universal Time)
|
||
//Base:https://github.com/echo094/decode-js
|
||
//Modify:https://github.com/smallfawn/decode_action
|
||
const $ = new Env("商战网络签到");
|
||
let envParams = "szwl",
|
||
envSplitor = ["\n", "&"];
|
||
const fs = require("fs");
|
||
let authorizationToken = ($.isNode() ? process.env[envParams] : $.getdata(envParams)) || "",
|
||
initedJobForTokens = [],
|
||
currentUserIndex = 0;
|
||
class JobTask {
|
||
constructor(_0x321952) {
|
||
this.index = ++currentUserIndex;
|
||
this.points = 0;
|
||
this.valid = false;
|
||
try {
|
||
const _0xf52f29 = _0x321952?.["split"]("#");
|
||
_0xf52f29?.["length"] === 2 ? ([this.activedAuthToken, this.ip] = _0xf52f29, !isValidIP(this.ip) && ([this.account, this.password] = _0xf52f29, this.ip = "", this.activedAuthToken = "")) : ([this.account, this.password, this.ip] = _0xf52f29, this.activedAuthToken = "");
|
||
} catch (_0x8cdf76) {
|
||
this.activedAuthToken = _0x321952;
|
||
}
|
||
if (isValidIP(this.ip)) {} else {
|
||
{
|
||
this.ip = readValueFromFile(envParams + "_config", "fakeIp");
|
||
if (this.ip) {
|
||
console.log("账号[" + this.index + "]从缓存读取IP地址成功: " + this.ip);
|
||
return;
|
||
}
|
||
const _0x561a3f = generateRandomIP(true);
|
||
this.ip = _0x561a3f;
|
||
console.log("账号[" + this.index + "]未检测到设置的IP,开始随机生成一个: " + _0x561a3f);
|
||
saveValueToFile(envParams + "_config", "fakeIp", _0x561a3f);
|
||
}
|
||
}
|
||
}
|
||
async ["taskApi"](_0x339def, _0x14c334, _0x31cbec, _0x11dee4) {
|
||
let _0x50b064 = null;
|
||
try {
|
||
let _0x5c3a04 = _0x31cbec.replace("//", "/").split("/")[1],
|
||
_0x2cf074 = {
|
||
"url": _0x31cbec,
|
||
"headers": {
|
||
"User-Agent": "Mozilla/5.0 (Linux; Android 13; M2012K11AC Build/TKQ1.220829.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/107.0.5304.141 Mobile Safari/537.36 XWEB/5127 MMWEBSDK/20230504 MMWEBID/1105 MicroMessenger/8.0.37.2380(0x2800255B) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64",
|
||
"Host": _0x5c3a04,
|
||
"Connection": "Keep-Alive",
|
||
"Origin": "https://" + _0x5c3a04,
|
||
"Authorization": this.activedAuthToken,
|
||
"Referer": "https://www.qqkami.com/umobile/pages/Home/sign_in/sign_in",
|
||
"Client_ip": this.ip,
|
||
"X-forwarded-for": this.ip,
|
||
"accept-language": "zh-CN:zh;q=0.9",
|
||
"accept": "*/*"
|
||
},
|
||
"timeout": 60000
|
||
};
|
||
_0x11dee4 && (_0x2cf074.body = _0x11dee4, _0x2cf074.headers["content-length"] = _0x11dee4?.["length"], _0x2cf074.headers["Content-Type"] = "application/json");
|
||
await httpRequest(_0x14c334, _0x2cf074).then(async _0x4fb40f => {
|
||
_0x4fb40f.resp?.["statusCode"] == 200 ? _0x4fb40f.resp?.["body"] ? _0x50b064 = JSON.parse(_0x4fb40f.resp.body) : console.log("账号[" + this.index + "]调用" + _0x14c334 + "[" + _0x339def + "]出错,返回为空") : console.log("账号[" + this.index + "]调用" + _0x14c334 + "[" + _0x339def + "]出错,返回状态码[" + (_0x4fb40f.resp?.["statusCode"] || "") + "]");
|
||
});
|
||
} catch (_0x32b0b5) {
|
||
console.log(_0x32b0b5);
|
||
} finally {
|
||
return Promise.resolve(_0x50b064);
|
||
}
|
||
}
|
||
async ["Login"]() {
|
||
try {
|
||
{
|
||
let _0x31be00 = "Login",
|
||
_0x3d53e7 = "post",
|
||
_0x28a0f3 = "https://www.qqkami.com/mobile/User/accountLogin",
|
||
_0x36ee7f = "{\"mobile\":\"" + this.account + "\",\"password\":\"" + this.password + "\"}";
|
||
await this.taskApi(_0x31be00, _0x3d53e7, _0x28a0f3, _0x36ee7f).then(async _0x520e18 => {
|
||
if (_0x520e18.code === 200) this.valid = true, this.activedAuthToken = _0x520e18?.["data"]?.["token"], this.points = _0x520e18.data.income, console.log("账号[" + this.index + "] 登录成功");else {
|
||
$.logAndNotify("账号[" + this.index + "]登录失败:" + _0x520e18.msg);
|
||
}
|
||
});
|
||
}
|
||
} catch (_0x49065c) {
|
||
console.log(_0x49065c);
|
||
} finally {
|
||
return Promise.resolve(1);
|
||
}
|
||
}
|
||
async ["GetUserBalance"]() {
|
||
try {
|
||
let _0x57bb0c = "GetUserBalance",
|
||
_0x22e5da = "get",
|
||
_0x50de32 = "https://www.qqkami.com/mobile/UserCenter/getInfo",
|
||
_0x433551 = "";
|
||
await this.taskApi(_0x57bb0c, _0x22e5da, _0x50de32, _0x433551).then(async _0x5347fb => {
|
||
if (_0x5347fb.code === 200) {
|
||
this.valid = true;
|
||
this.points = _0x5347fb.data.income;
|
||
console.log("账号[" + this.index + "] 当前佣金: " + this.points);
|
||
} else {
|
||
$.logAndNotify("账号[" + this.index + "]查询佣金失败,可能帐号无效");
|
||
}
|
||
});
|
||
} catch (_0x52d760) {
|
||
console.log(_0x52d760);
|
||
} finally {
|
||
return Promise.resolve(1);
|
||
}
|
||
}
|
||
async ["SignInDaily"]() {
|
||
try {
|
||
let _0x1fd3c4 = "SignInDaily",
|
||
_0x52354d = "post",
|
||
_0x553bf1 = "https://www.qqkami.com/mobile/UserSign/sign",
|
||
_0x50854a = "{}";
|
||
await this.taskApi(_0x1fd3c4, _0x52354d, _0x553bf1, _0x50854a).then(async _0x36d6f8 => {
|
||
{
|
||
console.log("result:", _0x36d6f8);
|
||
if (_0x36d6f8.code === 200) console.log("账号[" + this.index + "] 签到成功,得到了多少钱懒得查,你猜?等我钱够了再看看能不能增加自动提现,先这样吧");else {
|
||
console.log("账号[" + this.index + "] 签到失败:" + _0x36d6f8?.["msg"]);
|
||
}
|
||
}
|
||
});
|
||
} catch (_0x5e2b62) {
|
||
console.log(_0x5e2b62);
|
||
} finally {
|
||
return Promise.resolve(1);
|
||
}
|
||
}
|
||
async ["doTask"]() {
|
||
try {
|
||
await waitSomeTime(1000);
|
||
console.log("\n============= 账号[" + this.index + "] 开始签到=============");
|
||
await this.SignInDaily();
|
||
} catch (_0x53e322) {
|
||
console.log(_0x53e322);
|
||
}
|
||
}
|
||
}
|
||
!(async () => {
|
||
if (typeof $request !== "undefined") {
|
||
await GetRewrite();
|
||
} else {
|
||
if (!(await checkEnv())) return;
|
||
console.log("\n================ 开始执行 ================");
|
||
for (let _0x1dd15c of initedJobForTokens) {
|
||
console.log("----------- 执行 第 [" + _0x1dd15c.index + "] 个账号 -----------");
|
||
_0x1dd15c.account && (await _0x1dd15c.Login());
|
||
await _0x1dd15c.GetUserBalance();
|
||
}
|
||
let _0x12010f = initedJobForTokens.filter(_0x36450b => _0x36450b.valid);
|
||
if (_0x12010f.length > 0) {
|
||
console.log("\n================ 任务队列构建完毕 ================");
|
||
for (let _0x30a1f1 of _0x12010f) {
|
||
console.log("----------- 账号[" + _0x30a1f1.index + "] -----------");
|
||
await _0x30a1f1.doTask();
|
||
}
|
||
} else console.log("\n================ 未检测到帐号,请先注册:https://www.qqkami.com?parent_code=917816 ================");
|
||
await $.showmsg();
|
||
}
|
||
})().catch(_0x6d06c2 => console.log(_0x6d06c2)).finally(() => $.done());
|
||
function isValidIP(_0x527f2a) {
|
||
const _0x3d78a1 = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
|
||
return _0x3d78a1.test(_0x527f2a);
|
||
}
|
||
function generateRandomIP(_0x3cd366 = true) {
|
||
const _0x36687c = _0x3cd366 ? "1.1.1.1" : "0.0.0.0",
|
||
_0x2a4761 = _0x3cd366 ? "223.255.255.255" : "255.255.255.255",
|
||
_0x1ea1fa = _0x36687c.split(".").map(Number),
|
||
_0x201ea0 = _0x2a4761.split(".").map(Number),
|
||
_0xc707c6 = _0x1ea1fa.map((_0xb937ff, _0x5ce7b3) => {
|
||
const _0x1066b6 = _0x201ea0[_0x5ce7b3];
|
||
return Math.floor(Math.random() * (_0x1066b6 - _0xb937ff + 1)) + _0xb937ff;
|
||
});
|
||
return _0xc707c6.join(".");
|
||
}
|
||
function saveValueToFile(_0x41737a, _0x4237dd, _0x324624) {
|
||
const _0x5a84f8 = {};
|
||
_0x5a84f8[_0x4237dd] = _0x324624;
|
||
const _0x3ac9f8 = JSON.stringify(_0x5a84f8);
|
||
try {
|
||
fs.writeFileSync(_0x41737a + ".json", _0x3ac9f8);
|
||
} catch (_0x44781d) {
|
||
_0x44781d.code === "ENOENT" ? fs.writeFileSync(_0x41737a + ".json", _0x3ac9f8) : console.error("保存文件时发生错误:", _0x44781d);
|
||
}
|
||
}
|
||
function readValueFromFile(_0x14867e, _0x2a03bd) {
|
||
try {
|
||
{
|
||
const _0x25b11b = fs.readFileSync(_0x14867e + ".json", "utf8"),
|
||
_0x35d86a = JSON.parse(_0x25b11b);
|
||
return _0x35d86a[_0x2a03bd];
|
||
}
|
||
} catch (_0x2f213e) {
|
||
if (_0x2f213e.code === "ENOENT") return undefined;else {
|
||
console.error("读取文件时发生错误:", _0x2f213e);
|
||
}
|
||
}
|
||
}
|
||
async function waitSomeTime(_0x15970 = 3000) {
|
||
console.log("----------- 延迟 " + _0x15970 / 1000 + " s,请稍等 -----------");
|
||
return await new Promise(_0x45b3bc => setTimeout(_0x45b3bc, _0x15970));
|
||
}
|
||
async function GetRewrite() {}
|
||
async function checkEnv() {
|
||
if (authorizationToken) {
|
||
let _0x16df9a = envSplitor[0];
|
||
for (let _0x5e5133 of envSplitor) {
|
||
if (authorizationToken.indexOf(_0x5e5133) > -1) {
|
||
_0x16df9a = _0x5e5133;
|
||
break;
|
||
}
|
||
}
|
||
for (let _0x2e8d92 of authorizationToken.split(_0x16df9a)) {
|
||
if (_0x2e8d92) initedJobForTokens.push(new JobTask(_0x2e8d92));
|
||
}
|
||
userCount = initedJobForTokens.length;
|
||
} else {
|
||
console.log("未找到 配置信息,请检查是否配置 变量:", envParams);
|
||
return;
|
||
}
|
||
console.log("共找到" + userCount + "个账号");
|
||
return true;
|
||
}
|
||
async function httpRequest(_0x3e5fe1, _0x53c55a) {
|
||
httpErr = null;
|
||
httpReq = null;
|
||
httpResp = null;
|
||
return new Promise(_0x42f16d => {
|
||
$.send(_0x3e5fe1, _0x53c55a, async (_0x4d229d, _0x3540f2, _0x2197fb) => {
|
||
httpErr = _0x4d229d;
|
||
httpReq = _0x3540f2;
|
||
httpResp = _0x2197fb;
|
||
_0x42f16d({
|
||
"err": _0x4d229d,
|
||
"req": _0x3540f2,
|
||
"resp": _0x2197fb
|
||
});
|
||
});
|
||
});
|
||
}
|
||
function Env(_0x2e2edc, _0xaf9573) {
|
||
"undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0);
|
||
return new class {
|
||
constructor(_0x528d58, _0x5623ab) {
|
||
this.name = _0x528d58;
|
||
this.notifyStr = "";
|
||
this.startTime = new Date().getTime();
|
||
Object.assign(this, _0x5623ab);
|
||
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"](_0x25b180) {
|
||
{
|
||
let _0x5620e7 = this.getval(_0x25b180);
|
||
if (/^@/.test(_0x25b180)) {
|
||
const [, _0x5829f2, _0x2ca6fa] = /^@(.*?)\.(.*?)$/.exec(_0x25b180),
|
||
_0xa30f22 = _0x5829f2 ? this.getval(_0x5829f2) : "";
|
||
if (_0xa30f22) try {
|
||
const _0x1e06d2 = JSON.parse(_0xa30f22);
|
||
_0x5620e7 = _0x1e06d2 ? this.lodash_get(_0x1e06d2, _0x2ca6fa, "") : _0x5620e7;
|
||
} catch (_0x21c3e4) {
|
||
_0x5620e7 = "";
|
||
}
|
||
}
|
||
return _0x5620e7;
|
||
}
|
||
}
|
||
["setdata"](_0x3d493b, _0x538660) {
|
||
let _0x35736f = false;
|
||
if (/^@/.test(_0x538660)) {
|
||
const [, _0x551cb4, _0x4cd412] = /^@(.*?)\.(.*?)$/.exec(_0x538660),
|
||
_0x4ccf62 = this.getval(_0x551cb4),
|
||
_0x1ab297 = _0x551cb4 ? "null" === _0x4ccf62 ? null : _0x4ccf62 || "{}" : "{}";
|
||
try {
|
||
const _0x4555ad = JSON.parse(_0x1ab297);
|
||
this.lodash_set(_0x4555ad, _0x4cd412, _0x3d493b);
|
||
_0x35736f = this.setval(JSON.stringify(_0x4555ad), _0x551cb4);
|
||
} catch (_0x482b16) {
|
||
const _0x147fe0 = {};
|
||
this.lodash_set(_0x147fe0, _0x4cd412, _0x3d493b);
|
||
_0x35736f = this.setval(JSON.stringify(_0x147fe0), _0x551cb4);
|
||
}
|
||
} else _0x35736f = this.setval(_0x3d493b, _0x538660);
|
||
return _0x35736f;
|
||
}
|
||
["getval"](_0x2ef2c9) {
|
||
return this.isSurge() || this.isLoon() ? $persistentStore.read(_0x2ef2c9) : this.isQuanX() ? $prefs.valueForKey(_0x2ef2c9) : this.isNode() ? (this.data = this.loaddata(), this.data[_0x2ef2c9]) : this.data && this.data[_0x2ef2c9] || null;
|
||
}
|
||
["setval"](_0x356d42, _0x313ffe) {
|
||
return this.isSurge() || this.isLoon() ? $persistentStore.write(_0x356d42, _0x313ffe) : this.isQuanX() ? $prefs.setValueForKey(_0x356d42, _0x313ffe) : this.isNode() ? (this.data = this.loaddata(), this.data[_0x313ffe] = _0x356d42, this.writedata(), true) : this.data && this.data[_0x313ffe] || null;
|
||
}
|
||
["send"](_0x2dc029, _0x4d5c7, _0x41f8d2 = () => {}) {
|
||
if (_0x2dc029 != "get" && _0x2dc029 != "post" && _0x2dc029 != "put" && _0x2dc029 != "delete") {
|
||
console.log("无效的http方法:" + _0x2dc029);
|
||
return;
|
||
}
|
||
if (_0x2dc029 == "get" && _0x4d5c7.headers) delete _0x4d5c7.headers["Content-Type"], delete _0x4d5c7.headers["Content-Length"];else {
|
||
if (_0x4d5c7.body && _0x4d5c7.headers) {
|
||
{
|
||
if (!_0x4d5c7.headers["Content-Type"]) _0x4d5c7.headers["Content-Type"] = "application/x-www-form-urlencoded";
|
||
}
|
||
}
|
||
}
|
||
if (this.isSurge() || this.isLoon()) {
|
||
this.isSurge() && this.isNeedRewrite && (_0x4d5c7.headers = _0x4d5c7.headers || {}, Object.assign(_0x4d5c7.headers, {
|
||
"X-Surge-Skip-Scripting": false
|
||
}));
|
||
let _0x21d29c = {
|
||
"method": _0x2dc029,
|
||
"url": _0x4d5c7.url,
|
||
"headers": _0x4d5c7.headers,
|
||
"timeout": _0x4d5c7.timeout,
|
||
"data": _0x4d5c7.body
|
||
};
|
||
if (_0x2dc029 == "get") delete _0x21d29c.data;
|
||
$axios(_0x21d29c).then(_0x4c56df => {
|
||
{
|
||
const {
|
||
status: _0x85b449,
|
||
request: _0x17bc19,
|
||
headers: _0x1002a0,
|
||
data: _0x1ed5b9
|
||
} = _0x4c56df;
|
||
_0x41f8d2(null, _0x17bc19, {
|
||
"statusCode": _0x85b449,
|
||
"headers": _0x1002a0,
|
||
"body": _0x1ed5b9
|
||
});
|
||
}
|
||
}).catch(_0x102b4f => console.log(_0x102b4f));
|
||
} else {
|
||
if (this.isQuanX()) {
|
||
_0x4d5c7.method = _0x2dc029.toUpperCase();
|
||
this.isNeedRewrite && (_0x4d5c7.opts = _0x4d5c7.opts || {}, Object.assign(_0x4d5c7.opts, {
|
||
"hints": false
|
||
}));
|
||
$task.fetch(_0x4d5c7).then(_0x1e60d1 => {
|
||
const {
|
||
statusCode: _0x4ad189,
|
||
request: _0x5e1c4b,
|
||
headers: _0x56d9ea,
|
||
body: _0xcb2776
|
||
} = _0x1e60d1;
|
||
_0x41f8d2(null, _0x5e1c4b, {
|
||
"statusCode": _0x4ad189,
|
||
"headers": _0x56d9ea,
|
||
"body": _0xcb2776
|
||
});
|
||
}, _0x836de0 => _0x41f8d2(_0x836de0));
|
||
} else {
|
||
if (this.isNode()) {
|
||
{
|
||
this.got = this.got ? this.got : require("got");
|
||
const {
|
||
url: _0x27d2c1,
|
||
..._0x3afab2
|
||
} = _0x4d5c7;
|
||
this.instance = this.got.extend({
|
||
"followRedirect": false
|
||
});
|
||
this.instance[_0x2dc029](_0x27d2c1, _0x3afab2).then(_0x4edbfb => {
|
||
const {
|
||
statusCode: _0x551862,
|
||
request: _0xd5dcf7,
|
||
headers: _0x6c6cb5,
|
||
body: _0x2804b4
|
||
} = _0x4edbfb;
|
||
_0x41f8d2(null, _0xd5dcf7, {
|
||
"statusCode": _0x551862,
|
||
"headers": _0x6c6cb5,
|
||
"body": _0x2804b4
|
||
});
|
||
}, _0x27d7c5 => {
|
||
{
|
||
const {
|
||
message: _0x5005b1,
|
||
request: _0x55c246,
|
||
response: _0x5aa1d1
|
||
} = _0x27d7c5;
|
||
_0x41f8d2(_0x5005b1, _0x55c246, _0x5aa1d1);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
["time"](_0x462247, _0x51c3c0 = null) {
|
||
{
|
||
let _0x3eae05 = _0x51c3c0 ? new Date(_0x51c3c0) : new Date(),
|
||
_0x5c7045 = {
|
||
"M+": _0x3eae05.getMonth() + 1,
|
||
"d+": _0x3eae05.getDate(),
|
||
"h+": _0x3eae05.getHours(),
|
||
"m+": _0x3eae05.getMinutes(),
|
||
"s+": _0x3eae05.getSeconds(),
|
||
"q+": Math.floor((_0x3eae05.getMonth() + 3) / 3),
|
||
"S": _0x3eae05.getMilliseconds()
|
||
};
|
||
/(y+)/.test(_0x462247) && (_0x462247 = _0x462247.replace(RegExp.$1, (_0x3eae05.getFullYear() + "").substr(4 - RegExp.$1.length)));
|
||
for (let _0xe1640f in _0x5c7045) new RegExp("(" + _0xe1640f + ")").test(_0x462247) && (_0x462247 = _0x462247.replace(RegExp.$1, 1 == RegExp.$1.length ? _0x5c7045[_0xe1640f] : ("00" + _0x5c7045[_0xe1640f]).substr(("" + _0x5c7045[_0xe1640f]).length)));
|
||
return _0x462247;
|
||
}
|
||
}
|
||
async ["showmsg"]() {
|
||
{
|
||
if (!this.notifyStr) return;
|
||
let _0x1b7e91 = this.name + " 运行通知\n\n" + this.notifyStr;
|
||
if ($.isNode()) {
|
||
{
|
||
var _0x41833d = require("./sendNotify");
|
||
console.log("\n============== 推送 ==============");
|
||
await _0x41833d.sendNotify(this.name, _0x1b7e91);
|
||
}
|
||
} else this.msg(_0x1b7e91);
|
||
}
|
||
}
|
||
["logAndNotify"](_0x488913) {
|
||
console.log(_0x488913);
|
||
this.notifyStr += _0x488913;
|
||
this.notifyStr += "\n";
|
||
}
|
||
["logAndNotifyWithTime"](_0x1ba822) {
|
||
{
|
||
let _0xb80445 = "[" + this.time("hh:mm:ss.S") + "]" + _0x1ba822;
|
||
console.log(_0xb80445);
|
||
this.notifyStr += _0xb80445;
|
||
this.notifyStr += "\n";
|
||
}
|
||
}
|
||
["logWithTime"](_0x5ea8c9) {
|
||
console.log("[" + this.time("hh:mm:ss.S") + "]" + _0x5ea8c9);
|
||
}
|
||
["msg"](_0x2e5f95 = t, _0x12dfda = "", _0x3efdde = "", _0x457114) {
|
||
{
|
||
const _0x5ec49d = _0x39e5c4 => {
|
||
{
|
||
if (!_0x39e5c4) return _0x39e5c4;
|
||
if ("string" == typeof _0x39e5c4) return this.isLoon() ? _0x39e5c4 : this.isQuanX() ? {
|
||
"open-url": _0x39e5c4
|
||
} : this.isSurge() ? {
|
||
"url": _0x39e5c4
|
||
} : undefined;
|
||
if ("object" == typeof _0x39e5c4) {
|
||
{
|
||
if (this.isLoon()) {
|
||
{
|
||
let _0x5997fa = _0x39e5c4.openUrl || _0x39e5c4.url || _0x39e5c4["open-url"],
|
||
_0x546a40 = _0x39e5c4.mediaUrl || _0x39e5c4["media-url"];
|
||
return {
|
||
"openUrl": _0x5997fa,
|
||
"mediaUrl": _0x546a40
|
||
};
|
||
}
|
||
}
|
||
if (this.isQuanX()) {
|
||
let _0x1687ce = _0x39e5c4["open-url"] || _0x39e5c4.url || _0x39e5c4.openUrl,
|
||
_0x4b6a40 = _0x39e5c4["media-url"] || _0x39e5c4.mediaUrl;
|
||
return {
|
||
"open-url": _0x1687ce,
|
||
"media-url": _0x4b6a40
|
||
};
|
||
}
|
||
if (this.isSurge()) {
|
||
let _0x2dbe0d = _0x39e5c4.url || _0x39e5c4.openUrl || _0x39e5c4["open-url"];
|
||
return {
|
||
"url": _0x2dbe0d
|
||
};
|
||
}
|
||
}
|
||
}
|
||
}
|
||
};
|
||
this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(_0x2e5f95, _0x12dfda, _0x3efdde, _0x5ec49d(_0x457114)) : this.isQuanX() && $notify(_0x2e5f95, _0x12dfda, _0x3efdde, _0x5ec49d(_0x457114)));
|
||
let _0x3d2a40 = ["", "============== 系统通知 =============="];
|
||
_0x3d2a40.push(_0x2e5f95);
|
||
_0x12dfda && _0x3d2a40.push(_0x12dfda);
|
||
_0x3efdde && _0x3d2a40.push(_0x3efdde);
|
||
console.log(_0x3d2a40.join("\n"));
|
||
}
|
||
}
|
||
["getMin"](_0x589a0b, _0x40bd64) {
|
||
return _0x589a0b < _0x40bd64 ? _0x589a0b : _0x40bd64;
|
||
}
|
||
["getMax"](_0x2d827a, _0x33778b) {
|
||
return _0x2d827a < _0x33778b ? _0x33778b : _0x2d827a;
|
||
}
|
||
["padStr"](_0x4d7afa, _0xcce158, _0x26b4c9 = "0") {
|
||
{
|
||
let _0x4045e2 = String(_0x4d7afa),
|
||
_0x3d1754 = _0xcce158 > _0x4045e2.length ? _0xcce158 - _0x4045e2.length : 0,
|
||
_0x58e6ea = "";
|
||
for (let _0x131d77 = 0; _0x131d77 < _0x3d1754; _0x131d77++) {
|
||
_0x58e6ea += _0x26b4c9;
|
||
}
|
||
_0x58e6ea += _0x4045e2;
|
||
return _0x58e6ea;
|
||
}
|
||
}
|
||
["json2str"](_0x2ff6ea, _0x3c3183, _0x3ceb0c = false) {
|
||
{
|
||
let _0x5c7ce3 = [];
|
||
for (let _0xc8c555 of Object.keys(_0x2ff6ea).sort()) {
|
||
let _0x2e9ea8 = _0x2ff6ea[_0xc8c555];
|
||
if (_0x2e9ea8 && _0x3ceb0c) _0x2e9ea8 = encodeURIComponent(_0x2e9ea8);
|
||
_0x5c7ce3.push(_0xc8c555 + "=" + _0x2e9ea8);
|
||
}
|
||
return _0x5c7ce3.join(_0x3c3183);
|
||
}
|
||
}
|
||
["str2json"](_0x3c6807, _0x1987d9 = false) {
|
||
{
|
||
let _0x51c564 = {};
|
||
for (let _0x3c3447 of _0x3c6807.split("&")) {
|
||
if (!_0x3c3447) continue;
|
||
let _0x537abe = _0x3c3447.indexOf("=");
|
||
if (_0x537abe == -1) continue;
|
||
let _0x4d62ae = _0x3c3447.substr(0, _0x537abe),
|
||
_0x1bf54f = _0x3c3447.substr(_0x537abe + 1);
|
||
if (_0x1987d9) _0x1bf54f = decodeURIComponent(_0x1bf54f);
|
||
_0x51c564[_0x4d62ae] = _0x1bf54f;
|
||
}
|
||
return _0x51c564;
|
||
}
|
||
}
|
||
["randomString"](_0x136e7d, _0xd4496c = "abcdef0123456789") {
|
||
{
|
||
let _0x50cf7e = "";
|
||
for (let _0x32cdcb = 0; _0x32cdcb < _0x136e7d; _0x32cdcb++) {
|
||
_0x50cf7e += _0xd4496c.charAt(Math.floor(Math.random() * _0xd4496c.length));
|
||
}
|
||
return _0x50cf7e;
|
||
}
|
||
}
|
||
["randomList"](_0x786fb7) {
|
||
let _0x11fea2 = Math.floor(Math.random() * _0x786fb7.length);
|
||
return _0x786fb7[_0x11fea2];
|
||
}
|
||
["wait"](_0x41e8e8) {
|
||
return new Promise(_0x2b9afb => setTimeout(_0x2b9afb, _0x41e8e8));
|
||
}
|
||
["done"](_0x42ad6d = {}) {
|
||
const _0x2075ca = new Date().getTime(),
|
||
_0x5cd3f6 = (_0x2075ca - this.startTime) / 1000;
|
||
console.log("\n" + this.name + " 运行结束,共运行了 " + _0x5cd3f6 + " 秒!");
|
||
if (this.isSurge() || this.isQuanX() || this.isLoon()) $done(_0x42ad6d);
|
||
}
|
||
}(_0x2e2edc, _0xaf9573);
|
||
} |