diff --git a/output.js b/output.js
index 64a220f..553635c 100644
--- a/output.js
+++ b/output.js
@@ -1,2002 +1,1713 @@
-var _0xodA = "jsjiami.com.v6";
-function _0x2d77(_0x390e9d, _0x40a25a) {
- _0x390e9d = ~~"0x".concat(_0x390e9d.slice(0));
- var _0x9cab8c = _0x49aa[_0x390e9d];
- return _0x9cab8c;
-}
-(function (_0x74e331, _0xd89a0) {
- var _0x32115a = 0;
- for (_0xd89a0 = _0x74e331.shift(_0x32115a >> 2); _0xd89a0 && _0xd89a0 !== (_0x74e331.pop(_0x32115a >> 3) + "").replace(/[yKYdTBZMuCxhn=]/g, ""); _0x32115a++) {
- _0x32115a = _0x32115a ^ 1389316;
- }
-})(_0x49aa, _0x2d77);
-(function (_0x24aa09, _0x2cb0eb) {
- _0x24aa09[_0x2d77("0")] = _0x2d77("1");
- _0x2cb0eb[_0x2d77("2")] = _0x2d77("3");
- _0x2cb0eb[_0x2d77("4")] = _0x2d77("5");
-})(window, document);
-_0xodA = "jsjiami.com.v6";
-const _0x49dfef = _0x5370a4("电信营业厅"),
- _0x8e0885 = require("got"),
- _0x203c4a = require("path"),
- {
- exec: _0x3898d1
- } = require("child_process"),
- {
- CookieJar: _0x4f58d7
- } = require("tough-cookie"),
- _0x5336b3 = require("fs"),
- _0x5e650c = require("crypto-js"),
- _0x22f09c = "chinaTelecom",
- _0x1876a7 = /[\n\&\@]/,
- _0x4aec53 = [_0x22f09c + "Account"],
- _0x128624 = 30000,
- _0x5a04a9 = 3;
-const _0x1736e2 = _0x22f09c + "Rpc",
- _0x16d3ea = process.env[_0x1736e2],
- _0xf4231c = 6.02,
- _0x14f289 = "chinaTelecom",
- _0x100b57 = "https://leafxcy.coding.net/api/user/leafxcy/project/validcode/shared-depot/validCode/git/blob/master/code.json",
- _0x344953 = "JinDouMall";
-let _0x1d3d6d = {};
-const _0x5370da = "./chinaTelecom_cache.json",
- _0x3ed712 = "Mozilla/5.0 (Linux; U; Android 12; zh-cn; ONEPLUS A9000 Build/QKQ1.190716.003) AppleWebKit/533.1 (KHTML, like Gecko) Version/5.0 Mobile Safari/533.1",
- _0x75a069 = "34d7cb0bcdf07523",
- _0x2304b1 = "1234567`90koiuyhgtfrdewsaqaqsqde",
- _0x1110eb = "\0\0\0\0\0\0\0\0",
- _0x3c561e = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBkLT15ThVgz6/NOl6s8GNPofdWzWbCkWnkaAm7O2LjkM1H7dMvzkiqdxU02jamGRHLX/ZNMCXHnPcW/sDhiFCBN18qFvy8g6VYb9QtroI09e176s+ZCtiv7hbin2cCTj99iUpnEloZm19lwHyo69u5UMiPMpq0/XKBO8lYhN/gwIDAQAB",
- _0x1e9565 = "-----BEGIN PUBLIC KEY-----\n" + _0x3c561e + "\n-----END PUBLIC KEY-----",
- _0x516f15 = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+ugG5A8cZ3FqUKDwM57GM4io6JGcStivT8UdGt67PEOihLZTw3P7371+N47PrmsCpnTRzbTgcupKtUv8ImZalYk65dU8rjC/ridwhw9ffW2LBwvkEnDkkKKRi2liWIItDftJVBiWOh17o6gfbPoNrWORcAdcbpk2L+udld5kZNwIDAQAB",
- _0x4995b7 = "-----BEGIN PUBLIC KEY-----\n" + _0x516f15 + "\n-----END PUBLIC KEY-----",
- _0x51cf70 = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIPOHtjs6p4sTlpFvrx+ESsYkEvyT4JB/dcEbU6C8+yclpcmWEvwZFymqlKQq89laSH4IxUsPJHKIOiYAMzNibhED1swzecH5XLKEAJclopJqoO95o8W63Euq6K+AKMzyZt1SEqtZ0mXsN8UPnuN/5aoB3kbPLYpfEwBbhto6yrwIDAQAB",
- _0x2e5ddf = "-----BEGIN PUBLIC KEY-----\n" + _0x51cf70 + "\n-----END PUBLIC KEY-----",
- _0xc38e90 = require("node-rsa");
-let _0x13a631 = new _0xc38e90(_0x1e9565);
-const _0x4386dc = {
- encryptionScheme: "pkcs1"
-};
-_0x13a631.setOptions(_0x4386dc);
-let _0x47bb4b = new _0xc38e90(_0x4995b7);
-const _0xe2cacf = {
- encryptionScheme: "pkcs1"
-};
-_0x47bb4b.setOptions(_0xe2cacf);
-let _0x5b4189 = new _0xc38e90(_0x2e5ddf);
-const _0x3ab892 = {
- encryptionScheme: "pkcs1"
-};
-_0x5b4189.setOptions(_0x3ab892);
-const _0x131d2d = [202201, 202202, 202203],
- _0x3c685e = 5;
-function _0x1519a6(_0xa8ae5c, _0x459aac, _0x58d61f, _0xa81bc3, _0x5af061, _0x3eaf32) {
- return _0x5e650c[_0xa8ae5c].encrypt(_0x5e650c.enc.Utf8.parse(_0xa81bc3), _0x5e650c.enc.Utf8.parse(_0x5af061), {
- mode: _0x5e650c.mode[_0x459aac],
- padding: _0x5e650c.pad[_0x58d61f],
- iv: _0x5e650c.enc.Utf8.parse(_0x3eaf32)
- }).ciphertext.toString(_0x5e650c.enc.Hex);
-}
-function _0x436a1e(_0x5007ed, _0x18814d, _0x38ebb6, _0x4281ff, _0x1bafc9, _0x3aac70) {
- return _0x5e650c[_0x5007ed].decrypt({
- ciphertext: _0x5e650c.enc.Hex.parse(_0x4281ff)
- }, _0x5e650c.enc.Utf8.parse(_0x1bafc9), {
- mode: _0x5e650c.mode[_0x18814d],
- padding: _0x5e650c.pad[_0x38ebb6],
- iv: _0x5e650c.enc.Utf8.parse(_0x3aac70)
- }).toString(_0x5e650c.enc.Utf8);
-}
-function _0x4e4355() {
- try {
- _0x5336b3.writeFileSync(_0x5370da, JSON.stringify(_0x1d3d6d, null, 4), "utf-8");
- } catch (_0x1c3791) {
- console.log("保存缓存出错");
- }
-}
-function _0xa0ff1b() {
- try {
- _0x1d3d6d = JSON.parse(_0x5336b3.readFileSync(_0x5370da, "utf-8"));
- } catch (_0x125821) {
- console.log("读取缓存出错, 新建一个token缓存");
- _0x4e4355();
- }
-}
-let _0x300c8e = 0,
- _0xdb6efe = 0;
-function _0x11cae0() {
- _0xdb6efe = 1;
- process.on("SIGTERM", () => {
- _0xdb6efe = 2;
- process.exit(0);
- });
- const _0x377b8a = _0x203c4a.basename(process.argv[1]),
- _0x39bc5b = ["bash", "timeout", "grep"];
- let _0x4fe84e = ["ps afx"];
- _0x4fe84e.push("grep " + _0x377b8a);
- _0x4fe84e = _0x4fe84e.concat(_0x39bc5b.map(_0x425dac => "grep -v \"" + _0x425dac + " \""));
- _0x4fe84e.push("wc -l");
- const _0x401932 = _0x4fe84e.join("|"),
- _0x134226 = () => {
- _0x3898d1(_0x401932, (_0x26b41f, _0x817890, _0x4eca1a) => {
- if (_0x26b41f || _0x4eca1a) {
- return;
- }
- _0x300c8e = parseInt(_0x817890.trim(), 10);
- });
- if (_0xdb6efe == 1) {
- setTimeout(_0x134226, 2000);
- }
- };
- _0x134226();
-}
-class _0x9d1851 {
- constructor() {
- this.index = _0x49dfef.userIdx++;
- this.name = "";
- this.valid = false;
- const _0x46f57a = {
- limit: 0
- };
- const _0x42e66e = {
- Connection: "keep-alive"
- };
- const _0x1612bd = {
- retry: _0x46f57a,
- timeout: _0x128624,
- followRedirect: false,
- ignoreInvalidCookies: true,
- headers: _0x42e66e
- };
- this.got = _0x8e0885.extend(_0x1612bd);
- if (_0xdb6efe == 0) {
- _0x11cae0();
- }
- }
- log(_0x42a357, _0x32d0cc = {}) {
- var _0x58117c = "",
- _0x9ca0e2 = _0x49dfef.userCount.toString().length;
- if (this.index) {
- _0x58117c += "账号[" + _0x49dfef.padStr(this.index, _0x9ca0e2) + "]";
- }
- if (this.name) {
- _0x58117c += "[" + this.name + "]";
- }
- _0x49dfef.log(_0x58117c + _0x42a357, _0x32d0cc);
- }
- set_cookie(_0x309397, _0x3ab012, _0x4a8547, _0x1320cb, _0x482400 = {}) {
- this.cookieJar.setCookieSync(_0x309397 + "=" + _0x3ab012 + "; Domain=" + _0x4a8547 + ";", "" + _0x1320cb);
- }
- async request(_0x29ad8a) {
- const _0x58b4a1 = ["ECONNRESET", "EADDRINUSE", "ENOTFOUND", "EAI_AGAIN"],
- _0x497c09 = ["TimeoutError"],
- _0x54807f = ["EPROTO"],
- _0x30eee7 = [];
- var _0x208a74 = null,
- _0x3a35d0 = 0,
- _0x1684d3 = _0x29ad8a.fn || _0x29ad8a.url;
- let _0x25d788 = _0x49dfef.get(_0x29ad8a, "valid_code", _0x30eee7);
- _0x29ad8a.method = _0x29ad8a?.["method"]?.["toUpperCase"]() || "GET";
- let _0x19ce7b, _0x5c8c40;
- while (_0x3a35d0 < _0x5a04a9) {
- try {
- _0x3a35d0++;
- _0x19ce7b = "";
- _0x5c8c40 = "";
- let _0x1fa216 = null,
- _0x123eec = _0x29ad8a?.["timeout"] || this.got?.["defaults"]?.["options"]?.["timeout"]?.["request"] || _0x128624,
- _0x34e77b = false,
- _0x5397b0 = Math.max(this.index - 2, 0),
- _0x5d25e7 = Math.min(Math.max(this.index - 3, 1), 3),
- _0x52755a = Math.min(Math.max(this.index - 4, 1), 4),
- _0x15d328 = _0x5397b0 * _0x5d25e7 * _0x52755a * 400,
- _0x2c4c80 = _0x5397b0 * _0x5d25e7 * _0x52755a * 1800,
- _0x4cfee0 = _0x15d328 + Math.floor(Math.random() * _0x2c4c80),
- _0x15dce7 = _0x300c8e * (_0x300c8e - 1) * 2000,
- _0x5ca50a = (_0x300c8e - 1) * (_0x300c8e - 1) * 2000,
- _0x333735 = _0x15dce7 + Math.floor(Math.random() * _0x5ca50a),
- _0x573d35 = Math.max(_0x49dfef.userCount - 2, 0),
- _0x25871d = Math.max(_0x49dfef.userCount - 3, 0),
- _0x34f531 = _0x573d35 * 200,
- _0x1bd293 = _0x25871d * 400,
- _0x4845e7 = _0x34f531 + Math.floor(Math.random() * _0x1bd293),
- _0x5dc50f = _0x4cfee0 + _0x333735 + _0x4845e7;
- await _0x49dfef.wait(_0x5dc50f);
- await new Promise(async _0x45b1d3 => {
- setTimeout(() => {
- _0x34e77b = true;
- _0x45b1d3();
- }, _0x123eec);
- await this.got(_0x29ad8a).then(_0x284c2a => {
- _0x208a74 = _0x284c2a;
- }, _0x55b6b8 => {
- _0x1fa216 = _0x55b6b8;
- _0x208a74 = _0x55b6b8.response;
- _0x19ce7b = _0x1fa216?.["code"] || "";
- _0x5c8c40 = _0x1fa216?.["name"] || "";
- });
- _0x45b1d3();
- });
- if (_0x34e77b) {
- this.log("[" + _0x1684d3 + "]请求超时(" + _0x123eec / 1000 + "秒),重试第" + _0x3a35d0 + "次");
- } else {
- if (_0x54807f.includes(_0x19ce7b)) {
- this.log("[" + _0x1684d3 + "]请求错误[" + _0x19ce7b + "][" + _0x5c8c40 + "]");
- if (_0x1fa216?.["message"]) {
- console.log(_0x1fa216.message);
- }
- break;
- } else {
- if (_0x497c09.includes(_0x5c8c40)) {
- this.log("[" + _0x1684d3 + "]请求错误[" + _0x19ce7b + "][" + _0x5c8c40 + "],重试第" + _0x3a35d0 + "次");
- } else {
- if (_0x58b4a1.includes(_0x19ce7b)) {
- this.log("[" + _0x1684d3 + "]请求错误[" + _0x19ce7b + "][" + _0x5c8c40 + "],重试第" + _0x3a35d0 + "次");
- } else {
- let _0x42b498 = _0x208a74?.["statusCode"] || "",
- _0x2ef704 = _0x42b498 / 100 | 0;
- if (_0x42b498) {
- _0x2ef704 > 3 && !_0x25d788.includes(_0x42b498) && (_0x42b498 ? this.log("请求[" + _0x1684d3 + "]返回[" + _0x42b498 + "]") : this.log("请求[" + _0x1684d3 + "]错误[" + _0x19ce7b + "][" + _0x5c8c40 + "]"));
- if (_0x2ef704 <= 4) {
- break;
- }
- } else {
- this.log("请求[" + _0x1684d3 + "]错误[" + _0x19ce7b + "][" + _0x5c8c40 + "]");
- }
- }
- }
- }
- }
- } catch (_0xa3ad4) {
- _0xa3ad4.name == "TimeoutError" ? this.log("[" + _0x1684d3 + "]请求超时,重试第" + _0x3a35d0 + "次") : this.log("[" + _0x1684d3 + "]请求错误(" + _0xa3ad4.message + "),重试第" + _0x3a35d0 + "次");
- }
- }
- const _0x14f89a = {
- statusCode: _0x19ce7b || -1,
- headers: null,
- result: null
- };
- if (_0x208a74 == null) {
- return Promise.resolve(_0x14f89a);
- }
- let {
- statusCode: _0x4f50c8,
- headers: _0x4fdc35,
- body: _0x4bfa21
- } = _0x208a74;
- if (_0x4bfa21) {
- try {
- _0x4bfa21 = JSON.parse(_0x4bfa21);
- } catch {}
- }
- const _0x5d1199 = {
- statusCode: _0x4f50c8,
- headers: _0x4fdc35,
- result: _0x4bfa21
- };
- return Promise.resolve(_0x5d1199);
- }
-}
-let _0x280825 = _0x9d1851;
-try {
- let _0x236d58 = require("./LocalBasic");
- _0x280825 = _0x236d58;
-} catch {}
-let _0x3b1630 = new _0x280825(_0x49dfef);
-class _0x3f433d extends _0x280825 {
- constructor(_0x5669ce) {
- super(_0x49dfef);
- let _0x28f602 = _0x5669ce.split("#");
- this.name = _0x28f602[0];
- this.passwd = _0x28f602?.[1] || "";
- this.uuid = [_0x49dfef.randomPattern("xxxxxxxx"), _0x49dfef.randomPattern("xxxx"), _0x49dfef.randomPattern("4xxx"), _0x49dfef.randomPattern("xxxx"), _0x49dfef.randomPattern("xxxxxxxxxxxx")];
- this.cookieJar = new _0x4f58d7();
- this.can_feed = true;
- this.jml_tokenFlag = "";
- this.mall_token = "";
- const _0x1effd8 = {
- Connection: "keep-alive",
- "User-Agent": _0x3ed712
- };
- this.got = this.got.extend({
- cookieJar: this.cookieJar,
- headers: _0x1effd8
- });
- }
- load_token() {
- let _0x2f4a66 = false;
- _0x1d3d6d[this.name] && (this.userId = _0x1d3d6d[this.name].userId, this.token = _0x1d3d6d[this.name].token, this.log("读取到缓存token"), _0x2f4a66 = true);
- return _0x2f4a66;
- }
- encode_phone() {
- let _0xd2389f = this.name.split("");
- for (let _0x51660a in _0xd2389f) {
- _0xd2389f[_0x51660a] = String.fromCharCode(_0xd2389f[_0x51660a].charCodeAt(0) + 2);
- }
- return _0xd2389f.join("");
- }
- encode_aes(_0x53e9bb) {
- return _0x1519a6("AES", "ECB", "Pkcs7", _0x53e9bb, _0x75a069, 0);
- }
- get_mall_headers() {
- return {
- "Content-Type": "application/json;charset=utf-8",
- Accept: "application/json, text/javascript, */*; q=0.01",
- Authorization: this.mall_token ? "Bearer " + this.mall_token : "",
- "X-Requested-With": "XMLHttpRequest"
- };
- }
- async login(_0x2971d3 = {}) {
- let _0x22cd07 = false;
- try {
- let _0x3ae9d0 = _0x49dfef.time("yyyyMMddhhmmss"),
- _0x16bc9b = "iPhone 14 15.4." + this.uuid.slice(0, 2).join("") + this.name + _0x3ae9d0 + this.passwd + "0$$$0.",
- _0x807c6e = {
- fn: "login",
- method: "post",
- url: "https://appgologin.189.cn:9031/login/client/userLoginNormal",
- json: {
- headerInfos: {
- code: "userLoginNormal",
- timestamp: _0x3ae9d0,
- broadAccount: "",
- broadToken: "",
- clientType: "#9.6.1#channel50#iPhone 14 Pro Max#",
- shopId: "20002",
- source: "110003",
- sourcePassword: "Sid98s",
- token: "",
- userLoginName: this.name
- },
- content: {
- attach: "test",
- fieldData: {
- loginType: "4",
- accountType: "",
- loginAuthCipherAsymmertric: _0x13a631.encrypt(_0x16bc9b, "base64"),
- deviceUid: this.uuid.slice(0, 3).join(""),
- phoneNum: this.encode_phone(),
- isChinatelecom: "0",
- systemVersion: "15.4.0",
- authentication: this.passwd
- }
- }
- }
- },
- {
- result: _0x3cbd6a,
- statusCode: _0x4338ff
- } = await this.request(_0x807c6e),
- _0x107431 = _0x49dfef.get(_0x3cbd6a?.["responseData"], "resultCode", -1);
- if (_0x107431 == "0000") {
- let {
- userId = "",
- token = ""
- } = _0x3cbd6a?.["responseData"]?.["data"]?.["loginSuccessResult"] || {};
- this.userId = userId;
- this.token = token;
- this.log("使用服务密码登录成功");
- _0x1d3d6d[this.name] = {
- token: token,
- userId: userId,
- t: Date.now()
- };
- _0x4e4355();
- _0x22cd07 = true;
- } else {
- let _0xf8ba30 = _0x3cbd6a?.["msg"] || _0x3cbd6a?.["responseData"]?.["resultDesc"] || _0x3cbd6a?.["headerInfos"]?.["reason"] || "";
- this.log("服务密码登录失败[" + _0x107431 + "]: " + _0xf8ba30);
- }
- } catch (_0x576f6c) {
- console.log(_0x576f6c);
- } finally {
- return _0x22cd07;
- }
- }
- async get_ticket(_0x3e5067 = {}) {
- let _0x252ee2 = "";
- try {
- let _0x21dd20 = "\n \n \n getSingle\n " + _0x49dfef.time("yyyyMMddhhmmss") + "\n \n \n #9.6.1#channel50#iPhone 14 Pro Max#\n 20002\n 110003\n Sid98s\n " + this.token + "\n " + this.name + "\n \n \n test\n \n " + _0x1519a6("TripleDES", "CBC", "Pkcs7", this.userId, _0x2304b1, _0x1110eb) + "\n 4a6862274835b451\n \n \n ";
- let _0x2990d1 = {
- fn: "get_ticket",
- method: "post",
- url: "https://appgologin.189.cn:9031/map/clientXML",
- body: _0x21dd20
- },
- {
- result: _0x9f4220,
- statusCode: _0x1e891f
- } = await this.request(_0x2990d1);
- if (_0x9f4220) {
- let _0x18f397 = _0x9f4220.match(/\(\w+)\<\/Ticket\>/);
- if (_0x18f397) {
- let _0x2c4653 = _0x18f397[1];
- _0x252ee2 = _0x436a1e("TripleDES", "CBC", "Pkcs7", _0x2c4653, _0x2304b1, _0x1110eb);
- this.ticket = _0x252ee2;
- }
- }
- !_0x252ee2 && (!_0x3e5067.retry && (await this.login()) ? (_0x3e5067.retry = true, _0x252ee2 = await this.get_ticket(_0x3e5067)) : (this.log("没有获取到ticket[" + _0x1e891f + "]: "), _0x9f4220 && this.log(": " + JSON.stringify(_0x9f4220))));
- } catch (_0x1c9e54) {
- console.log(_0x1c9e54);
- } finally {
- return _0x252ee2;
- }
- }
- async get_sign(_0x9b96be = {}) {
- let _0x10c0cb = false;
- try {
- const _0x59fe75 = {
- ticket: this.ticket
- };
- let _0x269bf2 = {
- fn: "login",
- method: "get",
- url: "https://wapside.189.cn:9001/jt-sign/ssoHomLogin",
- searchParams: _0x59fe75
- },
- {
- result: _0x36bbb6,
- statusCode: _0x3a8945
- } = await this.request(_0x269bf2),
- _0xe3542d = _0x49dfef.get(_0x36bbb6, "resoultCode", _0x3a8945);
- _0xe3542d == 0 ? (_0x10c0cb = _0x36bbb6?.["sign"], this.sign = _0x10c0cb, this.got = this.got.extend({
- headers: {
- sign: this.sign
- }
- })) : this.log("获取sign失败[" + _0xe3542d + "]: " + _0x36bbb6);
- } catch (_0x44161f) {
- console.log(_0x44161f);
- } finally {
- return _0x10c0cb;
- }
- }
- encrypt_para(_0x217db5) {
- let _0x1c768f = typeof _0x217db5 == "string" ? _0x217db5 : JSON.stringify(_0x217db5);
- return _0x47bb4b.encrypt(_0x1c768f, "hex");
- }
- async userCoinInfo(_0x3a27b0 = false, _0x2a9f2e = {}) {
- try {
- let _0x12feeb = {
- phone: this.name
- },
- _0x55424b = {
- fn: "userCoinInfo",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/api/home/userCoinInfo",
- json: {
- para: this.encrypt_para(_0x12feeb)
- }
- },
- {
- result: _0x18ad00,
- statusCode: _0x3e695c
- } = await this.request(_0x55424b),
- _0x474131 = _0x49dfef.get(_0x18ad00, "resoultCode", _0x3e695c);
- if (_0x474131 == 0) {
- this.coin = _0x18ad00?.["totalCoin"] || 0;
- if (_0x3a27b0) {
- const _0x3a5985 = {
- notify: true
- };
- this.log("金豆余额: " + this.coin, _0x3a5985);
- if (_0x18ad00.amountEx) {
- let _0x5b7bde = _0x49dfef.time("yyyy-MM-dd", _0x18ad00.expireDate);
- const _0x359049 = {
- notify: true
- };
- _0x49dfef.log("-- [" + _0x5b7bde + "]将过期" + _0x18ad00.amountEx + "金豆", _0x359049);
- }
- }
- } else {
- let _0x4e7123 = _0x18ad00?.["msg"] || _0x18ad00?.["resoultMsg"] || _0x18ad00?.["error"] || "";
- this.log("查询账户金豆余额错误[" + _0x474131 + "]: " + _0x4e7123);
- }
- } catch (_0x4d1b75) {
- console.log(_0x4d1b75);
- }
- }
- async userStatusInfo(_0x10c627 = {}) {
- try {
- let _0x219924 = {
- phone: this.name
- },
- _0x16b897 = {
- fn: "userStatusInfo",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/api/home/userStatusInfo",
- json: {
- para: this.encrypt_para(_0x219924)
- }
- };
- {
- let {
- result: _0x39cfe5,
- statusCode: _0x5e556e
- } = await this.request(_0x49dfef.copy(_0x16b897)),
- _0x509ab0 = _0x49dfef.get(_0x39cfe5, "resoultCode", _0x5e556e);
- if (_0x509ab0 == 0) {
- let {
- isSign: _0x1d403c
- } = _0x39cfe5?.["data"];
- _0x1d403c ? this.log("今天已签到") : await this.doSign();
- } else {
- let _0x11bda2 = _0x39cfe5?.["msg"] || _0x39cfe5?.["resoultMsg"] || _0x39cfe5?.["error"] || "";
- this.log("查询账户签到状态错误[" + _0x509ab0 + "]: " + _0x11bda2);
- }
- }
- {
- let {
- result: _0xf4c969,
- statusCode: _0x34b777
- } = await this.request(_0x49dfef.copy(_0x16b897)),
- _0x4d9c85 = _0x49dfef.get(_0xf4c969, "resoultCode", _0x34b777);
- if (_0x4d9c85 == 0) {
- let {
- continuousDay: _0x33365d,
- signDay: _0x128cf2,
- isSeven: _0x3fa455
- } = _0xf4c969?.["data"];
- this.log("已签到" + _0x128cf2 + "天, 连签" + _0x33365d + "天");
- _0x3fa455 && (await this.exchangePrize());
- } else {
- let _0xc36b81 = _0xf4c969?.["msg"] || _0xf4c969?.["resoultMsg"] || _0xf4c969?.["error"] || "";
- this.log("查询账户签到状态错误[" + _0x4d9c85 + "]: " + _0xc36b81);
- }
- }
- } catch (_0x103f04) {
- console.log(_0x103f04);
- }
- }
- async continueSignDays(_0x3e553e = {}) {
- try {
- let _0x124dfb = {
- phone: this.name
- },
- _0x215fff = {
- fn: "continueSignDays",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/continueSignDays",
- json: {
- para: this.encrypt_para(_0x124dfb)
- }
- },
- {
- result: _0x6e6187,
- statusCode: _0x257d59
- } = await this.request(_0x215fff),
- _0x912371 = _0x49dfef.get(_0x6e6187, "resoultCode", _0x257d59);
- if (_0x912371 == 0) {
- this.log("抽奖连签天数: " + (_0x6e6187?.["continueSignDays"] || 0) + "天");
- if (_0x6e6187?.["continueSignDays"] == 15) {
- const _0x207b02 = {
- type: "15"
- };
- await this.exchangePrize(_0x207b02);
- } else {
- if (_0x6e6187?.["continueSignDays"] == 28) {
- const _0x1f691c = {
- type: "28"
- };
- await this.exchangePrize(_0x1f691c);
- }
- }
- } else {
- let _0x311a52 = _0x6e6187?.["msg"] || _0x6e6187?.["resoultMsg"] || _0x6e6187?.["error"] || "";
- this.log("查询抽奖连签天数错误[" + _0x912371 + "]: " + _0x311a52);
- }
- } catch (_0xfe7972) {
- console.log(_0xfe7972);
- }
- }
- async continueSignRecords(_0x716c04 = {}) {
- try {
- let _0x353f90 = {
- phone: this.name
- },
- _0x3db199 = {
- fn: "continueSignRecords",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/continueSignRecords",
- json: {
- para: this.encrypt_para(_0x353f90)
- }
- },
- {
- result: _0xcdce9f,
- statusCode: _0x167568
- } = await this.request(_0x3db199),
- _0xd160b5 = _0x49dfef.get(_0xcdce9f, "resoultCode", _0x167568);
- if (_0xd160b5 == 0) {
- if (_0xcdce9f?.["continue15List"]?.["length"]) {
- const _0x4ddf3a = {
- type: "15"
- };
- await this.exchangePrize(_0x4ddf3a);
- }
- if (_0xcdce9f?.["continue28List"]?.["length"]) {
- const _0x24d413 = {
- type: "28"
- };
- await this.exchangePrize(_0x24d413);
- }
- } else {
- let _0xa1a8c7 = _0xcdce9f?.["msg"] || _0xcdce9f?.["resoultMsg"] || _0xcdce9f?.["error"] || "";
- this.log("查询连签抽奖状态错误[" + _0xd160b5 + "]: " + _0xa1a8c7);
- }
- } catch (_0x696f49) {
- console.log(_0x696f49);
- }
- }
- async doSign(_0x3d1e97 = {}) {
- try {
- let _0x2c6ae2 = {
- phone: this.name,
- date: Date.now(),
- sysType: "20002"
- },
- _0x32b4a2 = {
- fn: "doSign",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/sign",
- json: {
- encode: this.encode_aes(JSON.stringify(_0x2c6ae2))
- }
- },
- {
- result: _0x4a380a,
- statusCode: _0x39f295
- } = await this.request(_0x32b4a2),
- _0x66dfe4 = _0x49dfef.get(_0x4a380a, "resoultCode", _0x39f295);
- if (_0x66dfe4 == 0) {
- let _0x3199d0 = _0x49dfef.get(_0x4a380a?.["data"], "code", -1);
- if (_0x3199d0 == 1) {
- const _0x241cc1 = {
- notify: true
- };
- this.log("签到成功,获得" + (_0x4a380a?.["data"]?.["coin"] || 0) + "金豆", _0x241cc1);
- await this.userStatusInfo();
- } else {
- const _0x16b3bf = {
- notify: true
- };
- this.log("签到失败[" + _0x3199d0 + "]: " + _0x4a380a.data.msg, _0x16b3bf);
- }
- } else {
- let _0x48eddc = _0x4a380a?.["msg"] || _0x4a380a?.["resoultMsg"] || _0x4a380a?.["error"] || "";
- this.log("签到错误[" + _0x66dfe4 + "]: " + _0x48eddc);
- }
- } catch (_0x3c07a4) {
- console.log(_0x3c07a4);
- }
- }
- async exchangePrize(_0x503199 = {}) {
- try {
- let _0x15d8af = _0x49dfef.pop(_0x503199, "type", "7");
- let _0x2a4555 = {
- phone: this.name,
- type: _0x15d8af
- },
- _0x275dee = {
- fn: "exchangePrize",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/exchangePrize",
- json: {
- para: this.encrypt_para(_0x2a4555)
- }
- },
- {
- result: _0x122edb,
- statusCode: _0x7493f8
- } = await this.request(_0x275dee),
- _0x32ecff = _0x49dfef.get(_0x122edb, "resoultCode", _0x7493f8);
- if (_0x32ecff == 0) {
- let _0xfbfebb = _0x49dfef.get(_0x122edb?.["prizeDetail"], "code", -1);
- if (_0xfbfebb == 0) {
- const _0x51aac0 = {
- notify: true
- };
- this.log("连签" + _0x15d8af + "天抽奖: " + _0x122edb?.["prizeDetail"]?.["biz"]?.["winTitle"], _0x51aac0);
- } else {
- let _0x36ea79 = _0x122edb?.["prizeDetail"]?.["err"] || "";
- const _0x513b8a = {
- notify: true
- };
- this.log("连签" + _0x15d8af + "天抽奖失败[" + _0xfbfebb + "]: " + _0x36ea79, _0x513b8a);
- }
- } else {
- let _0x2f0e88 = _0x122edb?.["msg"] || _0x122edb?.["resoultMsg"] || _0x122edb?.["error"] || "";
- this.log("连签" + _0x15d8af + "天抽奖错误[" + _0x32ecff + "]: " + _0x2f0e88);
- }
- } catch (_0x57662f) {
- console.log(_0x57662f);
- }
- }
- async homepage(_0x5a7e8f, _0x26d9a1 = {}) {
- try {
- let _0x60744a = {
- phone: this.name,
- shopId: "20001",
- type: _0x5a7e8f
- },
- _0x5a9f66 = {
- fn: "homepage",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/homepage",
- json: {
- para: this.encrypt_para(_0x60744a)
- }
- },
- {
- result: _0x3462ae,
- statusCode: _0x17c9d0
- } = await this.request(_0x5a9f66),
- _0x59fe3c = _0x49dfef.get(_0x3462ae, "resoultCode", _0x17c9d0);
- if (_0x59fe3c == 0) {
- let _0x52a59b = _0x49dfef.get(_0x3462ae?.["data"]?.["head"], "code", -1);
- if (_0x52a59b == 0) {
- for (let _0x3e6107 of _0x3462ae?.["data"]?.["biz"]?.["adItems"] || []) {
- if (["0", "1"].includes(_0x3e6107?.["taskState"])) {
- switch (_0x3e6107.contentOne) {
- case "3":
- {
- if (_0x3e6107?.["rewardId"]) {
- await this.receiveReward(_0x3e6107);
- }
- break;
- }
- case "5":
- {
- await this.openMsg(_0x3e6107);
- break;
- }
- case "6":
- {
- await this.sharingGetGold();
- break;
- }
- case "10":
- case "13":
- {
- if (!this.xtoken) {
- await this.get_usercode();
- }
- this.xtoken && (await this.watchLiveInit());
- break;
- }
- case "18":
- {
- await this.polymerize(_0x3e6107);
- break;
- }
- default:
- {
- break;
- }
- }
- }
- }
- } else {
- let _0xf9bca1 = _0x3462ae?.["data"]?.["head"]?.["err"] || "";
- this.log("获取任务列表失败[" + _0x52a59b + "]: " + _0xf9bca1);
- }
- } else {
- this.log("获取任务列表错误[" + _0x59fe3c + "]");
- }
- } catch (_0x1713d1) {
- console.log(_0x1713d1);
- }
- }
- async receiveReward(_0x1f06a0, _0x27d046 = {}) {
- try {
- let _0x408e82 = _0x1f06a0?.["title"]?.["split"](" ")?.[0];
- let _0x12889d = {
- phone: this.name,
- rewardId: _0x1f06a0?.["rewardId"] || ""
- },
- _0x4db2f8 = {
- fn: "receiveReward",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/receiveReward",
- json: {
- para: this.encrypt_para(_0x12889d)
- }
- },
- {
- result: _0x514940,
- statusCode: _0x5641f8
- } = await this.request(_0x4db2f8),
- _0x1559d6 = _0x49dfef.get(_0x514940, "resoultCode", _0x5641f8);
- if (_0x1559d6 == 0) {
- this.log("领取任务[" + _0x408e82 + "]奖励成功: " + _0x514940?.["resoultMsg"]);
- } else {
- let _0xa69dbc = _0x514940?.["msg"] || _0x514940?.["resoultMsg"] || _0x514940?.["error"] || "";
- this.log("领取任务[" + _0x408e82 + "]奖励错误[" + _0x1559d6 + "]: " + _0xa69dbc);
- }
- } catch (_0x2a40e0) {
- console.log(_0x2a40e0);
- }
- }
- async openMsg(_0x51c539, _0x46c92d = {}) {
- try {
- let _0x4b897b = _0x51c539?.["title"]?.["split"](" ")?.[0];
- let _0x18e652 = {
- phone: this.name
- },
- _0x1c217b = {
- fn: "openMsg",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/openMsg",
- json: {
- para: this.encrypt_para(_0x18e652)
- }
- },
- {
- result: _0xb6f7bf,
- statusCode: _0x41e108
- } = await this.request(_0x1c217b),
- _0x1377ff = _0x49dfef.get(_0xb6f7bf, "resoultCode", _0x41e108);
- if (_0x1377ff == 0) {
- this.log("完成任务[" + _0x4b897b + "]成功: " + _0xb6f7bf?.["resoultMsg"]);
- } else {
- let _0x59d65d = _0xb6f7bf?.["msg"] || _0xb6f7bf?.["resoultMsg"] || _0xb6f7bf?.["error"] || "";
- this.log("完成任务[" + _0x4b897b + "]错误[" + _0x1377ff + "]: " + _0x59d65d);
- }
- } catch (_0x574cb0) {
- console.log(_0x574cb0);
- }
- }
- async polymerize(_0x2beade, _0x3610fd = {}) {
- try {
- let _0x27bccc = _0x2beade?.["title"]?.["split"](" ")?.[0];
- let _0x2caf2f = {
- phone: this.name,
- jobId: _0x2beade.taskId
- },
- _0x493039 = {
- fn: "polymerize",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/polymerize",
- json: {
- para: this.encrypt_para(_0x2caf2f)
- }
- },
- {
- result: _0x2c3e91,
- statusCode: _0x3c5244
- } = await this.request(_0x493039),
- _0x43d9c9 = _0x49dfef.get(_0x2c3e91, "resoultCode", _0x3c5244);
- if (_0x43d9c9 == 0) {
- this.log("完成任务[" + _0x27bccc + "]成功: " + _0x2c3e91?.["resoultMsg"]);
- } else {
- let _0x402f9a = _0x2c3e91?.["msg"] || _0x2c3e91?.["resoultMsg"] || _0x2c3e91?.["error"] || "";
- this.log("完成任务[" + _0x27bccc + "]错误[" + _0x43d9c9 + "]: " + _0x402f9a);
- }
- } catch (_0xc860ab) {
- console.log(_0xc860ab);
- }
- }
- async food(_0x7cbaa1, _0x4b0ab1 = {}) {
- try {
- let _0x5c6c6d = {
- phone: this.name
- },
- _0x587fa4 = {
- fn: "food",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/food",
- json: {
- para: this.encrypt_para(_0x5c6c6d)
- }
- },
- {
- result: _0x156b8d,
- statusCode: _0x191b9d
- } = await this.request(_0x587fa4),
- _0x117b58 = _0x49dfef.get(_0x156b8d, "resoultCode", _0x191b9d);
- if (_0x117b58 == 0) {
- this.log("第" + _0x7cbaa1 + "次喂食: " + (_0x156b8d?.["resoultMsg"] || "成功"));
- if (_0x156b8d?.["levelUp"]) {
- let _0x265b8d = _0x156b8d?.["currLevelRightList"][0]?.["level"];
- const _0x2eec5b = {
- notify: true
- };
- this.log("宠物已升级到[LV." + _0x265b8d + "], 获得: " + _0x156b8d?.["currLevelRightList"][0]?.["righstName"], _0x2eec5b);
- }
- } else {
- let _0x14117b = _0x156b8d?.["msg"] || _0x156b8d?.["resoultMsg"] || _0x156b8d?.["error"] || "";
- this.log("第" + _0x7cbaa1 + "次喂食失败[" + _0x117b58 + "]: " + _0x14117b);
- _0x14117b?.["includes"]("最大喂食次数") && (this.can_feed = false);
- }
- } catch (_0x523284) {
- console.log(_0x523284);
- }
- }
- async getParadiseInfo(_0x4c16d3 = {}) {
- try {
- let _0x1c882e = {
- phone: this.name
- },
- _0x2d8a6c = {
- fn: "getParadiseInfo",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/getParadiseInfo",
- json: {
- para: this.encrypt_para(_0x1c882e)
- }
- };
- {
- let {
- result: _0x13b7df,
- statusCode: _0x1e6dfd
- } = await this.request(_0x2d8a6c),
- _0x54514a = _0x49dfef.get(_0x13b7df, "resoultCode", _0x1e6dfd);
- if (_0x54514a == 0) {
- let _0xdb66c = _0x13b7df?.["userInfo"]?.["levelInfoMap"];
- this.level = _0xdb66c?.["level"];
- for (let _0x33d3a3 = 1; _0x33d3a3 <= 10 && this.can_feed; _0x33d3a3++) {
- await this.food(_0x33d3a3);
- }
- } else {
- let _0x4e4dd5 = _0x13b7df?.["msg"] || _0x13b7df?.["resoultMsg"] || _0x13b7df?.["error"] || "";
- this.log("查询宠物等级失败[" + _0x54514a + "]: " + _0x4e4dd5);
- return;
- }
- }
- {
- let {
- result: _0x1334dd,
- statusCode: _0x363378
- } = await this.request(_0x2d8a6c),
- _0xf71230 = _0x49dfef.get(_0x1334dd, "resoultCode", _0x363378);
- if (_0xf71230 == 0) {
- let _0x41df23 = _0x1334dd?.["userInfo"]?.["levelInfoMap"];
- this.level = _0x41df23?.["level"];
- const _0x268241 = {
- notify: true
- };
- this.log("宠物等级[Lv." + _0x41df23?.["level"] + "], 升级进度: " + _0x41df23?.["growthValue"] + "/" + _0x41df23?.["fullGrowthCoinValue"], _0x268241);
- } else {
- let _0x1036a5 = _0x1334dd?.["msg"] || _0x1334dd?.["resoultMsg"] || _0x1334dd?.["error"] || "";
- this.log("查询宠物等级失败[" + _0xf71230 + "]: " + _0x1036a5);
- return;
- }
- }
- } catch (_0x94c5b4) {
- console.log(_0x94c5b4);
- }
- }
- async getLevelRightsList(_0x3ea0a7 = {}) {
- try {
- let _0x1fd8f0 = {
- phone: this.name
- },
- _0x5a0971 = {
- fn: "getLevelRightsList",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/getLevelRightsList",
- json: {
- para: this.encrypt_para(_0x1fd8f0)
- }
- },
- {
- result: _0x4cf13d,
- statusCode: _0x5e92a4
- } = await this.request(_0x5a0971);
- if (_0x4cf13d?.["currentLevel"]) {
- let _0x3b50bb = _0x4cf13d?.["currentLevel"] || 6,
- _0x1f1006 = false,
- _0x53ddf4 = "V" + _0x3b50bb;
- for (let _0x1ab325 of _0x4cf13d[_0x53ddf4] || []) {
- let _0x59ef49 = _0x1ab325?.["righstName"] || "";
- if (this.coin < _0x1ab325.costCoin) {
- continue;
- }
- (_0x59ef49?.["match"](/\d+元话费/) || _0x59ef49?.["match"](/专享\d+金豆/)) && (await this.getConversionRights(_0x1ab325, _0x1f1006)) && (_0x1f1006 = true);
- }
- } else {
- let _0x4ff776 = _0x4cf13d?.["msg"] || _0x4cf13d?.["resoultMsg"] || _0x4cf13d?.["error"] || "";
- this.log("查询宠物兑换权益失败: " + _0x4ff776);
- }
- } catch (_0xcfd2ba) {
- console.log(_0xcfd2ba);
- }
- }
- async getConversionRights(_0xca19ef, _0x28066a, _0x21f772 = {}) {
- let _0x21db60 = false;
- try {
- let _0x5d6f72 = _0xca19ef?.["righstName"] || "";
- let _0x268d4d = {
- phone: this.name,
- rightsId: _0xca19ef.id,
- receiveCount: _0xca19ef.receiveType
- },
- _0x5ed3b5 = {
- fn: "getConversionRights",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/getConversionRights",
- json: {
- para: this.encrypt_para(_0x268d4d)
- }
- },
- {
- result: _0x409ea1,
- statusCode: _0x3fb426
- } = await this.request(_0x5ed3b5),
- _0x17b3d0 = _0x49dfef.get(_0x409ea1, "code", _0x49dfef.get(_0x409ea1, "resoultCode", _0x3fb426));
- if (_0x17b3d0 == 200) {
- if (!(_0x409ea1?.["rightsStatus"]?.["includes"]("已兑换") || _0x409ea1?.["rightsStatus"]?.["includes"]("已领取"))) {
- _0x21db60 = true;
- if (_0x28066a) {
- await _0x49dfef.wait(3000);
- }
- await this.conversionRights(_0xca19ef);
- }
- } else {
- let _0x267dcb = _0x409ea1?.["msg"] || _0x409ea1?.["resoultMsg"] || _0x409ea1?.["error"] || "";
- this.log("查询权益[" + _0x5d6f72 + "]失败[" + _0x17b3d0 + "]: " + _0x267dcb);
- }
- } catch (_0x1c9805) {
- console.log(_0x1c9805);
- } finally {
- return _0x21db60;
- }
- }
- async conversionRights(_0x1258fb, _0x5ee37a = {}) {
- try {
- let _0x285002 = _0x1258fb?.["righstName"] || "";
- let _0x2e0b22 = {
- phone: this.name,
- rightsId: _0x1258fb.id
- },
- _0x259df8 = {
- fn: "conversionRights",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/conversionRights",
- json: {
- para: this.encrypt_para(_0x2e0b22)
- }
- },
- {
- result: _0x24b720,
- statusCode: _0x2867ce
- } = await this.request(_0x259df8),
- _0x1caee2 = _0x49dfef.get(_0x24b720, "resoultCode", _0x2867ce);
- if (_0x1caee2 == 0) {
- this.log("兑换权益[" + _0x285002 + "]成功");
- } else {
- let _0x58c8d6 = _0x24b720?.["msg"] || _0x24b720?.["resoultMsg"] || _0x24b720?.["error"] || "";
- this.log("兑换权益[" + _0x285002 + "]失败[" + _0x1caee2 + "]: " + _0x58c8d6);
- }
- } catch (_0x2f6eb8) {
- console.log(_0x2f6eb8);
- }
- }
- async get_usercode(_0x410326 = {}) {
- try {
- const _0x4ad8d0 = {
- fn: "get_usercode",
- method: "get",
- url: "https://xbk.189.cn/xbkapi/api/auth/jump",
- searchParams: {}
- };
- _0x4ad8d0.searchParams.userID = this.ticket;
- _0x4ad8d0.searchParams.version = "9.3.3";
- _0x4ad8d0.searchParams.type = "room";
- _0x4ad8d0.searchParams.l = "renwu";
- let _0x3ed428 = _0x4ad8d0,
- {
- statusCode: _0x1897af,
- headers: _0xab67f2
- } = await this.request(_0x3ed428),
- _0x40ae2f = _0xab67f2?.["location"]?.["match"](/usercode=(\w+)/);
- _0x40ae2f ? await this.codeToken(_0x40ae2f[1]) : this.log("获取code失败[" + _0x1897af + "]");
- } catch (_0x3b0319) {
- console.log(_0x3b0319);
- }
- }
- async codeToken(_0x5551c8, _0x4c3418 = {}) {
- try {
- const _0x3ed11c = {
- usercode: _0x5551c8
- };
- let _0x2259ef = {
- fn: "codeToken",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/api/auth/userinfo/codeToken",
- json: _0x3ed11c
- },
- {
- result: _0x1e1031,
- statusCode: _0x4829ec
- } = await this.request(_0x2259ef),
- _0xb6579f = _0x49dfef.get(_0x1e1031, "code", -1);
- if (_0xb6579f == 0) {
- this.xtoken = _0x1e1031?.["data"]?.["token"];
- this.got = this.got.extend({
- headers: {
- Authorization: "Bearer " + _0x5b4189.encrypt(this.xtoken, "base64")
- }
- });
- } else {
- let _0x2cb0f8 = _0x1e1031?.["msg"] || _0x1e1031?.["resoultMsg"] || _0x1e1031?.["error"] || _0x1e1031?.["msg"] || "";
- this.log("获取token失败[" + _0xb6579f + "]: " + _0x2cb0f8);
- }
- } catch (_0x324945) {
- console.log(_0x324945);
- }
- }
- async watchLiveInit(_0x410248 = {}) {
- try {
- let _0x28a798 = Math.floor(Math.random() * 1000) + 1000;
- const _0x1e7374 = {
- period: 1,
- liveId: _0x28a798
- };
- let _0x3e4085 = {
- fn: "watchLiveInit",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchLiveInit",
- json: _0x1e7374
- },
- {
- result: _0x15080d,
- statusCode: _0x39b570
- } = await this.request(_0x3e4085),
- _0x488aa2 = _0x49dfef.get(_0x15080d, "code", -1);
- if (_0x488aa2 == 0) {
- await _0x49dfef.wait(15000);
- await this.watchLive(_0x28a798, _0x15080d?.["data"]);
- } else {
- let _0x641985 = _0x15080d?.["msg"] || _0x15080d?.["resoultMsg"] || _0x15080d?.["error"] || _0x15080d?.["msg"] || "";
- this.log("开始观看直播[" + _0x28a798 + "]失败[" + _0x488aa2 + "]: " + _0x641985);
- }
- } catch (_0x58939a) {
- console.log(_0x58939a);
- }
- }
- async watchLive(_0x2df12e, _0x578beb, _0x1de0d1 = {}) {
- try {
- const _0xae75fa = {
- period: 1,
- liveId: _0x2df12e,
- key: _0x578beb
- };
- let _0x363af1 = {
- fn: "watchLive",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchLive",
- json: _0xae75fa
- },
- {
- result: _0x5c4954,
- statusCode: _0x1ad01d
- } = await this.request(_0x363af1),
- _0x4e4cbf = _0x49dfef.get(_0x5c4954, "code", -1);
- if (_0x4e4cbf == 0) {
- this.log("观看直播[" + _0x2df12e + "]成功");
- await this.watchLiveInit();
- } else {
- let _0x132d1d = _0x5c4954?.["msg"] || _0x5c4954?.["resoultMsg"] || _0x5c4954?.["error"] || _0x5c4954?.["msg"] || "";
- this.log("观看直播[" + _0x2df12e + "]失败[" + _0x4e4cbf + "]: " + _0x132d1d);
- }
- } catch (_0x32ce3f) {
- console.log(_0x32ce3f);
- }
- }
- async watchVideo(_0x37b577, _0x3a94a2 = {}) {
- try {
- const _0x15cc23 = {
- articleId: _0x37b577
- };
- let _0x54a72d = {
- fn: "watchVideo",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchVideo",
- json: _0x15cc23
- },
- {
- result: _0x3d06a2,
- statusCode: _0xa801d9
- } = await this.request(_0x54a72d),
- _0x33f743 = _0x49dfef.get(_0x3d06a2, "code", -1);
- if (_0x33f743 == 0) {
- this.log("观看短视频[" + _0x37b577 + "]成功");
- } else {
- let _0x597186 = _0x3d06a2?.["msg"] || _0x3d06a2?.["resoultMsg"] || _0x3d06a2?.["error"] || _0x3d06a2?.["msg"] || "";
- this.log("观看短视频[" + _0x37b577 + "]失败[" + _0x33f743 + "]: " + _0x597186);
- }
- } catch (_0x42a411) {
- console.log(_0x42a411);
- }
- }
- async like(_0x3605f0, _0x42d468 = {}) {
- try {
- const _0x551814 = {
- account: this.name,
- liveId: _0x3605f0
- };
- let _0x3f3d2b = {
- fn: "like",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/lteration/room/like",
- json: _0x551814
- },
- {
- result: _0x15cd63,
- statusCode: _0x550c11
- } = await this.request(_0x3f3d2b),
- _0x3cb60d = _0x49dfef.get(_0x15cd63, "code", -1);
- if (_0x3cb60d == 0) {
- this.log("点赞直播间[" + _0x3605f0 + "]成功");
- } else {
- let _0x12573c = _0x15cd63?.["msg"] || _0x15cd63?.["resoultMsg"] || _0x15cd63?.["error"] || _0x15cd63?.["msg"] || "";
- this.log("点赞直播间[" + _0x3605f0 + "]失败[" + _0x3cb60d + "]: " + _0x12573c);
- }
- } catch (_0x33a0d8) {
- console.log(_0x33a0d8);
- }
- }
- async sharingGetGold(_0x5cc2cd = {}) {
- try {
- let _0x5957b6 = {
- fn: "sharingGetGold",
- method: "post",
- url: "https://appfuwu.189.cn:9021/query/sharingGetGold",
- json: {
- headerInfos: {
- code: "sharingGetGold",
- timestamp: _0x49dfef.time("yyyyMMddhhmmss"),
- broadAccount: "",
- broadToken: "",
- clientType: "#9.6.1#channel50#iPhone 14 Pro Max#",
- shopId: "20002",
- source: "110003",
- sourcePassword: "Sid98s",
- token: this.token,
- userLoginName: this.name
- },
- content: {
- attach: "test",
- fieldData: {
- shareSource: "3",
- userId: this.userId,
- account: this.encode_phone()
- }
- }
- }
- },
- {
- result: _0x36023a,
- statusCode: _0x5ade7c
- } = await this.request(_0x5957b6),
- _0x3bb612 = _0x49dfef.get(_0x36023a?.["responseData"], "resultCode", -1);
- if (_0x3bb612 == "0000") {
- this.log("分享成功");
- } else {
- let _0x1fc39a = _0x36023a?.["msg"] || _0x36023a?.["responseData"]?.["resultDesc"] || _0x36023a?.["error"] || _0x36023a?.["msg"] || "";
- this.log("分享失败[" + _0x3bb612 + "]: " + _0x1fc39a);
- }
- } catch (_0x221821) {
- console.log(_0x221821);
- }
- }
- async month_jml_preCost(_0x3e12ef = {}) {
- try {
- let _0x54e4a2 = {
- fn: "month_jml_preCost",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/short/message/preCost",
- json: {
- phone: this.encode_aes(this.name),
- activityCode: "shortMesssge"
- }
- },
- {
- result: _0x19ae9b,
- statusCode: _0x219a77
- } = await this.request(_0x54e4a2),
- _0xb89634 = _0x49dfef.get(_0x19ae9b, "resoultCode", _0x219a77);
- if (_0xb89634 == 0) {
- let _0x1709f5 = _0x19ae9b?.["data"]?.["resoultMsg"] || "领取成功";
- this.jml_tokenFlag = _0x19ae9b?.["resoultMsg"];
- await this.month_jml_userCost(_0x1709f5);
- await this.month_jml_receive();
- await this.month_jml_getCount();
- await this.month_jml_refresh();
- } else {
- let _0x2dde86 = _0x19ae9b?.["msg"] || _0x19ae9b?.["resoultMsg"] || _0x19ae9b?.["error"] || "";
- this.log("每月见面礼登录失败[" + _0xb89634 + "]: " + _0x2dde86);
- }
- } catch (_0xf5ea71) {
- console.log(_0xf5ea71);
- }
- }
- async month_jml_userCost(_0x5b6d73, _0x434031 = {}) {
- try {
- let _0x223f5d = {
- fn: "month_jml_userCost",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/short/message/userCost",
- json: {
- phone: this.encode_aes(this.name),
- activityCode: "shortMesssge",
- flag: this.jml_tokenFlag
- }
- },
- {
- result: _0x2add96,
- statusCode: _0x4c7beb
- } = await this.request(_0x223f5d),
- _0x55ebaa = _0x49dfef.get(_0x2add96, "resoultCode", _0x4c7beb);
- if (_0x55ebaa == 0) {
- let _0x39f674 = _0x2add96?.["data"]?.["map"](_0x475613 => "[" + _0x475613.pizeName + "]") || [];
- this.log("见面礼" + _0x5b6d73 + ": " + _0x39f674.join(", "));
- } else {
- let _0x1c5716 = _0x2add96?.["msg"] || _0x2add96?.["resoultMsg"] || _0x2add96?.["error"] || "";
- this.log("领取每月见面礼失败[" + _0x55ebaa + "]: " + _0x1c5716);
- }
- } catch (_0x3eb9f8) {
- console.log(_0x3eb9f8);
- }
- }
- async month_jml_receive(_0x5aaffc = {}) {
- try {
- let _0x3d08a6 = {
- phone: this.name,
- flag: this.jml_tokenFlag
- },
- _0x4fe3a1 = {
- fn: "month_jml_receive",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/receive",
- json: {
- para: this.encrypt_para(_0x3d08a6)
- }
- },
- {
- result: _0x16a4a1,
- statusCode: _0x389615
- } = await this.request(_0x4fe3a1),
- _0x4924bc = _0x49dfef.get(_0x16a4a1, "code", -1);
- if (_0x4924bc == 0) {
- this.log("领取APP抽奖次数成功");
- } else {
- let _0x5ef8a4 = _0x16a4a1?.["msg"] || _0x16a4a1?.["resoultMsg"] || _0x16a4a1?.["error"] || "";
- this.log("领取APP抽奖次数失败[" + _0x4924bc + "]: " + _0x5ef8a4);
- }
- } catch (_0x209a71) {
- console.log(_0x209a71);
- }
- }
- async month_jml_getCount(_0x1eebce = {}) {
- try {
- let _0x431dad = {
- phone: this.name,
- flag: this.jml_tokenFlag
- },
- _0x1d2de9 = {
- fn: "month_jml_getCount",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/getCount",
- json: {
- para: this.encrypt_para(_0x431dad)
- }
- },
- {
- result: _0xf1b29a,
- statusCode: _0x4204df
- } = await this.request(_0x1d2de9),
- _0x4704a8 = _0x49dfef.get(_0xf1b29a, "code", -1);
- if (_0x4704a8 == 0) {
- let _0x141535 = _0xf1b29a?.["video"]?.["map"](_0x33886d => _0x33886d.videoType) || [],
- _0x2fb772 = _0x131d2d.filter(_0x5bb71b => !_0x141535.includes(_0x5bb71b)),
- _0x22a4b1 = false;
- for (let _0x38b1de of _0x2fb772) {
- if (_0x22a4b1) {
- let _0x296e0d = Math.floor(Math.random() * 5000) + 3000;
- await _0x49dfef.wait(_0x296e0d);
- }
- await this.month_jml_addVideoCount(_0x38b1de);
- _0x22a4b1 = true;
- }
- } else {
- let _0x330a5e = _0xf1b29a?.["msg"] || _0xf1b29a?.["resoultMsg"] || _0xf1b29a?.["error"] || "";
- this.log("查询看视频得抽奖机会次数失败[" + _0x4704a8 + "]: " + _0x330a5e);
- }
- } catch (_0x1c46ec) {
- console.log(_0x1c46ec);
- }
- }
- async month_jml_addVideoCount(_0x10070c, _0x588069 = {}) {
- try {
- let _0x13e584 = {
- phone: this.name,
- videoType: _0x10070c,
- flag: this.jml_tokenFlag
- },
- _0x2b00ee = {
- fn: "month_jml_addVideoCount",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/addVideoCount",
- json: {
- para: this.encrypt_para(_0x13e584)
- }
- },
- {
- result: _0x8dff4,
- statusCode: _0x6fd216
- } = await this.request(_0x2b00ee),
- _0x3f6886 = _0x49dfef.get(_0x8dff4, "code", -1);
- if (_0x3f6886 == 0) {
- this.log("看视频[" + _0x10070c + "]得抽奖机会成功");
- } else {
- let _0x238dbf = _0x8dff4?.["msg"] || _0x8dff4?.["resoultMsg"] || _0x8dff4?.["error"] || "";
- this.log("看视频[" + _0x10070c + "]得抽奖机会失败[" + _0x3f6886 + "]: " + _0x238dbf);
- }
- } catch (_0x2d129d) {
- console.log(_0x2d129d);
- }
- }
- async month_jml_refresh(_0xcca85f = {}) {
- try {
- let _0x14cad3 = {
- phone: this.name,
- flag: this.jml_tokenFlag
- },
- _0x5ab84e = {
- fn: "month_jml_refresh",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/refresh",
- json: {
- para: this.encrypt_para(_0x14cad3)
- }
- },
- {
- result: _0x764f77,
- statusCode: _0x2cc71c
- } = await this.request(_0x5ab84e),
- _0x5ecd1e = _0x49dfef.get(_0x764f77, "code", -1);
- if (_0x5ecd1e == -1) {
- let _0x58362e = _0x764f77?.["rNumber"] || 0;
- this.log("可以抽奖" + _0x58362e + "次");
- let _0x31275f = false;
- while (_0x58362e-- > 0) {
- if (_0x31275f) {
- let _0x33dd5d = Math.floor(Math.random() * 5000) + 3000;
- await _0x49dfef.wait(_0x33dd5d);
- }
- await this.month_jml_lotteryRevice();
- _0x31275f = true;
- }
- } else {
- let _0x15024f = _0x764f77?.["msg"] || _0x764f77?.["resoultMsg"] || _0x764f77?.["error"] || "";
- this.log("查询抽奖次数失败[" + _0x5ecd1e + "]: " + _0x15024f);
- }
- } catch (_0x14d546) {
- console.log(_0x14d546);
- }
- }
- async month_jml_lotteryRevice(_0x5bf2d6 = {}) {
- try {
- let _0x489867 = {
- phone: this.name,
- flag: this.jml_tokenFlag
- },
- _0x57d2e2 = {
- fn: "month_jml_lotteryRevice",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/lotteryRevice",
- json: {
- para: this.encrypt_para(_0x489867)
- }
- },
- {
- result: _0x361574,
- statusCode: _0x1225b9
- } = await this.request(_0x57d2e2),
- _0x4ec03c = _0x49dfef.get(_0x361574, "code", -1);
- if (_0x4ec03c == 0) {
- let {
- rname: _0x232c3b,
- id: _0x23684c
- } = _0x361574;
- const _0x16b601 = {
- notify: true
- };
- this.log("每月见面礼抽奖: " + _0x232c3b, _0x16b601);
- } else {
- let _0x97a723 = _0x361574?.["msg"] || _0x361574?.["resoultMsg"] || _0x361574?.["error"] || "";
- this.log("每月见面礼抽奖失败[" + _0x4ec03c + "]: " + _0x97a723);
- }
- } catch (_0x3b1aef) {
- console.log(_0x3b1aef);
- }
- }
- async rpc_request(_0x390ce7, _0x48b512 = "get", _0x46e01b = null) {
- const _0x433f30 = new Error(),
- _0xafbbac = _0x433f30.stack,
- _0x27601e = _0xafbbac.split("\n"),
- _0x17aebc = _0x27601e?.[2]?.["match"](/UserClass\.(\w+)/)?.[1] || "rpc";
- let _0x50ab7c = {
- fn: _0x17aebc,
- method: "post",
- url: _0x16d3ea,
- json: {
- key: _0x344953,
- method: _0x48b512,
- url: _0x390ce7.toString(),
- headers: this.get_mall_headers(),
- data: JSON.stringify(_0x46e01b)
- }
- };
- return await this.request(_0x50ab7c);
- }
- async auth_login(_0x16dd5f = {}) {
- let _0x4b632d = false;
- try {
- let _0x59ca25 = this.ticket,
- _0xa64474 = new URL("https://wapact.189.cn:9001/unified/user/login"),
- _0x28641d = {
- ticket: _0x59ca25,
- backUrl: encodeURIComponent("https://wapact.189.cn:9001/JinDouMall/JinDouMall_luckDraw.html?ticket=" + _0x59ca25),
- platformCode: "P201010301",
- loginType: 2
- },
- {
- result: _0x16b3c5,
- statusCode: _0x3b6fb9
- } = await this.rpc_request(_0xa64474, "POST", _0x28641d),
- _0x25f5c8 = _0x49dfef.get(_0x16b3c5, "code", _0x3b6fb9);
- if (_0x25f5c8 == 0) {
- let {
- token: _0x202a28,
- sessionId: _0x274600
- } = _0x16b3c5?.["biz"];
- this.mall_token = _0x202a28;
- _0x4b632d = true;
- } else {
- let _0x1c4e69 = _0x49dfef.get(_0x16b3c5, "message", "");
- this.log("商城登录失败[" + _0x25f5c8 + "]: " + _0x1c4e69);
- }
- } catch (_0x3b74e2) {
- console.log(_0x3b74e2);
- } finally {
- return _0x4b632d;
- }
- }
- async queryInfo(_0x3da8a0 = {}) {
- try {
- let _0xc5f478 = new URL("https://wapact.189.cn:9001/gateway/golden/api/queryInfo");
- _0xc5f478.searchParams.append("_", Date.now().toString());
- let {
- result: _0x3bab08,
- statusCode: _0x42dda4
- } = await this.rpc_request(_0xc5f478),
- _0x69d0a7 = _0x49dfef.get(_0x3bab08, "code", _0x42dda4);
- if (_0x69d0a7 == 0) {
- this.coin = _0x3bab08?.["biz"]?.["amountTotal"] || this.coin;
- await this.queryTurnTable();
- } else {
- let _0x401a81 = _0x49dfef.get(_0x3bab08, "message", "");
- this.log("查询商城状态失败[" + _0x69d0a7 + "]: " + _0x401a81);
- }
- } catch (_0xd507ac) {
- console.log(_0xd507ac);
- }
- }
- async queryTurnTable(_0x12dce0 = {}) {
- try {
- let _0x5dccd4 = new URL("https://wapact.189.cn:9001/gateway/golden/api/queryTurnTable");
- _0x5dccd4.searchParams.append("userType", "1");
- _0x5dccd4.searchParams.append("_", Date.now().toString());
- let {
- result: _0x2ad2d5,
- statusCode: _0x5a8d92
- } = await this.rpc_request(_0x5dccd4),
- _0x2b1c98 = _0x49dfef.get(_0x2ad2d5, "code", _0x5a8d92);
- if (_0x2b1c98 == 0) {
- let _0x2b2dfc = _0x2ad2d5?.["biz"]?.["xiaoHaoCount"] || 20,
- _0x15becc = _0x2ad2d5?.["biz"]?.["wzTurntable"]?.["code"] || "";
- _0x15becc ? await this.lottery_check(_0x15becc, _0x2b2dfc) : this.log("没有获取到转盘抽奖ID");
- } else {
- let _0x96a1c8 = _0x49dfef.get(_0x2ad2d5, "message", "");
- this.log("获取转盘抽奖活动失败[" + _0x2b1c98 + "]: " + _0x96a1c8);
- }
- } catch (_0x3408eb) {
- console.log(_0x3408eb);
- }
- }
- async lottery_check(_0x217d19, _0x372f7b, _0x4f6c97 = {}) {
- try {
- let _0xa49a58 = new URL("https://wapact.189.cn:9001/gateway/stand/detail/check");
- _0xa49a58.searchParams.append("activityId", _0x217d19);
- _0xa49a58.searchParams.append("_", Date.now().toString());
- let {
- result: _0x2d69c8,
- statusCode: _0x242328
- } = await this.rpc_request(_0xa49a58),
- _0x2cccad = _0x49dfef.get(_0x2d69c8, "code", _0x242328);
- if (_0x2cccad == 0) {
- let _0x157881 = _0x2d69c8?.["biz"]?.["resultInfo"]?.["chanceCount"] || 0;
- this.log("转盘可以抽奖" + _0x157881 + "次, 消耗金豆" + _0x372f7b + "/" + this.coin);
- let _0x30a5ac = false;
- while (_0x157881-- > 0 && this.coin >= _0x372f7b) {
- if (_0x30a5ac) {
- await _0x49dfef.wait(3000);
- }
- _0x30a5ac = true;
- await this.lottery_do(_0x217d19, _0x372f7b);
- }
- } else {
- let _0x3cd934 = _0x49dfef.get(_0x2d69c8, "message", "");
- this.log("查询转盘抽奖次数失败[" + _0x2cccad + "]: " + _0x3cd934);
- }
- } catch (_0x957f54) {
- console.log(_0x957f54);
- }
- }
- async lottery_do(_0x5149a7, _0xc5a8fd = {}) {
- try {
- let _0x1794f8 = new URL("https://wapact.189.cn:9001/gateway/golden/api/lottery");
- let _0xe8218a = {
- activityId: _0x5149a7
- },
- {
- result: _0x50d02f,
- statusCode: _0x69dd47
- } = await this.rpc_request(_0x1794f8, "POST", _0xe8218a),
- _0x301247 = _0x49dfef.get(_0x50d02f, "code", _0x69dd47);
- if (_0x301247 == 0) {
- this.coin = _0x50d02f?.["biz"]?.["amountTotal"] || this.coin - xiaoHaoCount;
- let _0x3d75c1 = _0x50d02f?.["biz"]?.["resultCode"],
- _0x2f6e42 = "";
- switch (_0x3d75c1) {
- case "0":
- {
- let _0x420d18 = _0x50d02f?.["biz"]?.["resultInfo"]?.["winTitle"] || "空气";
- const _0x580cdf = {
- notify: true
- };
- this.log("转盘抽奖: " + _0x420d18, _0x580cdf);
- return;
- }
- case "412":
- {
- _0x2f6e42 = "抽奖次数已达上限";
- break;
- }
- case "413":
- case "420":
- {
- _0x2f6e42 = "金豆不足";
- break;
- }
- default:
- {
- this.log(": " + JSON.stringify(_0x50d02f));
- _0x2f6e42 = "未知原因";
- break;
- }
- }
- this.log("转盘抽奖失败[" + _0x3d75c1 + "]: " + _0x2f6e42);
- } else {
- let _0x1e463b = _0x49dfef.get(_0x50d02f, "message", "");
- this.log("转盘抽奖错误[" + _0x301247 + "]: " + _0x1e463b);
- }
- } catch (_0x3f560e) {
- console.log(_0x3f560e);
- }
- }
- async userTask() {
- const _0x4d55e5 = {
- notify: true
- };
- _0x49dfef.log("\n======= 账号[" + this.index + "][" + this.name + "] =======", _0x4d55e5);
- if (!this.load_token() && !(await this.login())) {
- return;
- }
- if (!(await this.get_ticket())) {
- return;
- }
- if (!(await this.get_sign())) {
- return;
- }
- await this.userCoinInfo();
- await this.getLevelRightsList();
- await this.month_jml_preCost();
- await this.userStatusInfo();
- await this.continueSignRecords();
- await this.homepage("hg_qd_zrwzjd");
- await this.getParadiseInfo();
- if (_0x16d3ea) {
- await this.userLotteryTask();
- }
- await this.userCoinInfo(true);
- }
- async userLotteryTask() {
- if (!(await this.auth_login())) {
- return;
- }
- await this.queryInfo();
- }
-}
-!(async () => {
- if (!(await _0x1a2249())) {
+const $ = new Env("顺丰速运"),
+ ckName = "sfsy_data",
+ userCookie = $.toObj($.isNode() ? process.env[ckName] : $.getdata(ckName)) || [];
+$.userIdx = 0;
+$.userList = [];
+$.notifyMsg = [];
+$.succCount = 0;
+const notify = $.isNode() ? require("./sendNotify") : "";
+$.is_debug = ($.isNode() ? process.env.IS_DEDUG : $.getdata("is_debug")) || "false";
+$.is_bee = ($.isNode() ? process.env.sfsy_bee : $.getdata("sfsy_bee")) || "false";
+$.is_account = ($.isNode() ? process.env.sliverkiss_account : $.getdata("sliverkiss_account")) || "false";
+$.unTaskList = ["完成连签7天", "参与积分活动", "每月累计寄件", "完成每月任务", "与好友微信分享会员福利", "DAILY_VIP_TASK_TYPE", "去新增一个收件偏好", "用行业模板寄件下单", "用积分兑任意礼品", "领任意生活特权福利", "设置你的顺丰ID"];
+async function main() {
+ if ($.userList.length > 5 && $.is_account == "false") {
return;
}
- _0x49dfef.read_env(_0x3f433d);
- _0xa0ff1b();
- for (let _0x28b102 of _0x49dfef.userList) {
- await _0x28b102.userTask();
- }
-})().catch(_0x3fccb3 => _0x49dfef.log(_0x3fccb3)).finally(() => _0x49dfef.exitNow());
-async function _0x1a2249(_0x5dcebe = 0) {
- let _0x40b7b = false;
- try {
- let _0x29d1da = {
- fn: "auth",
- method: "get",
- url: _0x100b57,
- timeout: 20000
- },
- {
- statusCode: _0xbb1bc5,
- result: _0x508782
- } = await _0x3b1630.request(_0x29d1da);
- if (_0xbb1bc5 != 200) {
- _0x5dcebe++ < _0x3c685e && (_0x40b7b = await _0x1a2249(_0x5dcebe));
- return _0x40b7b;
- }
- if (_0x508782?.["code"] == 0) {
- _0x508782 = JSON.parse(_0x508782.data.file.data);
- if (_0x508782?.["commonNotify"] && _0x508782.commonNotify.length > 0) {
- const _0x1a6c76 = {
- notify: true
- };
- _0x49dfef.log(_0x508782.commonNotify.join("\n") + "\n", _0x1a6c76);
- }
- _0x508782?.["commonMsg"] && _0x508782.commonMsg.length > 0 && _0x49dfef.log(_0x508782.commonMsg.join("\n") + "\n");
- if (_0x508782[_0x14f289]) {
- let _0x145844 = _0x508782[_0x14f289];
- _0x145844.status == 0 ? _0xf4231c >= _0x145844.version ? (_0x40b7b = true, _0x49dfef.log(_0x145844.msg[_0x145844.status]), _0x49dfef.log(_0x145844.updateMsg), _0x49dfef.log("现在运行的脚本版本是:" + _0xf4231c + ",最新脚本版本:" + _0x145844.latestVersion)) : _0x49dfef.log(_0x145844.versionMsg) : _0x49dfef.log(_0x145844.msg[_0x145844.status]);
+ for (let _0x16bed4 of $.userList) {
+ try {
+ await _0x16bed4.refresh_cookie();
+ if (_0x16bed4.ckStatus) {
+ let {
+ usablePoint: _0x49b989
+ } = await _0x16bed4.queryUserInfo();
+ await _0x16bed4.superWelfare_receiveRedPacket();
+ await _0x16bed4.automaticSignFetchPackage();
+ await _0x16bed4.memberDay_index();
+ if ($.is_bee != "false") {
+ await _0x16bed4.bee_indexData();
+ }
+ await _0x16bed4.coupon_list();
+ let _0x3bac91 = await _0x16bed4.queryUserInfo();
+ $.succCount++;
+ DoubleLog("[" + _0x16bed4.userName + "] 积分+" + (_0x3bac91?.["usablePoint"] - 0 - _0x49b989 ?? 0) + " 蜂蜜+" + ($.beeHoney ?? 0));
} else {
- _0x49dfef.log(_0x508782.errorMsg);
+ DoubleLog("⛔️ 「" + (_0x16bed4.userName ?? "账号" + index) + "」签到失败, 用户需要去登录");
}
- } else {
- _0x5dcebe++ < _0x3c685e && (_0x40b7b = await _0x1a2249(_0x5dcebe));
+ } catch (_0x4c5880) {
+ throw _0x4c5880;
}
- } catch (_0x458d78) {
- _0x49dfef.log(_0x458d78);
- } finally {
- return _0x40b7b;
}
+ $.title = "共" + $.userList.length + "个账号,成功" + $.succCount + "个,失败" + ($.userList.length - 0 - $.succCount) + "个";
+ await sendMsg($.notifyMsg.join("\n"), {
+ $media: $.avatar
+ });
}
-function _0x5370a4(_0x24412c) {
- return new class {
- constructor(_0x198bc4) {
- this.name = _0x198bc4;
- this.startTime = Date.now();
- const _0x555858 = {
- time: true
+const _0x5ee1f2 = {
+ token: "wwesldfs29aniversaryvdld29",
+ sysCode: "MCS-MIMP-CORE",
+ channel: "wxwd26mem1"
+};
+class UserInfo {
+ constructor(_0x1398b2) {
+ this.index = ++$.userIdx;
+ this.token = "" || _0x1398b2.token || _0x1398b2;
+ this.sfsyUrl = _0x1398b2.token;
+ this.userId = "" || _0x1398b2.userId;
+ this.deviceId = randomPattern("xxxxxxxx-xxxx-xxxx");
+ this.memberDay_black = false;
+ this.memberDay_redPacket_drewToday = false;
+ this.memberDay_redPacket_map = {};
+ this.userIdList = [];
+ this.userName = _0x1398b2.userName;
+ this.avatar = _0x1398b2.avatar;
+ this.ckStatus = true;
+ this.baseUrl = "";
+ this.headers = {};
+ this.fetch = async _0x453f87 => {
+ try {
+ if (typeof _0x453f87 === "string") {
+ _0x453f87 = {
+ url: _0x453f87
+ };
+ }
+ if (_0x453f87?.["url"]?.["startsWith"]("/") || _0x453f87?.["url"]?.["startsWith"](":")) {
+ _0x453f87.url = this.baseUrl + _0x453f87.url;
+ }
+ const _0x31991c = {
+ ..._0x453f87,
+ headers: _0x453f87.headers || this.headers,
+ url: _0x453f87.url
+ };
+ const _0x1f1611 = await Request(_0x31991c);
+ debug(_0x1f1611, _0x453f87?.["url"]?.["replace"](/\/+$/, "")["substring"](_0x453f87?.["url"]?.["lastIndexOf"]("/") + 1));
+ return _0x1f1611;
+ } catch (_0x18e12b) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] 请求发起失败!" + _0x18e12b + "\n");
+ }
+ };
+ }
+ async refresh_cookie() {
+ try {
+ const _0x31094a = {
+ url: this.sfsyUrl,
+ type: "get",
+ resultType: "all",
+ followRedirect: false
};
- this.log("[" + this.name + "]开始运行\n", _0x555858);
- this.notifyStr = [];
- this.notifyFlag = true;
- this.userIdx = 0;
- this.userList = [];
- this.userCount = 0;
- this.default_timestamp_len = 13;
- this.default_wait_interval = 1000;
- this.default_wait_limit = 3600000;
- this.default_wait_ahead = 0;
+ let _0x3f5a16 = await this.fetch(_0x31094a),
+ _0x1bea50 = ObjectKeys2LowerCase(_0x3f5a16?.["headers"]),
+ _0x478f9f = getQueries(_0x1bea50.location);
+ debug(_0x478f9f);
+ if (_0x3f5a16.status != 302) {
+ throw "登录失败";
+ }
+ this.userName = _0x478f9f.mobile;
+ $.log("[" + (this.userName || this.index) + "][INFO] 登录成功");
+ return _0x478f9f;
+ } catch (_0x1868e4) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x1868e4 + "\n");
}
- log(_0x25f67c, _0x45847d = {}) {
- let _0x192e11 = {
- console: true
+ }
+ getSign(_0x1f30dc = _0x5ee1f2) {
+ let _0xca45f7 = Date.now(),
+ {
+ token: _0x11283d,
+ sysCode: _0x1966ab,
+ channel: _0x3a5f23
+ } = _0x1f30dc,
+ _0x333657 = "token=" + _0x11283d + "×tamp=" + _0xca45f7 + "&sysCode=" + _0x1966ab,
+ _0x353638 = $.CryptoJS.MD5(_0x333657).toString($.CryptoJS.enc.Hex);
+ const _0x315559 = {
+ platform: "MINI_PROGRAM",
+ channel: _0x3a5f23,
+ sysCode: _0x1966ab,
+ timestamp: _0xca45f7,
+ signature: _0x353638
+ };
+ return _0x315559;
+ }
+ async queryUserInfo() {
+ try {
+ const _0x241c0a = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberIntegral~userInfoService~queryUserInfo",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: {
+ sysCode: "ESG-CEMP-CORE",
+ optionalColumns: ["usablePoint", "cycleSub", "leavePoint"],
+ token: "zeTLTYeG0bLetfRk"
+ }
};
- Object.assign(_0x192e11, _0x45847d);
- if (_0x192e11.time) {
- let _0x58f096 = _0x192e11.fmt || "hh:mm:ss";
- _0x25f67c = "[" + this.time(_0x58f096) + "]" + _0x25f67c;
+ let _0x1256c3 = await this.fetch(_0x241c0a);
+ if (_0x1256c3.success) {
+ const {
+ usablePoint: _0x3d2df2,
+ cycleSub: _0xf1ccaa,
+ leavePoint: _0x2d8b77,
+ pointClearCycle: _0xb958b9
+ } = _0x1256c3.obj,
+ _0x3a7573 = this.userName || this.index;
+ let _0x57b12b = "[" + _0x3a7573 + "][INFO] 积分: " + _0x3d2df2;
+ const _0x47460e = _0x2d8b77 - _0xf1ccaa,
+ _0x4a1647 = new Date(_0xb958b9 + " 00:00:00");
+ _0x4a1647.setFullYear(_0x4a1647.getFullYear() + 1);
+ _0x47460e > 0 && _0x4a1647.getTime() > Date.now() && (_0x57b12b += ", 有" + _0x47460e + "积分将在" + _0x4a1647.toLocaleDateString("zh-CN") + "过期");
+ $.log(_0x57b12b);
}
- if (_0x192e11.notify) {
- this.notifyStr.push(_0x25f67c);
+ return _0x1256c3.obj;
+ } catch (_0x5e2037) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x5e2037 + "\n");
+ }
+ }
+ async superWelfare_receiveRedPacket() {
+ try {
+ const _0x30b3c7 = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberActLengthy~redPacketActivityService~superWelfare~receiveRedPacket",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: {
+ channel: "czflqdlhbxcx"
+ }
+ };
+ let _0x3397f9 = await this.fetch(_0x30b3c7);
+ if (_0x3397f9.success) {
+ let _0x11d053 = _0x3397f9.obj.giftList;
+ if (_0x3397f9.obj.extraGiftList?.["length"]) {
+ _0x11d053 = _0x11d053.concat(_0x3397f9.obj.extraGiftList);
+ }
+ const _0xf39a7e = _0x11d053.map(_0x51f3dc => _0x51f3dc.giftName).join(", "),
+ _0x143aa0 = _0x3397f9.obj.receiveStatus == 1 ? "领取成功" : "已领取过";
+ $.log("[" + (this.userName || this.index) + "][INFO] 超值福利签到[" + _0x143aa0 + "]: " + _0xf39a7e);
+ } else {
+ $.log("[" + (this.userName || this.index) + "][ERROR] 超值福利签到失败: " + (_0x3397f9.errorMessage || JSON.stringify(_0x3397f9) || "无返回"));
}
- if (_0x192e11.console) {
- console.log(_0x25f67c);
+ } catch (_0x1c0f12) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x1c0f12 + "\n");
+ }
+ }
+ async automaticSignFetchPackage(_0x1a694a = {}) {
+ try {
+ const _0x14998e = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~integralTaskSignPlusService~automaticSignFetchPackage",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: {
+ comeFrom: _0x1a694a.comeFrom || "vioin",
+ channelFrom: _0x1a694a.channelFrom || "SFAPP"
+ }
+ };
+ let _0x538948 = await this.fetch(_0x14998e);
+ if (!_0x538948?.["success"]) {
+ throw new Error("查询签到失败: " + (_0x538948.errorMessage || JSON.stringify(_0x538948) || "无返回"));
}
+ if (_0x538948.obj.hasFinishSign) {
+ $.log("[" + (this.userName || this.index) + "][INFO] 今天已签到");
+ } else {
+ if (_0x538948.obj.integralTaskSignPackageVOList?.["length"]) {
+ const _0x3d58cb = _0x538948.obj.integralTaskSignPackageVOList.map(_0x887b20 => _0x887b20.packetName).join(", ");
+ $.log("[" + (this.userName || this.index) + "][INFO] 签到获得: " + _0x3d58cb);
+ }
+ }
+ await this.queryPointTaskAndSignFromES();
+ const _0x4f393e = {
+ channelType: 3
+ };
+ await this.queryPointTaskAndSignFromES(_0x4f393e);
+ await this.queryUserInfo();
+ } catch (_0x27bae3) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x27bae3 + "\n");
}
- get(_0x2ecf4d, _0x5800fb, _0x1ff76e = "") {
- let _0x5a663b = _0x1ff76e;
- _0x2ecf4d?.["hasOwnProperty"](_0x5800fb) && (_0x5a663b = _0x2ecf4d[_0x5800fb]);
- return _0x5a663b;
+ }
+ async queryPointTaskAndSignFromES(_0x4e67ea = {}) {
+ try {
+ const _0x3ea330 = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~integralTaskStrategyService~queryPointTaskAndSignFromES",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: {
+ deviceId: this.deviceId,
+ channelType: String(_0x4e67ea.channelType || 1)
+ }
+ };
+ let _0x1cdfaa = await this.fetch(_0x3ea330);
+ if (!_0x1cdfaa?.["success"]) {
+ throw new Error("[" + (this.userName || this.index) + "][ERROR] 查询任务失败: " + (_0x1cdfaa.errorMessage || JSON.stringify(_0x1cdfaa) || "无返回"));
+ }
+ for (const _0x25b1a3 of _0x1cdfaa.obj.taskTitleLevels) {
+ switch (_0x25b1a3.status) {
+ case 2:
+ if ($.unTaskList.includes(_0x25b1a3.title)) {
+ break;
+ }
+ await this.finishTask(_0x25b1a3);
+ case 1:
+ await this.fetchIntegral(_0x25b1a3);
+ break;
+ case 3:
+ break;
+ default:
+ $.log("[" + (this.userName || this.index) + "][ERROR] 任务[" + _0x25b1a3.title + "] -- 未知状态[" + _0x25b1a3.status + "]");
+ break;
+ }
+ }
+ } catch (_0x489823) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x489823 + "\n");
}
- pop(_0x2ae8ec, _0xbb54f6, _0x9c8563 = "") {
- let _0x213044 = _0x9c8563;
- _0x2ae8ec?.["hasOwnProperty"](_0xbb54f6) && (_0x213044 = _0x2ae8ec[_0xbb54f6], delete _0x2ae8ec[_0xbb54f6]);
- return _0x213044;
+ }
+ async finishTask(_0x313223) {
+ try {
+ const _0x55dbf4 = {
+ taskCode: _0x313223.taskCode
+ };
+ const _0x81a16b = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonRoutePost/memberEs/taskRecord/finishTask",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: _0x55dbf4
+ };
+ let _0x49f1ac = await this.fetch(_0x81a16b);
+ if (!_0x49f1ac.success) {
+ throw new Error("完成任务[" + _0x313223.title + "]失败: " + (_0x49f1ac.errorMessage || JSON.stringify(_0x49f1ac) || "无返回"));
+ }
+ $.log("[" + (this.userName || this.index) + "][INFO] 完成任务[" + _0x313223.title + "]成功");
+ } catch (_0x4d36af) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x4d36af + "\n");
}
- copy(_0x1fbe5b) {
- return Object.assign({}, _0x1fbe5b);
+ }
+ async fetchIntegral(_0xa141e) {
+ try {
+ const _0x42d9ee = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~integralTaskStrategyService~fetchIntegral",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: {
+ strategyId: _0xa141e.strategyId,
+ taskId: _0xa141e.taskId,
+ taskCode: _0xa141e.taskCode,
+ deviceId: this.deviceId
+ }
+ };
+ let _0x58f8cf = await this.fetch(_0x42d9ee);
+ if (!_0x58f8cf.success) {
+ throw new Error("领取任务[" + _0xa141e.title + "]奖励失败: " + (_0x58f8cf.errorMessage || JSON.stringify(_0x58f8cf) || "无返回"));
+ }
+ $.log("[" + (this.userName || this.index) + "][INFO] 领取任务[" + _0xa141e.title + "]奖励: " + _0x58f8cf.obj.point + "积分");
+ } catch (_0x4a1dd3) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x4a1dd3 + "\n");
}
- read_env(_0x412e83) {
- let _0x1267c5 = _0x4aec53.map(_0x166c56 => process.env[_0x166c56]);
- for (let _0x2b0da2 of _0x1267c5.filter(_0x22b120 => !!_0x22b120)) {
- for (let _0x4465a3 of _0x2b0da2.split(_0x1876a7).filter(_0x3c7dca => !!_0x3c7dca)) {
- if (this.userList.includes(_0x4465a3)) {
+ }
+ async memberDay_task(_0x318242 = {}) {
+ const _0x1bec08 = new Date().getDate();
+ if (_0x1bec08 >= 26 && _0x1bec08 <= 28) {
+ await this.memberDay_index();
+ }
+ }
+ async memberDay_index() {
+ try {
+ const _0x45c7b7 = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~memberDayIndexService~index",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: {}
+ };
+ let _0x4a223d = await this.fetch(_0x45c7b7);
+ if (_0x4a223d?.["success"]) {
+ let {
+ lotteryNum = 0
+ } = _0x4a223d.obj || {};
+ await this.memberDay_redPacketReceivedStatus();
+ $.log("[" + (this.userName || this.index) + "][ERROR] 会员日可以抽奖" + lotteryNum + "次");
+ while (lotteryNum-- > 0) {
+ await this.memberDay_lottery();
+ }
+ if (this.memberDay_black) {
+ return;
+ }
+ await this.memberDay_taskList();
+ if (this.memberDay_black) {
+ return;
+ }
+ await this.memberDay_redPacketStatus();
+ } else {
+ const _0x3e3473 = _0x4a223d?.["errorMessage"] || (_0x4a223d ? JSON.stringify(_0x4a223d) : "无返回");
+ $.log("[" + (this.userName || this.index) + "][ERROR] 查询会员日失败: " + _0x3e3473);
+ _0x3e3473?.["includes"]("没有资格参与活动") && (this.memberDay_black = true, $.log("[" + (this.userName || this.index) + "][ERROR] 会员日任务风控"));
+ }
+ } catch (_0x172476) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x172476 + "\n");
+ }
+ }
+ async memberDay_redPacketReceivedStatus() {
+ try {
+ const _0x1d9627 = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~memberDayTaskService~redPacketReceivedStatus",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: {}
+ };
+ let _0x2a85a2 = await this.fetch(_0x1d9627);
+ if (_0x2a85a2?.["success"]) {
+ for (let _0x331535 of _0x2a85a2?.["obj"] || []) {
+ if (_0x331535.received) {
continue;
}
- this.userList.push(new _0x412e83(_0x4465a3));
+ let _0x453e01 = new Date().getHours();
+ if (_0x331535.receiveHour === _0x453e01) {
+ await this.memberDay_receiveRedPacket(_0x331535.receiveHour);
+ }
+ }
+ } else {
+ let _0x3fb90b = _0x2a85a2?.["errorMessage"] || (_0x2a85a2 ? JSON.stringify(_0x2a85a2) : "无返回");
+ $.log("[" + (this.userName || this.index) + "][ERROR] 会员日查询整点领红包失败: " + _0x3fb90b);
+ if (_0x3fb90b.includes("没有资格参与活动")) {
+ this.memberDay_black = true;
+ $.log("[" + (this.userName || this.index) + "][ERROR] 会员日任务风控");
}
}
- this.userCount = this.userList.length;
- if (!this.userCount) {
- const _0x3d5d5 = {
+ } catch (_0x533d54) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x533d54 + "\n");
+ }
+ }
+ async memberDay_receiveRedPacket(_0x5f5635) {
+ try {
+ const _0x233940 = {
+ receiveHour: _0x5f5635
+ };
+ const _0x2e4fb0 = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~memberDayTaskService~receiveRedPacket",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: _0x233940
+ };
+ let _0x492f8c = await this.fetch(_0x2e4fb0);
+ if (_0x492f8c?.["success"]) {
+ $.log("[" + (this.userName || this.index) + "][INFO] 会员日领取" + _0x5f5635 + "点红包成功");
+ } else {
+ let _0x212d12 = _0x492f8c?.["errorMessage"] || (_0x492f8c ? JSON.stringify(_0x492f8c) : "无返回");
+ $.log("[" + (this.userName || this.index) + "][ERROR] 会员日领取" + _0x5f5635 + "点红包失败: " + _0x212d12);
+ _0x212d12.includes("没有资格参与活动") && (this.memberDay_black = true, $.log("[" + (this.userName || this.index) + "][ERROR] 会员日任务风控"));
+ }
+ } catch (_0x57d4c2) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x57d4c2 + "\n");
+ }
+ }
+ async memberDay_lottery() {
+ try {
+ const _0x276b2b = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~memberDayLotteryService~lottery",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: {}
+ };
+ let _0x47164f = await this.fetch(_0x276b2b);
+ if (_0x47164f?.["success"]) {
+ let {
+ productName = "空气"
+ } = _0x47164f?.["obj"] || {};
+ const _0x3e3f6a = {
notify: true
};
- this.log("未找到变量,请检查变量" + _0x4aec53.map(_0x56423f => "[" + _0x56423f + "]").join("或"), _0x3d5d5);
- return false;
- }
- this.log("共找到" + this.userCount + "个账号");
- return true;
- }
- time(_0x43e381, _0x1822e0 = null) {
- let _0x1de2f7 = _0x1822e0 ? new Date(_0x1822e0) : new Date(),
- _0x180e96 = {
- "M+": _0x1de2f7.getMonth() + 1,
- "d+": _0x1de2f7.getDate(),
- "h+": _0x1de2f7.getHours(),
- "m+": _0x1de2f7.getMinutes(),
- "s+": _0x1de2f7.getSeconds(),
- "q+": Math.floor((_0x1de2f7.getMonth() + 3) / 3),
- S: this.padStr(_0x1de2f7.getMilliseconds(), 3)
- };
- /(y+)/.test(_0x43e381) && (_0x43e381 = _0x43e381.replace(RegExp.$1, (_0x1de2f7.getFullYear() + "").substr(4 - RegExp.$1.length)));
- for (let _0x2cfbd9 in _0x180e96) new RegExp("(" + _0x2cfbd9 + ")").test(_0x43e381) && (_0x43e381 = _0x43e381.replace(RegExp.$1, 1 == RegExp.$1.length ? _0x180e96[_0x2cfbd9] : ("00" + _0x180e96[_0x2cfbd9]).substr(("" + _0x180e96[_0x2cfbd9]).length)));
- return _0x43e381;
- }
- async showmsg() {
- if (!this.notifyFlag) {
- return;
- }
- if (!this.notifyStr.length) {
- return;
- }
- var _0x2264e = require("./sendNotify");
- this.log("\n============== 推送 ==============");
- await _0x2264e.sendNotify(this.name, this.notifyStr.join("\n"));
- }
- padStr(_0x397014, _0x4fcca2, _0x1abd3c = {}) {
- let _0x10354b = _0x1abd3c.padding || "0",
- _0x39ed4e = _0x1abd3c.mode || "l",
- _0x3b33af = String(_0x397014),
- _0x26e87b = _0x4fcca2 > _0x3b33af.length ? _0x4fcca2 - _0x3b33af.length : 0,
- _0x3bb60f = "";
- for (let _0x30ac41 = 0; _0x30ac41 < _0x26e87b; _0x30ac41++) {
- _0x3bb60f += _0x10354b;
- }
- _0x39ed4e == "r" ? _0x3b33af = _0x3b33af + _0x3bb60f : _0x3b33af = _0x3bb60f + _0x3b33af;
- return _0x3b33af;
- }
- json2str(_0x123637, _0x402c90, _0x46e6c5 = false) {
- let _0x75d972 = [];
- for (let _0x2a0f42 of Object.keys(_0x123637).sort()) {
- let _0x2bc1ca = _0x123637[_0x2a0f42];
- if (_0x2bc1ca && _0x46e6c5) {
- _0x2bc1ca = encodeURIComponent(_0x2bc1ca);
- }
- _0x75d972.push(_0x2a0f42 + "=" + _0x2bc1ca);
- }
- return _0x75d972.join(_0x402c90);
- }
- str2json(_0x32e5fc, _0x43a064 = false) {
- let _0x4cd4ad = {};
- for (let _0x520529 of _0x32e5fc.split("&")) {
- if (!_0x520529) {
- continue;
- }
- let _0x1dc4e6 = _0x520529.indexOf("=");
- if (_0x1dc4e6 == -1) {
- continue;
- }
- let _0x4998d0 = _0x520529.substr(0, _0x1dc4e6),
- _0x3ac012 = _0x520529.substr(_0x1dc4e6 + 1);
- if (_0x43a064) {
- _0x3ac012 = decodeURIComponent(_0x3ac012);
- }
- _0x4cd4ad[_0x4998d0] = _0x3ac012;
- }
- return _0x4cd4ad;
- }
- randomPattern(_0x369f7e, _0x4006d8 = "abcdef0123456789") {
- let _0x3140cf = "";
- for (let _0x8e9314 of _0x369f7e) {
- if (_0x8e9314 == "x") {
- _0x3140cf += _0x4006d8.charAt(Math.floor(Math.random() * _0x4006d8.length));
- } else {
- _0x8e9314 == "X" ? _0x3140cf += _0x4006d8.charAt(Math.floor(Math.random() * _0x4006d8.length)).toUpperCase() : _0x3140cf += _0x8e9314;
- }
- }
- return _0x3140cf;
- }
- randomUuid() {
- return this.randomPattern("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
- }
- randomString(_0x33254d, _0x5f4306 = "abcdef0123456789") {
- let _0x440af6 = "";
- for (let _0x475f61 = 0; _0x475f61 < _0x33254d; _0x475f61++) {
- _0x440af6 += _0x5f4306.charAt(Math.floor(Math.random() * _0x5f4306.length));
- }
- return _0x440af6;
- }
- randomList(_0x4242c3) {
- let _0x35c76e = Math.floor(Math.random() * _0x4242c3.length);
- return _0x4242c3[_0x35c76e];
- }
- wait(_0x1dc9b5) {
- return new Promise(_0x54d822 => setTimeout(_0x54d822, _0x1dc9b5));
- }
- async exitNow() {
- await this.showmsg();
- let _0x4210ea = Date.now(),
- _0x52abd1 = (_0x4210ea - this.startTime) / 1000;
- this.log("");
- const _0x4bb8d6 = {
- time: true
- };
- this.log("[" + this.name + "]运行结束,共运行了" + _0x52abd1 + "秒", _0x4bb8d6);
- process.exit(0);
- }
- normalize_time(_0x2e4fd9, _0x6f3e21 = {}) {
- let _0x2a3018 = _0x6f3e21.len || this.default_timestamp_len;
- _0x2e4fd9 = _0x2e4fd9.toString();
- let _0x54eeae = _0x2e4fd9.length;
- while (_0x54eeae < _0x2a3018) {
- _0x2e4fd9 += "0";
- }
- _0x54eeae > _0x2a3018 && (_0x2e4fd9 = _0x2e4fd9.slice(0, 13));
- return parseInt(_0x2e4fd9);
- }
- async wait_until(_0x3145a4, _0x3938d8 = {}) {
- let _0x155654 = _0x3938d8.logger || this,
- _0x808a8f = _0x3938d8.interval || this.default_wait_interval,
- _0x1929a1 = _0x3938d8.limit || this.default_wait_limit,
- _0x4fa992 = _0x3938d8.ahead || this.default_wait_ahead;
- if (typeof _0x3145a4 == "string" && _0x3145a4.includes(":")) {
- if (_0x3145a4.includes("-")) {
- _0x3145a4 = new Date(_0x3145a4).getTime();
- } else {
- let _0xbcf425 = this.time("yyyy-MM-dd ");
- _0x3145a4 = new Date(_0xbcf425 + _0x3145a4).getTime();
- }
- }
- let _0x44ad11 = this.normalize_time(_0x3145a4) - _0x4fa992,
- _0x213d55 = this.time("hh:mm:ss.S", _0x44ad11),
- _0x64f4d7 = Date.now();
- _0x64f4d7 > _0x44ad11 && (_0x44ad11 += 86400000);
- let _0x539462 = _0x44ad11 - _0x64f4d7;
- if (_0x539462 > _0x1929a1) {
- const _0x533822 = {
- time: true
- };
- _0x155654.log("离目标时间[" + _0x213d55 + "]大于" + _0x1929a1 / 1000 + "秒,不等待", _0x533822);
+ $.log("[" + (this.userName || this.index) + "][INFO] 会员日抽奖: " + productName, _0x3e3f6a);
} else {
- const _0x436e20 = {
- time: true
- };
- _0x155654.log("离目标时间[" + _0x213d55 + "]还有" + _0x539462 / 1000 + "秒,开始等待", _0x436e20);
- while (_0x539462 > 0) {
- let _0x5a2288 = Math.min(_0x539462, _0x808a8f);
- await this.wait(_0x5a2288);
- _0x64f4d7 = Date.now();
- _0x539462 = _0x44ad11 - _0x64f4d7;
+ let _0x343cd9 = _0x47164f?.["errorMessage"] || (_0x47164f ? JSON.stringify(_0x47164f) : "无返回");
+ $.log("[" + (this.userName || this.index) + "][ERROR] 会员日抽奖失败: " + _0x343cd9);
+ if (_0x343cd9.includes("没有资格参与活动")) {
+ this.memberDay_black = true;
+ $.log("[" + (this.userName || this.index) + "][ERROR] 会员日任务风控");
}
- const _0x179ceb = {
- time: true
- };
- _0x155654.log("已完成等待", _0x179ceb);
+ }
+ } catch (_0x32c696) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x32c696 + "\n");
+ }
+ }
+ async memberDay_taskList() {
+ try {
+ const _0xd6977b = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~activityTaskService~taskList",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: {
+ activityCode: "MEMBER_DAY",
+ channelType: "MINI_PROGRAM"
+ }
+ };
+ let _0x39c679 = await this.fetch(_0xd6977b);
+ if (_0x39c679?.["success"]) {
+ let _0x402431 = _0x39c679?.["obj"] || [];
+ for (let _0x3852b3 of _0x402431.filter(_0xa5cb50 => _0xa5cb50.status == 1)) {
+ if (this.memberDay_black) {
+ return;
+ }
+ await this.memberDay_fetchMixTaskReward(_0x3852b3);
+ }
+ for (let _0x6139df of _0x402431.filter(_0x46e068 => _0x46e068.status == 2)) {
+ if (this.memberDay_black) {
+ return;
+ }
+ switch (_0x6139df.taskType) {
+ case "SEND_SUCCESS":
+ case "INVITEFRIENDS_PARTAKE_ACTIVITY":
+ case "OPEN_SVIP":
+ case "OPEN_NEW_EXPRESS_CARD":
+ case "OPEN_FAMILY_CARD":
+ case "CHARGE_NEW_EXPRESS_CARD":
+ case "INTEGRAL_EXCHANGE":
+ break;
+ default:
+ for (let _0x3164e7 = 0; _0x3164e7 < _0x6139df.restFinishTime && !this.memberDay_black; _0x3164e7++) {
+ await this.memberDay_finishTask(_0x6139df);
+ }
+ break;
+ }
+ }
+ } else {
+ let _0x521474 = _0x39c679?.["errorMessage"] || (_0x39c679 ? JSON.stringify(_0x39c679) : "无返回");
+ $.log("[" + (this.userName || this.index) + "][ERROR] 查询会员日任务失败: " + _0x521474);
+ if (_0x521474.includes("没有资格参与活动")) {
+ this.memberDay_black = true;
+ $.log("[" + (this.userName || this.index) + "][ERROR] 会员日任务风控");
+ }
+ }
+ } catch (_0x1e5450) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x1e5450 + "\n");
+ }
+ }
+ async memberDay_fetchMixTaskReward(_0x2a9d18) {
+ try {
+ const _0x5bb957 = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~activityTaskService~fetchMixTaskReward",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: {
+ taskType: _0x2a9d18.taskType,
+ activityCode: "MEMBER_DAY",
+ channelType: "MINI_PROGRAM"
+ }
+ };
+ let _0x4346ca = await this.fetch(_0x5bb957);
+ if (_0x4346ca?.["success"]) {
+ $.log("[" + (this.userName || this.index) + "][INFO] 领取会员日任务[" + _0x2a9d18.taskName + "]奖励成功");
+ } else {
+ let _0x38771c = _0x4346ca?.["errorMessage"] || (_0x4346ca ? JSON.stringify(_0x4346ca) : "无返回");
+ $.log("[" + (this.userName || this.index) + "][ERROR] 领取会员日任务奖励失败: " + _0x38771c);
+ _0x38771c.includes("没有资格参与活动") && (this.memberDay_black = true, $.log("[" + (this.userName || this.index) + "][ERROR] 会员日任务风控"));
+ }
+ } catch (_0x19e963) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x19e963 + "\n");
+ }
+ }
+ async memberDay_finishTask(_0x983421) {
+ try {
+ const _0x854875 = {
+ taskCode: _0x983421.taskCode
+ };
+ const _0xa45251 = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberEs~taskRecord~finishTask",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: _0x854875
+ };
+ let _0x233ecc = await this.fetch(_0xa45251);
+ if (_0x233ecc?.["success"]) {
+ $.log("[" + (this.userName || this.index) + "][INFO] 完成会员日任务[" + _0x983421.taskName + "]成功");
+ await this.memberDay_fetchMixTaskReward(_0x983421);
+ } else {
+ let _0x4b08c4 = _0x233ecc?.["errorMessage"] || (_0x233ecc ? JSON.stringify(_0x233ecc) : "无返回");
+ $.log("[" + (this.userName || this.index) + "][ERROR] 完成会员日任务[" + _0x983421.taskName + "]失败: " + _0x4b08c4);
+ _0x4b08c4.includes("没有资格参与活动") && (this.memberDay_black = true, $.log("[" + (this.userName || this.index) + "][ERROR] 会员日任务风控"));
+ }
+ } catch (_0x15a574) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x15a574 + "\n");
+ }
+ }
+ async memberDay_redPacketStatus() {
+ try {
+ const _0x4263e7 = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~memberDayPacketService~redPacketStatus",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: {}
+ };
+ let _0x3a4d0f = await this.fetch(_0x4263e7);
+ if (_0x3a4d0f?.["success"]) {
+ let {
+ drewToday: _0x439fe3,
+ packetList: _0x3f5438
+ } = _0x3a4d0f?.["obj"];
+ this.memberDay_redPacket_drewToday = _0x439fe3;
+ for (let _0xfac880 of _0x3f5438) {
+ this.memberDay_redPacket_map[_0xfac880.level] = _0xfac880.count;
+ }
+ let _0x44ede7 = 8;
+ for (let _0x4270ee = 1; _0x4270ee < _0x44ede7; _0x4270ee++) {
+ let _0xc1af18 = this.memberDay_redPacket_map[_0x4270ee] || 0;
+ while (_0xc1af18 >= 2) {
+ await this.memberDay_redPacketMerge(_0x4270ee);
+ _0xc1af18 -= 2;
+ }
+ }
+ let _0x229986 = [],
+ _0x14e894 = 0;
+ for (let _0x48a6af in this.memberDay_redPacket_map) {
+ if (!this.memberDay_redPacket_map[_0x48a6af]) {
+ continue;
+ }
+ _0x229986.push("[" + _0x48a6af + "级]X" + this.memberDay_redPacket_map[_0x48a6af]);
+ let _0x8e3fb2 = parseInt(_0x48a6af);
+ if (_0x8e3fb2 < _0x44ede7) {
+ _0x14e894 += 1 << _0x8e3fb2 - 1;
+ }
+ }
+ $.log("[" + (this.userName || this.index) + "][INFO] 会员日合成列表: " + _0x229986.join(", "));
+ if (this.memberDay_redPacket_map[_0x44ede7]) {
+ $.log("[" + (this.userName || this.index) + "][INFO] 会员日已拥有[" + _0x44ede7 + "级]红包X" + this.memberDay_redPacket_map[_0x44ede7]);
+ await this.memberDay_redPacketDraw(_0x44ede7);
+ } else {
+ let _0x779223 = _0x44ede7 - _0x14e894;
+ $.log("[" + (this.userName || this.index) + "][INFO] 会员日距离[" + _0x44ede7 + "级]红包还差: [1级]红包X" + _0x779223);
+ }
+ } else {
+ let _0x384cb6 = _0x3a4d0f?.["errorMessage"] || (_0x3a4d0f ? JSON.stringify(_0x3a4d0f) : "无返回");
+ $.log("[" + (this.userName || this.index) + "][ERROR] 查询会员日合成失败" + _0x384cb6);
+ _0x384cb6.includes("没有资格参与活动") && (this.memberDay_black = true, $.log("[" + (this.userName || this.index) + "][ERROR] 会员日任务风控"));
+ }
+ } catch (_0x57cd99) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x57cd99 + "\n");
+ }
+ }
+ async memberDay_redPacketMerge(_0x426862) {
+ try {
+ const _0x242125 = {
+ level: _0x426862,
+ num: 2
+ };
+ const _0x22a267 = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~memberDayPacketService~redPacketMerge",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: _0x242125
+ };
+ let _0x1d382e = await this.fetch(_0x22a267);
+ if (_0x1d382e?.["success"]) {
+ $.log("[" + (this.userName || this.index) + "][INFO] 会员日合成: [" + _0x426862 + "级]红包X2 -> [" + (_0x426862 + 1) + "级]红包");
+ this.memberDay_redPacket_map[_0x426862] -= 2;
+ !this.memberDay_redPacket_map[_0x426862 + 1] && (this.memberDay_redPacket_map[_0x426862 + 1] = 0);
+ this.memberDay_redPacket_map[_0x426862 + 1]++;
+ } else {
+ let _0x32aea5 = _0x1d382e?.["errorMessage"] || (_0x1d382e ? JSON.stringify(_0x1d382e) : "无返回");
+ $.log("[" + (this.userName || this.index) + "][ERROR] 会员日合成两个[" + _0x426862 + "级]红包失败: " + _0x32aea5);
+ if (_0x32aea5.includes("没有资格参与活动")) {
+ this.memberDay_black = true;
+ $.log("[" + (this.userName || this.index) + "][ERROR] 会员日任务风控");
+ }
+ }
+ } catch (_0x1b12db) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x1b12db + "\n");
+ }
+ }
+ async memberDay_redPacketDraw(_0x4f2162) {
+ try {
+ const _0x4adaa5 = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~memberDayPacketService~redPacketDraw",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: {
+ level: _0x4f2162.toString()
+ }
+ };
+ let _0x5d690f = await this.fetch(_0x4adaa5);
+ if (_0x5d690f?.["success"]) {
+ let _0xf4df4a = _0x5d690f?.["obj"]?.["map"](_0x5be5e8 => _0x5be5e8.couponName) || [];
+ $.log("[" + (this.userName || this.index) + "][INFO] 会员日提取[" + _0x4f2162 + "级]红包: " + (_0xf4df4a.join(", ") || "空气"));
+ } else {
+ let _0x569021 = _0x5d690f?.["errorMessage"] || (_0x5d690f ? JSON.stringify(_0x5d690f) : "无返回");
+ $.log("[" + (this.userName || this.index) + "][ERROR] 会员日提取[" + _0x4f2162 + "级]红包失败: " + _0x569021);
+ _0x569021.includes("没有资格参与活动") && (this.memberDay_black = true, $.log("[" + (this.userName || this.index) + "][ERROR] 会员日任务风控"));
+ }
+ } catch (_0x3845eb) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x3845eb + "\n");
+ }
+ }
+ async bee_indexData() {
+ try {
+ let _0x55aee5 = randomList(this.userIdList.filter(_0x52ef50 => _0x52ef50 !== this.userId));
+ const _0x1a5a1b = {
+ inviteUserId: _0x55aee5
+ };
+ const _0x51c4e1 = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~receiveExchangeIndexService~indexData",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: _0x1a5a1b
+ };
+ let _0x9132c0 = await this.fetch(_0x51c4e1);
+ if (_0x9132c0?.["success"]) {
+ let {
+ friendAwards = [],
+ gameNum = 0,
+ usableHoney = 0,
+ capacity = 0
+ } = _0x9132c0?.["obj"];
+ $.beeHoney = usableHoney;
+ friendAwards.length > 0 && $.log("[" + (this.userName || this.index) + "][INFO] 获得奖励: " + friendAwards.map(_0x4814e7 => _0x4814e7.name).join(", "));
+ $.log("[" + (this.userName || this.index) + "][INFO] 可以进行采蜜冒险 " + gameNum + " 次");
+ while (gameNum-- > 0) {
+ await this.bee_gameReport();
+ }
+ await this.bee_taskDetail();
+ } else {
+ $.log("[" + (this.userName || this.index) + "][ERROR] 进入采蜜游戏主页失败: " + (_0x9132c0?.["errorMessage"] || (_0x9132c0 ? JSON.stringify(_0x9132c0) : "无返回")));
+ return;
+ }
+ let _0x38aa5d = await this.fetch(_0x51c4e1);
+ if (_0x38aa5d?.["success"]) {
+ for (let _0x1d4b0b of _0x38aa5d?.["obj"]?.["taskDetail"] || []) {
+ await this.bee_receiveHoney(_0x1d4b0b);
+ }
+ } else {
+ $.log("[" + (this.userName || this.index) + "][ERROR] 获取采蜜任务详情失败: " + (_0x38aa5d?.["errorMessage"] || (_0x38aa5d ? JSON.stringify(_0x38aa5d) : "无返回")));
+ return;
+ }
+ let _0x53af1c = await this.fetch(_0x51c4e1);
+ if (_0x53af1c?.["success"]) {
+ $.log("[" + (this.userName || this.index) + "][INFO] 采蜜游戏丰蜜: " + (_0x53af1c?.["obj"]?.["usableHoney"] || 0));
+ $.beeHoney = _0x53af1c?.["obj"]["usableHoney"] - $.beeHoney;
+ } else {
+ $.log("[" + (this.userName || this.index) + "][ERROR] 获取采蜜游戏丰蜜失败: " + (_0x53af1c?.["errorMessage"] || (_0x53af1c ? JSON.stringify(_0x53af1c) : "无返回")));
+ return;
+ }
+ } catch (_0x5d19c9) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x5d19c9 + "\n");
+ }
+ }
+ async bee_taskDetail() {
+ try {
+ const _0x3e602a = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~receiveExchangeIndexService~taskDetail",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: {}
+ };
+ let _0x301612 = await this.fetch(_0x3e602a);
+ if (_0x301612?.["success"]) {
+ for (let _0x2a4e39 of _0x301612.obj.list) {
+ if (!_0x2a4e39.taskCode) {
+ continue;
+ }
+ switch (_0x2a4e39.status) {
+ case 2:
+ if ($.unTaskList.includes(_0x2a4e39.taskType)) {
+ break;
+ }
+ await this.bee_finishTask(_0x2a4e39);
+ case 1:
+ case 3:
+ break;
+ default:
+ $.log("[" + (this.userName || this.index) + "][ERROR] 任务[" + _0x2a4e39.title + "] -- 未知状态[" + _0x2a4e39.status + "]");
+ break;
+ }
+ }
+ } else {
+ $.log("[" + (this.userName || this.index) + "][ERROR] 查询任务失败: " + (_0x301612?.["errorMessage"] || (_0x301612 ? JSON.stringify(_0x301612) : "无返回")));
+ }
+ } catch (_0x475124) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x475124 + "\n");
+ }
+ }
+ async bee_expand() {
+ try {
+ const _0x4b98c7 = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~receiveExchangeApiService~expand",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: {}
+ };
+ let _0x1a2be3 = await this.fetch(_0x4b98c7);
+ if (!_0x1a2be3?.["success"]) {
+ throw new Error("采蜜扩容失败: " + (_0x1a2be3?.["errorMessage"] || _0x1a2be3));
+ }
+ $.log("[" + (this.userName || this.index) + "][INFO] " + "采蜜扩容成功");
+ } catch (_0x4322b8) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x4322b8 + "\n");
+ }
+ }
+ async bee_finishTask(_0x5ba214) {
+ try {
+ const _0x31487d = {
+ taskCode: _0x5ba214.taskCode
+ };
+ const _0x581153 = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberEs~taskRecord~finishTask",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: _0x31487d
+ };
+ let _0x2f733d = await this.fetch(_0x581153);
+ if (!_0x2f733d?.["success"]) {
+ throw new Error("完成采蜜任务失败: " + (_0x2f733d?.["errorMessage"] || _0x2f733d));
+ }
+ $.log("[" + (this.userName || this.index) + "][INFO] " + "完成采蜜任务[" + _0x5ba214.taskType + "]成功");
+ } catch (_0x4a5b93) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x4a5b93 + "\n");
+ }
+ }
+ async bee_receiveHoney(_0x452797) {
+ try {
+ const _0x4856cc = {
+ taskType: _0x452797.type
+ };
+ const _0x1f2d5c = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~receiveExchangeIndexService~receiveHoney",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: _0x4856cc
+ };
+ let _0x59ecaf = await this.fetch(_0x1f2d5c);
+ if (!_0x59ecaf?.["success"]) {
+ throw new Error("领取[" + _0x452797.type + "]奖励失败: " + ("" + (_0x59ecaf?.["errorMessage"] || _0x59ecaf)));
+ }
+ $.log("[" + (this.userName || this.index) + "][INFO] " + "领取[" + _0x452797.type + "]奖励获得: " + _0x452797.value + "丰蜜");
+ } catch (_0x34837d) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x34837d + "\n");
+ }
+ }
+ async bee_gameReport() {
+ try {
+ let _0x2a083d = 20;
+ const _0x46349f = {
+ gatherHoney: _0x2a083d
+ };
+ const _0x62f9b8 = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/commonPost/~memberNonactivity~receiveExchangeGameService~gameReport",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: _0x46349f
+ };
+ let _0x4dabb1 = await this.fetch(_0x62f9b8);
+ if (!_0x4dabb1?.["success"]) {
+ throw new Error("采蜜冒险失败: " + (_0x4dabb1?.["errorMessage"] || _0x4dabb1));
+ }
+ $.log("[" + (this.userName || this.index) + "][INFO] 采蜜冒险获得" + _0x2a083d + "丰蜜");
+ } catch (_0x3015a9) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x3015a9 + "\n");
+ }
+ }
+ async coupon_list(_0x263942 = 1, _0x2027fe = 100) {
+ try {
+ const _0x1baeb7 = {
+ couponType: "",
+ pageNo: _0x263942,
+ pageSize: _0x2027fe
+ };
+ const _0x23977a = {
+ url: "https://mcs-mimp-web.sf-express.com/mcs-mimp/coupon/available/list",
+ type: "post",
+ headers: {
+ ...this.getSign()
+ },
+ dataType: "json",
+ body: _0x1baeb7
+ };
+ let _0x3824b6 = await this.fetch(_0x23977a);
+ if (!_0x3824b6.success) {
+ throw new Error("查询账号券失败: " + (_0x3824b6.errorMessage || JSON.stringify(_0x3824b6) || "无返回"));
+ }
+ let _0x3dd68e = _0x3824b6?.["obj"] || [],
+ _0x4d7ab6 = _0x3dd68e.filter(_0x34e7f4 => _0x34e7f4.couponType === "1" && _0x34e7f4.pledgeAmt >= 8);
+ _0x4d7ab6.length > 0 && ($.log("[" + (this.userName || this.index) + "][INFO] 大额优惠券:"), $.log(_0x4d7ab6.map(_0x19d03a => "[" + (this.userName || this.index) + "][INFO] " + _0x19d03a.couponName + ", 过期时间: " + _0x19d03a.invalidTm).join("\n")));
+ } catch (_0x315b4a) {
+ this.ckStatus = false;
+ $.log("[" + (this.userName || this.index) + "][ERROR] " + _0x315b4a + "\n");
+ }
+ }
+}
+async function getCookie() {
+ try {
+ if ($request && $request.method === "OPTIONS") {
+ return;
+ }
+ const _0x589f43 = ObjectKeys2LowerCase($response.headers) ?? {};
+ if (!_0x589f43) {
+ throw new Error("错误的运行方式,请切换到cron环境");
+ }
+ let _0x2effa6 = getQueries(_0x589f43.location);
+ $.log($.toStr(_0x2effa6));
+ $.log($.toStr(_0x589f43));
+ const _0x16c667 = {
+ userId: _0x2effa6.userId,
+ token: $request.url,
+ userName: _0x2effa6?.["mobile"]
+ },
+ _0x426ee9 = userCookie.findIndex(_0x5375a2 => _0x5375a2.userId == _0x16c667.userId);
+ userCookie[_0x426ee9] ? userCookie[_0x426ee9] = _0x16c667 : userCookie.push(_0x16c667);
+ $.setjson(userCookie, ckName);
+ $.msg($.name, "🎉账号[" + _0x16c667.userName + "]更新token成功!", "");
+ } catch (_0x3ade75) {
+ throw _0x3ade75;
+ }
+}
+function randomPattern(_0x3c17a7, _0x8d884 = "abcdef0123456789") {
+ return _0x3c17a7.split("").map(_0x4bec48 => {
+ if (_0x4bec48 === "x") {
+ return _0x8d884.charAt(Math.floor(Math.random() * _0x8d884.length));
+ } else {
+ return _0x4bec48 === "X" ? _0x8d884.charAt(Math.floor(Math.random() * _0x8d884.length)).toUpperCase() : _0x4bec48;
+ }
+ }).join("");
+}
+function phone_num(_0x591173) {
+ if (_0x591173.length == 11) {
+ let _0x236732 = _0x591173.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2");
+ return _0x236732;
+ } else {
+ return _0x591173;
+ }
+}
+async function loadCryptoJS() {
+ let _0x506037 = ($.isNode() ? require("crypto-js") : $.getdata("CryptoJS_code")) || "";
+ if ($.isNode()) {
+ return _0x506037;
+ }
+ if (_0x506037 && Object.keys(_0x506037).length) {
+ console.log("[INFO] 缓存中存在CryptoJS代码, 跳过下载\n");
+ eval(_0x506037);
+ return createCryptoJS();
+ }
+ console.log("[INFO] 开始下载CryptoJS代码\n");
+ return new Promise(async _0x4915bc => {
+ $.getScript("https://cdn.jsdelivr.net/gh/Sliverkiss/QuantumultX@main/Utils/CryptoJS.min.js").then(_0x1915b9 => {
+ $.setdata(_0x1915b9, "CryptoJS_code");
+ eval(_0x1915b9);
+ const _0x32addd = createCryptoJS();
+ console.log("[INFO] CryptoJS加载成功, 请继续\n");
+ _0x4915bc(_0x32addd);
+ });
+ });
+}
+function getQueries(_0x34a312) {
+ const [, _0x5a8c5a] = _0x34a312.split("?");
+ return _0x5a8c5a ? _0x5a8c5a.split("&").reduce((_0x38438c, _0x1be0b6) => {
+ const [_0x4568e6, _0x33c983] = _0x1be0b6.split("=");
+ _0x38438c[_0x4568e6] = _0x33c983;
+ return _0x38438c;
+ }, {}) : {};
+}
+function randomList(_0x217c5b) {
+ if (!_0x217c5b.length) {
+ return null;
+ }
+ let _0x464f34 = Math.floor(Math.random() * _0x217c5b.length);
+ return _0x217c5b[_0x464f34];
+}
+function copy(_0x5ce176) {
+ return Object.assign({}, _0x5ce176);
+}
+!(async () => {
+ try {
+ typeof $request != "undefined" ? await getCookie() : ($.CryptoJS = await loadCryptoJS(), await checkEnv(), await main());
+ } catch (_0x52bf35) {
+ throw _0x52bf35;
+ }
+})().catch(_0x376214 => {
+ $.logErr(_0x376214);
+ $.msg($.name, "⛔️ script run error!", _0x376214.message || _0x376214);
+}).finally(async () => {
+ const _0x13f7ef = {
+ ok: 1
+ };
+ $.done(_0x13f7ef);
+});
+async function sendMsg(a, e) {
+ a && ($.isNode() ? await notify.sendNotify($.name, a) : $.msg($.name, $.title || "", a, e));
+}
+function DoubleLog(o) {
+ o && ($.log(`${o}`), $.notifyMsg.push(`${o}`));
+}
+async function checkEnv() {
+ try {
+ if (!userCookie?.length) {
+ throw new Error("no available accounts found");
+ }
+ $.log(`\n[INFO] 检测到 ${userCookie?.length ?? 0} 个账号\n`);
+ $.userList.push(...userCookie.map(o => new UserInfo(o)).filter(Boolean));
+ } catch (o) {
+ throw o;
+ }
+}
+function debug(g, e = "debug") {
+ "true" === $.is_debug && ($.log(`\n-----------${e}------------\n`), $.log("string" == typeof g ? g : $.toStr(g) || `debug error => t=${g}`), $.log(`\n-----------${e}------------\n`));
+}
+function ObjectKeys2LowerCase(obj) {
+ return !obj ? {} : Object.fromEntries(Object.entries(obj).map(([k, v]) => [k.toLowerCase(), v]));
+}
+async function Request(t) {
+ "string" == typeof t && (t = {
+ url: t
+ });
+ try {
+ if (!t?.url) {
+ throw new Error("[URL][ERROR] 缺少 url 参数");
+ }
+ let {
+ url: o,
+ type: e,
+ headers: r = {},
+ body: s,
+ params: a,
+ dataType: n = "form",
+ resultType: u = "data"
+ } = t;
+ const p = e ? e?.toLowerCase() : "body" in t ? "post" : "get",
+ c = o.concat("post" === p ? "?" + $.queryStr(a) : ""),
+ i = t.timeout ? $.isSurge() ? t.timeout / 1000 : t.timeout : 10000;
+ "json" === n && (r["Content-Type"] = "application/json;charset=UTF-8");
+ const y = "string" == typeof s ? s : s && "form" == n ? $.queryStr(s) : $.toStr(s),
+ l = {
+ ...t,
+ ...(t?.opts ? t.opts : {}),
+ url: c,
+ headers: r,
+ ...("post" === p && {
+ body: y
+ }),
+ ...("get" === p && a && {
+ params: a
+ }),
+ timeout: i
+ },
+ m = $.http[p.toLowerCase()](l).then(t => "data" == u ? $.toObj(t.body) || t.body : $.toObj(t) || t).catch(t => $.log(`[${p.toUpperCase()}][ERROR] ${t}\n`));
+ return Promise.race([new Promise((t, o) => setTimeout(() => o("当前请求已超时"), i)), m]);
+ } catch (t) {
+ console.log(`[${p.toUpperCase()}][ERROR] ${t}\n`);
+ }
+}
+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;
+ "POST" === e && (s = this.post);
+ const i = new Promise((e, i) => {
+ s.call(this, t, (t, s, o) => {
+ t ? i(t) : e(s);
+ });
+ });
+ return t.timeout ? ((t, e = 1000) => Promise.race([t, new Promise((t, s) => {
+ setTimeout(() => {
+ s(new Error("请求超时"));
+ }, e);
+ })]))(i, t.timeout) : i;
+ }
+ 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.logLevels = {
+ debug: 0,
+ info: 1,
+ warn: 2,
+ error: 3
+ };
+ this.logLevelPrefixs = {
+ debug: "[DEBUG] ",
+ info: "[INFO] ",
+ warn: "[WARN] ",
+ error: "[ERROR] "
+ };
+ this.logLevel = "info";
+ 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.encoding = "utf-8";
+ this.startTime = new Date().getTime();
+ Object.assign(this, e);
+ this.log("", `🔔${this.name}, 开始!`);
+ }
+ getEnv() {
+ return "undefined" != typeof $environment && $environment["surge-version"] ? "Surge" : "undefined" != typeof $environment && $environment["stash-version"] ? "Stash" : "undefined" != typeof module && module.exports ? "Node.js" : "undefined" != typeof $task ? "Quantumult X" : "undefined" != typeof $loon ? "Loon" : "undefined" != typeof $rocket ? "Shadowrocket" : void 0;
+ }
+ isNode() {
+ return "Node.js" === this.getEnv();
+ }
+ isQuanX() {
+ return "Quantumult X" === this.getEnv();
+ }
+ isSurge() {
+ return "Surge" === this.getEnv();
+ }
+ isLoon() {
+ return "Loon" === this.getEnv();
+ }
+ isShadowrocket() {
+ return "Shadowrocket" === this.getEnv();
+ }
+ isStash() {
+ return "Stash" === this.getEnv();
+ }
+ toObj(t, e = null) {
+ try {
+ return JSON.parse(t);
+ } catch {
+ return e;
}
}
- async wait_gap_interval(_0x5caf3a, _0x373b08) {
- let _0x5561b7 = Date.now() - _0x5caf3a;
- _0x5561b7 < _0x373b08 && (await this.wait(_0x373b08 - _0x5561b7));
+ toStr(t, e = null, ...s) {
+ try {
+ return JSON.stringify(t, ...s);
+ } catch {
+ return e;
+ }
}
- }(_0x24412c);
+ getjson(t, e) {
+ let s = e;
+ if (this.getdata(t)) {
+ 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 o = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");
+ o = o ? 1 * o : 20;
+ o = e && e.timeout ? e.timeout : o;
+ const [r, a] = i.split("@"),
+ n = {
+ url: `http://${a}/v1/scripting/evaluate`,
+ body: {
+ script_text: t,
+ mock_type: "cron",
+ timeout: o
+ },
+ headers: {
+ "X-Key": r,
+ Accept: "*/*"
+ },
+ policy: "DIRECT",
+ timeout: o
+ };
+ 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),
+ o = JSON.stringify(this.data);
+ s ? this.fs.writeFileSync(t, o) : i ? this.fs.writeFileSync(e, o) : this.fs.writeFileSync(t, o);
+ }
+ }
+ lodash_get(t, e, s) {
+ const i = e.replace(/\[(\d+)\]/g, ".$1").split(".");
+ let o = t;
+ for (const t of i) if (o = Object(o)[t], void 0 === o) {
+ return s;
+ }
+ return o;
+ }
+ lodash_set(t, e, s) {
+ Object(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);
+ return t;
+ }
+ getdata(t) {
+ let e = this.getval(t);
+ if (/^@/.test(t)) {
+ const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t),
+ o = s ? this.getval(s) : "";
+ if (o) {
+ try {
+ const t = JSON.parse(o);
+ e = t ? this.lodash_get(t, i, "") : e;
+ } catch (t) {
+ e = "";
+ }
+ }
+ }
+ return e;
+ }
+ setdata(t, e) {
+ let s = !1;
+ if (/^@/.test(e)) {
+ const [, i, o] = /^@(.*?)\.(.*?)$/.exec(e),
+ r = this.getval(i),
+ a = i ? "null" === r ? null : r || "{}" : "{}";
+ try {
+ const e = JSON.parse(a);
+ this.lodash_set(e, o, t);
+ s = this.setval(JSON.stringify(e), i);
+ } catch (e) {
+ const r = {};
+ this.lodash_set(r, o, t);
+ s = this.setval(JSON.stringify(r), i);
+ }
+ } else {
+ s = this.setval(t, e);
+ }
+ return s;
+ }
+ getval(t) {
+ switch (this.getEnv()) {
+ case "Surge":
+ case "Loon":
+ case "Stash":
+ case "Shadowrocket":
+ return $persistentStore.read(t);
+ case "Quantumult X":
+ return $prefs.valueForKey(t);
+ case "Node.js":
+ this.data = this.loaddata();
+ return this.data[t];
+ default:
+ return this.data && this.data[t] || null;
+ }
+ }
+ setval(t, e) {
+ switch (this.getEnv()) {
+ case "Surge":
+ case "Loon":
+ case "Stash":
+ case "Shadowrocket":
+ return $persistentStore.write(t, e);
+ case "Quantumult X":
+ return $prefs.setValueForKey(t, e);
+ case "Node.js":
+ this.data = this.loaddata();
+ this.data[e] = t;
+ this.writedata();
+ return !0;
+ default:
+ return 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 : {}, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.cookie && void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)));
+ }
+ get(t, e = () => {}) {
+ switch (t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"], delete t.headers["content-type"], delete t.headers["content-length"]), t.params && (t.url += "?" + this.queryStr(t.params)), void 0 === t.followRedirect || t.followRedirect || ((this.isSurge() || this.isLoon()) && (t["auto-redirect"] = !1), this.isQuanX() && (t.opts ? t.opts.redirection = !1 : t.opts = {
+ redirection: !1
+ })), this.getEnv()) {
+ case "Surge":
+ case "Loon":
+ case "Stash":
+ case "Shadowrocket":
+ default:
+ 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 ? s.status : s.statusCode, s.status = s.statusCode);
+ e(t, s, i);
+ });
+ break;
+ case "Quantumult X":
+ this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {
+ hints: !1
+ }));
+ $task.fetch(t).then(t => {
+ const {
+ statusCode: s,
+ statusCode: i,
+ headers: o,
+ body: r,
+ bodyBytes: a
+ } = t;
+ e(null, {
+ status: s,
+ statusCode: i,
+ headers: o,
+ body: r,
+ bodyBytes: a
+ }, r, a);
+ }, t => e(t && t.error || "UndefinedError"));
+ break;
+ case "Node.js":
+ let s = require("iconv-lite");
+ 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: i,
+ statusCode: o,
+ headers: r,
+ rawBody: a
+ } = t,
+ n = s.decode(a, this.encoding);
+ e(null, {
+ status: i,
+ statusCode: o,
+ headers: r,
+ rawBody: a,
+ body: n
+ }, n);
+ }, t => {
+ const {
+ message: i,
+ response: o
+ } = t;
+ e(i, o, o && s.decode(o.rawBody, this.encoding));
+ });
+ break;
+ }
+ }
+ post(t, e = () => {}) {
+ const s = t.method ? t.method.toLocaleLowerCase() : "post";
+ switch (t.body && t.headers && !t.headers["Content-Type"] && !t.headers["content-type"] && (t.headers["content-type"] = "application/x-www-form-urlencoded"), t.headers && (delete t.headers["Content-Length"], delete t.headers["content-length"]), void 0 === t.followRedirect || t.followRedirect || ((this.isSurge() || this.isLoon()) && (t["auto-redirect"] = !1), this.isQuanX() && (t.opts ? t.opts.redirection = !1 : t.opts = {
+ redirection: !1
+ })), this.getEnv()) {
+ case "Surge":
+ case "Loon":
+ case "Stash":
+ case "Shadowrocket":
+ default:
+ this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {
+ "X-Surge-Skip-Scripting": !1
+ }));
+ $httpClient[s](t, (t, s, i) => {
+ !t && s && (s.body = i, s.statusCode = s.status ? s.status : s.statusCode, s.status = s.statusCode);
+ e(t, s, i);
+ });
+ break;
+ case "Quantumult X":
+ t.method = s;
+ this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {
+ hints: !1
+ }));
+ $task.fetch(t).then(t => {
+ const {
+ statusCode: s,
+ statusCode: i,
+ headers: o,
+ body: r,
+ bodyBytes: a
+ } = t;
+ e(null, {
+ status: s,
+ statusCode: i,
+ headers: o,
+ body: r,
+ bodyBytes: a
+ }, r, a);
+ }, t => e(t && t.error || "UndefinedError"));
+ break;
+ case "Node.js":
+ let i = require("iconv-lite");
+ this.initGotEnv(t);
+ const {
+ url: o,
+ ...r
+ } = t;
+ this.got[s](o, r).then(t => {
+ const {
+ statusCode: s,
+ statusCode: o,
+ headers: r,
+ rawBody: a
+ } = t,
+ n = i.decode(a, this.encoding);
+ e(null, {
+ status: s,
+ statusCode: o,
+ headers: r,
+ rawBody: a,
+ body: n
+ }, n);
+ }, t => {
+ const {
+ message: s,
+ response: o
+ } = t;
+ e(s, o, o && i.decode(o.rawBody, this.encoding));
+ });
+ break;
+ }
+ }
+ 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;
+ }
+ queryStr(t) {
+ let e = "";
+ for (const s in t) {
+ let i = t[s];
+ null != i && "" !== i && ("object" == typeof i && (i = JSON.stringify(i)), e += `${s}=${i}&`);
+ }
+ e = e.substring(0, e.length - 1);
+ return e;
+ }
+ msg(e = t, s = "", i = "", o = {}) {
+ const r = t => {
+ const {
+ $open: e,
+ $copy: s,
+ $media: i,
+ $mediaMime: o
+ } = t;
+ switch (typeof t) {
+ case void 0:
+ return t;
+ case "string":
+ switch (this.getEnv()) {
+ case "Surge":
+ case "Stash":
+ default:
+ return {
+ url: t
+ };
+ case "Loon":
+ case "Shadowrocket":
+ return t;
+ case "Quantumult X":
+ return {
+ "open-url": t
+ };
+ case "Node.js":
+ return;
+ }
+ case "object":
+ switch (this.getEnv()) {
+ case "Surge":
+ case "Stash":
+ case "Shadowrocket":
+ default:
+ {
+ const r = {};
+ let a = t.openUrl || t.url || t["open-url"] || e;
+ a && Object.assign(r, {
+ action: "open-url",
+ url: a
+ });
+ let n = t["update-pasteboard"] || t.updatePasteboard || s;
+ if (n && Object.assign(r, {
+ action: "clipboard",
+ text: n
+ }), i) {
+ let t, e, s;
+ if (i.startsWith("http")) {
+ t = i;
+ } else {
+ if (i.startsWith("data:")) {
+ const [t] = i.split(";"),
+ [, o] = i.split(",");
+ e = o;
+ s = t.replace("data:", "");
+ } else {
+ e = i;
+ s = (t => {
+ const e = {
+ JVBERi0: "application/pdf",
+ R0lGODdh: "image/gif",
+ R0lGODlh: "image/gif",
+ iVBORw0KGgo: "image/png",
+ "/9j/": "image/jpg"
+ };
+ for (var s in e) if (0 === t.indexOf(s)) {
+ return e[s];
+ }
+ return null;
+ })(i);
+ }
+ }
+ Object.assign(r, {
+ "media-url": t,
+ "media-base64": e,
+ "media-base64-mime": o ?? s
+ });
+ }
+ Object.assign(r, {
+ "auto-dismiss": t["auto-dismiss"],
+ sound: t.sound
+ });
+ return r;
+ }
+ case "Loon":
+ {
+ const s = {};
+ let o = t.openUrl || t.url || t["open-url"] || e;
+ o && Object.assign(s, {
+ openUrl: o
+ });
+ let r = t.mediaUrl || t["media-url"];
+ i?.startsWith("http") && (r = i);
+ r && Object.assign(s, {
+ mediaUrl: r
+ });
+ console.log(JSON.stringify(s));
+ return s;
+ }
+ case "Quantumult X":
+ {
+ const o = {};
+ let r = t["open-url"] || t.url || t.openUrl || e;
+ r && Object.assign(o, {
+ "open-url": r
+ });
+ let a = t["media-url"] || t.mediaUrl;
+ i?.startsWith("http") && (a = i);
+ a && Object.assign(o, {
+ "media-url": a
+ });
+ let n = t["update-pasteboard"] || t.updatePasteboard || s;
+ n && Object.assign(o, {
+ "update-pasteboard": n
+ });
+ console.log(JSON.stringify(o));
+ return o;
+ }
+ case "Node.js":
+ return;
+ }
+ default:
+ return;
+ }
+ };
+ if (!this.isMute) {
+ switch (this.getEnv()) {
+ case "Surge":
+ case "Loon":
+ case "Stash":
+ case "Shadowrocket":
+ default:
+ $notification.post(e, s, i, r(o));
+ break;
+ case "Quantumult X":
+ $notify(e, s, i, r(o));
+ break;
+ case "Node.js":
+ break;
+ }
+ }
+ if (!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);
+ }
+ }
+ debug(...t) {
+ this.logLevels[this.logLevel] <= this.logLevels.debug && (t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(`${this.logLevelPrefixs.debug}${t.map(t => t ?? String(t)).join(this.logSeparator)}`));
+ }
+ info(...t) {
+ this.logLevels[this.logLevel] <= this.logLevels.info && (t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(`${this.logLevelPrefixs.info}${t.map(t => t ?? String(t)).join(this.logSeparator)}`));
+ }
+ warn(...t) {
+ this.logLevels[this.logLevel] <= this.logLevels.warn && (t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(`${this.logLevelPrefixs.warn}${t.map(t => t ?? String(t)).join(this.logSeparator)}`));
+ }
+ error(...t) {
+ this.logLevels[this.logLevel] <= this.logLevels.error && (t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(`${this.logLevelPrefixs.error}${t.map(t => t ?? String(t)).join(this.logSeparator)}`));
+ }
+ log(...t) {
+ t.length > 0 && (this.logs = [...this.logs, ...t]);
+ console.log(t.map(t => t ?? String(t)).join(this.logSeparator));
+ }
+ logErr(t, e) {
+ switch (this.getEnv()) {
+ case "Surge":
+ case "Loon":
+ case "Stash":
+ case "Shadowrocket":
+ case "Quantumult X":
+ default:
+ this.log("", `❗️${this.name}, 错误!`, e, t);
+ break;
+ case "Node.js":
+ this.log("", `❗️${this.name}, 错误!`, e, void 0 !== t.message ? t.message : t, t.stack);
+ break;
+ }
+ }
+ wait(t) {
+ return new Promise(e => setTimeout(e, t));
+ }
+ done(t = {}) {
+ const e = (new Date().getTime() - this.startTime) / 1000;
+ switch (this.log("", `🔔${this.name}, 结束! 🕛 ${e} 秒`), this.log(), this.getEnv()) {
+ case "Surge":
+ case "Loon":
+ case "Stash":
+ case "Shadowrocket":
+ case "Quantumult X":
+ default:
+ $done(t);
+ break;
+ case "Node.js":
+ process.exit(1);
+ }
+ }
+ }(t, e);
}
\ No newline at end of file