From 55c9e11d8156b90420aa4b990df16e8bb3e9974b Mon Sep 17 00:00:00 2001
From: XiaoGe-LiBai <2381919454@qq.com>
Date: Thu, 5 Dec 2024 15:10:04 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
zgdx中国电信.js | 2322 -------------------------------------------
中国电信.js | 2312 ------------------------------------------
电信兑换.py | 451 ---------
电信金豆换话费1.py | 488 ---------
电信金豆换话费2.py | 488 ---------
电信金豆换话费3.py | 488 ---------
电信金豆换话费4.py | 488 ---------
联通阅读自动兑换.js | 372 -------
8 files changed, 7409 deletions(-)
delete mode 100644 zgdx中国电信.js
delete mode 100644 中国电信.js
delete mode 100644 电信兑换.py
delete mode 100644 电信金豆换话费1.py
delete mode 100644 电信金豆换话费2.py
delete mode 100644 电信金豆换话费3.py
delete mode 100644 电信金豆换话费4.py
delete mode 100644 联通阅读自动兑换.js
diff --git a/zgdx中国电信.js b/zgdx中国电信.js
deleted file mode 100644
index a6be39f..0000000
--- a/zgdx中国电信.js
+++ /dev/null
@@ -1,2322 +0,0 @@
-/*青龙的,添加2个环境变量
-变量名:NODE_OPTIONS
-值:--tls-cipher-list=DEFAULT@SECLEVEL=0
-青龙全局变量
-变量名:chinaTelecomAccount
-值:手机号#服务密码
-*/
-
-
-
-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 ";
-
- const _0xb709e1 = {
- fn: "get_ticket",
- method: "post",
- url: "https://appgologin.189.cn:9031/map/clientXML",
- body: _0x21dd20
- };
- let {
- result: _0x9f4220,
- statusCode: _0x1e891f
- } = await this.request(_0xb709e1);
-
- 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
- };
- const _0x139dfe = {
- fn: "login",
- method: "get",
- url: "https://wapside.189.cn:9001/jt-sign/ssoHomLogin",
- searchParams: _0x59fe75
- };
-
- let {
- result: _0x36bbb6,
- statusCode: _0x3a8945
- } = await this.request(_0x139dfe),
- _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 {
- const _0x314c14 = {
- phone: this.name
- };
-
- let _0x55424b = {
- fn: "userCoinInfo",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/api/home/userCoinInfo",
- json: {
- para: this.encrypt_para(_0x314c14)
- }
- },
- {
- 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 {
- const _0x34621e = {
- phone: this.name
- };
- let _0x16b897 = {
- fn: "userStatusInfo",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/api/home/userStatusInfo",
- json: {
- para: this.encrypt_para(_0x34621e)
- }
- };
- {
- 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 {
- const _0x6a3b38 = {
- phone: this.name
- };
-
- let _0x215fff = {
- fn: "continueSignDays",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/continueSignDays",
- json: {
- para: this.encrypt_para(_0x6a3b38)
- }
- },
- {
- 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 {
- const _0x47b502 = {
- phone: this.name
- };
-
- let _0x3db199 = {
- fn: "continueSignRecords",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/continueSignRecords",
- json: {
- para: this.encrypt_para(_0x47b502)
- }
- },
- {
- 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");
-
- const _0x247865 = {
- phone: this.name,
- type: _0x15d8af
- };
-
- let _0x275dee = {
- fn: "exchangePrize",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/exchangePrize",
- json: {
- para: this.encrypt_para(_0x247865)
- }
- },
- {
- 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 {
- const _0x1d3d49 = {
- phone: this.name,
- shopId: "20001",
- type: _0x5a7e8f
- };
-
- let _0x5a9f66 = {
- fn: "homepage",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/homepage",
- json: {
- para: this.encrypt_para(_0x1d3d49)
- }
- },
- {
- 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];
-
- const _0x1205c1 = {
- phone: this.name,
- rewardId: _0x1f06a0?.["rewardId"] || ""
- };
-
- let _0x4db2f8 = {
- fn: "receiveReward",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/receiveReward",
- json: {
- para: this.encrypt_para(_0x1205c1)
- }
- },
- {
- 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];
-
- const _0x2aab67 = {
- phone: this.name
- };
-
- let _0x1c217b = {
- fn: "openMsg",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/openMsg",
- json: {
- para: this.encrypt_para(_0x2aab67)
- }
- },
- {
- 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];
-
- const _0x128b55 = {
- phone: this.name,
- jobId: _0x2beade.taskId
- };
-
- let _0x493039 = {
- fn: "polymerize",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/polymerize",
- json: {
- para: this.encrypt_para(_0x128b55)
- }
- },
- {
- 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 {
- const _0x564080 = {
- phone: this.name
- };
-
- let _0x587fa4 = {
- fn: "food",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/food",
- json: {
- para: this.encrypt_para(_0x564080)
- }
- },
- {
- 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 {
- const _0x1138c3 = {
- phone: this.name
- };
- let _0x2d8a6c = {
- fn: "getParadiseInfo",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/getParadiseInfo",
- json: {
- para: this.encrypt_para(_0x1138c3)
- }
- };
- {
- 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 {
- const _0x166dba = {
- phone: this.name
- };
- let _0x5a0971 = {
- fn: "getLevelRightsList",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/getLevelRightsList",
- json: {
- para: this.encrypt_para(_0x166dba)
- }
- },
- {
- 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"] || "";
-
- const _0x714d7a = {
- phone: this.name,
- rightsId: _0xca19ef.id,
- receiveCount: _0xca19ef.receiveType
- };
-
- let _0x5ed3b5 = {
- fn: "getConversionRights",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/getConversionRights",
- json: {
- para: this.encrypt_para(_0x714d7a)
- }
- },
- {
- 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"] || "";
-
- const _0x3ba559 = {
- phone: this.name,
- rightsId: _0x1258fb.id
- };
-
- let _0x259df8 = {
- fn: "conversionRights",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/conversionRights",
- json: {
- para: this.encrypt_para(_0x3ba559)
- }
- },
- {
- 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 {
- statusCode: _0x1897af,
- headers: _0xab67f2
- } = await this.request(_0x4ad8d0),
- _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
- };
- const _0x3382ca = {
- fn: "codeToken",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/api/auth/userinfo/codeToken",
- json: _0x3ed11c
- };
-
- let {
- result: _0x1e1031,
- statusCode: _0x4829ec
- } = await this.request(_0x3382ca),
- _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
- };
- const _0x10ad21 = {
- fn: "watchLiveInit",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchLiveInit",
- json: _0x1e7374
- };
-
- let {
- result: _0x15080d,
- statusCode: _0x39b570
- } = await this.request(_0x10ad21),
- _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
- };
- const _0x511e74 = {
- fn: "watchLive",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchLive",
- json: _0xae75fa
- };
-
- let {
- result: _0x5c4954,
- statusCode: _0x1ad01d
- } = await this.request(_0x511e74),
- _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
- };
- const _0x61e8d7 = {
- fn: "watchVideo",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchVideo",
- json: _0x15cc23
- };
-
- let {
- result: _0x3d06a2,
- statusCode: _0xa801d9
- } = await this.request(_0x61e8d7),
- _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
- };
- const _0x3fd3b3 = {
- fn: "like",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/lteration/room/like",
- json: _0x551814
- };
-
- let {
- result: _0x15cd63,
- statusCode: _0x550c11
- } = await this.request(_0x3fd3b3),
- _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 {
- const _0x1a3146 = {
- phone: this.name,
- flag: this.jml_tokenFlag
- };
-
- let _0x4fe3a1 = {
- fn: "month_jml_receive",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/receive",
- json: {
- para: this.encrypt_para(_0x1a3146)
- }
- },
- {
- 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 {
- const _0x3d70a3 = {
- phone: this.name,
- flag: this.jml_tokenFlag
- };
-
- let _0x1d2de9 = {
- fn: "month_jml_getCount",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/getCount",
- json: {
- para: this.encrypt_para(_0x3d70a3)
- }
- },
- {
- 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 {
- const _0x723a = {
- phone: this.name,
- videoType: _0x10070c,
- flag: this.jml_tokenFlag
- };
-
- let _0x2b00ee = {
- fn: "month_jml_addVideoCount",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/addVideoCount",
- json: {
- para: this.encrypt_para(_0x723a)
- }
- },
- {
- 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 {
- const _0x551b86 = {
- phone: this.name,
- flag: this.jml_tokenFlag
- };
-
- let _0x5ab84e = {
- fn: "month_jml_refresh",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/refresh",
- json: {
- para: this.encrypt_para(_0x551b86)
- }
- },
- {
- 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 {
- const _0x786d14 = {
- phone: this.name,
- flag: this.jml_tokenFlag
- };
-
- let _0x57d2e2 = {
- fn: "month_jml_lotteryRevice",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/lotteryRevice",
- json: {
- para: this.encrypt_para(_0x786d14)
- }
- },
- {
- 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");
-
- const _0x5e6ddf = {
- activityId: _0x5149a7
- };
-
- let {
- result: _0x50d02f,
- statusCode: _0x69dd47
- } = await this.rpc_request(_0x1794f8, "POST", _0x5e6ddf),
- _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 () => {
-
-
- _0x49dfef.read_env(_0x3f433d);
-
- _0xa0ff1b();
-
- for (let _0x28b102 of _0x49dfef.userList) {
- await _0x28b102.userTask();
- }
-})().catch(_0x3fccb3 => _0x49dfef.log(_0x3fccb3)).finally(() => _0x49dfef.exitNow());
-
-
-
-function _0x5370a4(_0x24412c) {
- return new class {
- constructor(_0x198bc4) {
- this.name = _0x198bc4;
- this.startTime = Date.now();
- const _0x555858 = {
- time: true
- };
- 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;
- }
-
- log(_0x25f67c, _0x45847d = {}) {
- const _0x82b0fc = {
- console: true
- };
- Object.assign(_0x82b0fc, _0x45847d);
-
- if (_0x82b0fc.time) {
- let _0x58f096 = _0x82b0fc.fmt || "hh:mm:ss";
-
- _0x25f67c = "[" + this.time(_0x58f096) + "]" + _0x25f67c;
- }
-
- if (_0x82b0fc.notify) {
- this.notifyStr.push(_0x25f67c);
- }
-
- if (_0x82b0fc.console) {
- console.log(_0x25f67c);
- }
- }
-
- get(_0x2ecf4d, _0x5800fb, _0x1ff76e = "") {
- let _0x5a663b = _0x1ff76e;
- _0x2ecf4d?.["hasOwnProperty"](_0x5800fb) && (_0x5a663b = _0x2ecf4d[_0x5800fb]);
- return _0x5a663b;
- }
-
- pop(_0x2ae8ec, _0xbb54f6, _0x9c8563 = "") {
- let _0x213044 = _0x9c8563;
- _0x2ae8ec?.["hasOwnProperty"](_0xbb54f6) && (_0x213044 = _0x2ae8ec[_0xbb54f6], delete _0x2ae8ec[_0xbb54f6]);
- return _0x213044;
- }
-
- copy(_0x1fbe5b) {
- return Object.assign({}, _0x1fbe5b);
- }
-
- 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)) {
- continue;
- }
-
- this.userList.push(new _0x412e83(_0x4465a3));
- }
- }
-
- this.userCount = this.userList.length;
-
- if (!this.userCount) {
- const _0x3d5d5 = {
- 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);
- } 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;
- }
-
- const _0x179ceb = {
- time: true
- };
-
- _0x155654.log("已完成等待", _0x179ceb);
- }
- }
-
- async wait_gap_interval(_0x5caf3a, _0x373b08) {
- let _0x5561b7 = Date.now() - _0x5caf3a;
-
- _0x5561b7 < _0x373b08 && (await this.wait(_0x373b08 - _0x5561b7));
- }
-
- }(_0x24412c);
-}
diff --git a/中国电信.js b/中国电信.js
deleted file mode 100644
index 1087c92..0000000
--- a/中国电信.js
+++ /dev/null
@@ -1,2312 +0,0 @@
-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 ";
-
- const _0xb709e1 = {
- fn: "get_ticket",
- method: "post",
- url: "https://appgologin.189.cn:9031/map/clientXML",
- body: _0x21dd20
- };
- let {
- result: _0x9f4220,
- statusCode: _0x1e891f
- } = await this.request(_0xb709e1);
-
- 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
- };
- const _0x139dfe = {
- fn: "login",
- method: "get",
- url: "https://wapside.189.cn:9001/jt-sign/ssoHomLogin",
- searchParams: _0x59fe75
- };
-
- let {
- result: _0x36bbb6,
- statusCode: _0x3a8945
- } = await this.request(_0x139dfe),
- _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 {
- const _0x314c14 = {
- phone: this.name
- };
-
- let _0x55424b = {
- fn: "userCoinInfo",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/api/home/userCoinInfo",
- json: {
- para: this.encrypt_para(_0x314c14)
- }
- },
- {
- 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 {
- const _0x34621e = {
- phone: this.name
- };
- let _0x16b897 = {
- fn: "userStatusInfo",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/api/home/userStatusInfo",
- json: {
- para: this.encrypt_para(_0x34621e)
- }
- };
- {
- 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 {
- const _0x6a3b38 = {
- phone: this.name
- };
-
- let _0x215fff = {
- fn: "continueSignDays",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/continueSignDays",
- json: {
- para: this.encrypt_para(_0x6a3b38)
- }
- },
- {
- 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 {
- const _0x47b502 = {
- phone: this.name
- };
-
- let _0x3db199 = {
- fn: "continueSignRecords",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/continueSignRecords",
- json: {
- para: this.encrypt_para(_0x47b502)
- }
- },
- {
- 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");
-
- const _0x247865 = {
- phone: this.name,
- type: _0x15d8af
- };
-
- let _0x275dee = {
- fn: "exchangePrize",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/exchangePrize",
- json: {
- para: this.encrypt_para(_0x247865)
- }
- },
- {
- 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 {
- const _0x1d3d49 = {
- phone: this.name,
- shopId: "20001",
- type: _0x5a7e8f
- };
-
- let _0x5a9f66 = {
- fn: "homepage",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/homepage",
- json: {
- para: this.encrypt_para(_0x1d3d49)
- }
- },
- {
- 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];
-
- const _0x1205c1 = {
- phone: this.name,
- rewardId: _0x1f06a0?.["rewardId"] || ""
- };
-
- let _0x4db2f8 = {
- fn: "receiveReward",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/receiveReward",
- json: {
- para: this.encrypt_para(_0x1205c1)
- }
- },
- {
- 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];
-
- const _0x2aab67 = {
- phone: this.name
- };
-
- let _0x1c217b = {
- fn: "openMsg",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/openMsg",
- json: {
- para: this.encrypt_para(_0x2aab67)
- }
- },
- {
- 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];
-
- const _0x128b55 = {
- phone: this.name,
- jobId: _0x2beade.taskId
- };
-
- let _0x493039 = {
- fn: "polymerize",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/webSign/polymerize",
- json: {
- para: this.encrypt_para(_0x128b55)
- }
- },
- {
- 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 {
- const _0x564080 = {
- phone: this.name
- };
-
- let _0x587fa4 = {
- fn: "food",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/food",
- json: {
- para: this.encrypt_para(_0x564080)
- }
- },
- {
- 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 {
- const _0x1138c3 = {
- phone: this.name
- };
- let _0x2d8a6c = {
- fn: "getParadiseInfo",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/getParadiseInfo",
- json: {
- para: this.encrypt_para(_0x1138c3)
- }
- };
- {
- 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 {
- const _0x166dba = {
- phone: this.name
- };
- let _0x5a0971 = {
- fn: "getLevelRightsList",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/getLevelRightsList",
- json: {
- para: this.encrypt_para(_0x166dba)
- }
- },
- {
- 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"] || "";
-
- const _0x714d7a = {
- phone: this.name,
- rightsId: _0xca19ef.id,
- receiveCount: _0xca19ef.receiveType
- };
-
- let _0x5ed3b5 = {
- fn: "getConversionRights",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/getConversionRights",
- json: {
- para: this.encrypt_para(_0x714d7a)
- }
- },
- {
- 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"] || "";
-
- const _0x3ba559 = {
- phone: this.name,
- rightsId: _0x1258fb.id
- };
-
- let _0x259df8 = {
- fn: "conversionRights",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/paradise/conversionRights",
- json: {
- para: this.encrypt_para(_0x3ba559)
- }
- },
- {
- 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 {
- statusCode: _0x1897af,
- headers: _0xab67f2
- } = await this.request(_0x4ad8d0),
- _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
- };
- const _0x3382ca = {
- fn: "codeToken",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/api/auth/userinfo/codeToken",
- json: _0x3ed11c
- };
-
- let {
- result: _0x1e1031,
- statusCode: _0x4829ec
- } = await this.request(_0x3382ca),
- _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
- };
- const _0x10ad21 = {
- fn: "watchLiveInit",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchLiveInit",
- json: _0x1e7374
- };
-
- let {
- result: _0x15080d,
- statusCode: _0x39b570
- } = await this.request(_0x10ad21),
- _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
- };
- const _0x511e74 = {
- fn: "watchLive",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchLive",
- json: _0xae75fa
- };
-
- let {
- result: _0x5c4954,
- statusCode: _0x1ad01d
- } = await this.request(_0x511e74),
- _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
- };
- const _0x61e8d7 = {
- fn: "watchVideo",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchVideo",
- json: _0x15cc23
- };
-
- let {
- result: _0x3d06a2,
- statusCode: _0xa801d9
- } = await this.request(_0x61e8d7),
- _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
- };
- const _0x3fd3b3 = {
- fn: "like",
- method: "post",
- url: "https://xbk.189.cn/xbkapi/lteration/room/like",
- json: _0x551814
- };
-
- let {
- result: _0x15cd63,
- statusCode: _0x550c11
- } = await this.request(_0x3fd3b3),
- _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 {
- const _0x1a3146 = {
- phone: this.name,
- flag: this.jml_tokenFlag
- };
-
- let _0x4fe3a1 = {
- fn: "month_jml_receive",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/receive",
- json: {
- para: this.encrypt_para(_0x1a3146)
- }
- },
- {
- 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 {
- const _0x3d70a3 = {
- phone: this.name,
- flag: this.jml_tokenFlag
- };
-
- let _0x1d2de9 = {
- fn: "month_jml_getCount",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/getCount",
- json: {
- para: this.encrypt_para(_0x3d70a3)
- }
- },
- {
- 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 {
- const _0x723a = {
- phone: this.name,
- videoType: _0x10070c,
- flag: this.jml_tokenFlag
- };
-
- let _0x2b00ee = {
- fn: "month_jml_addVideoCount",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/addVideoCount",
- json: {
- para: this.encrypt_para(_0x723a)
- }
- },
- {
- 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 {
- const _0x551b86 = {
- phone: this.name,
- flag: this.jml_tokenFlag
- };
-
- let _0x5ab84e = {
- fn: "month_jml_refresh",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/refresh",
- json: {
- para: this.encrypt_para(_0x551b86)
- }
- },
- {
- 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 {
- const _0x786d14 = {
- phone: this.name,
- flag: this.jml_tokenFlag
- };
-
- let _0x57d2e2 = {
- fn: "month_jml_lotteryRevice",
- method: "post",
- url: "https://wapside.189.cn:9001/jt-sign/lottery/lotteryRevice",
- json: {
- para: this.encrypt_para(_0x786d14)
- }
- },
- {
- 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");
-
- const _0x5e6ddf = {
- activityId: _0x5149a7
- };
-
- let {
- result: _0x50d02f,
- statusCode: _0x69dd47
- } = await this.rpc_request(_0x1794f8, "POST", _0x5e6ddf),
- _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 () => {
-
-
- _0x49dfef.read_env(_0x3f433d);
-
- _0xa0ff1b();
-
- for (let _0x28b102 of _0x49dfef.userList) {
- await _0x28b102.userTask();
- }
-})().catch(_0x3fccb3 => _0x49dfef.log(_0x3fccb3)).finally(() => _0x49dfef.exitNow());
-
-
-
-function _0x5370a4(_0x24412c) {
- return new class {
- constructor(_0x198bc4) {
- this.name = _0x198bc4;
- this.startTime = Date.now();
- const _0x555858 = {
- time: true
- };
- 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;
- }
-
- log(_0x25f67c, _0x45847d = {}) {
- const _0x82b0fc = {
- console: true
- };
- Object.assign(_0x82b0fc, _0x45847d);
-
- if (_0x82b0fc.time) {
- let _0x58f096 = _0x82b0fc.fmt || "hh:mm:ss";
-
- _0x25f67c = "[" + this.time(_0x58f096) + "]" + _0x25f67c;
- }
-
- if (_0x82b0fc.notify) {
- this.notifyStr.push(_0x25f67c);
- }
-
- if (_0x82b0fc.console) {
- console.log(_0x25f67c);
- }
- }
-
- get(_0x2ecf4d, _0x5800fb, _0x1ff76e = "") {
- let _0x5a663b = _0x1ff76e;
- _0x2ecf4d?.["hasOwnProperty"](_0x5800fb) && (_0x5a663b = _0x2ecf4d[_0x5800fb]);
- return _0x5a663b;
- }
-
- pop(_0x2ae8ec, _0xbb54f6, _0x9c8563 = "") {
- let _0x213044 = _0x9c8563;
- _0x2ae8ec?.["hasOwnProperty"](_0xbb54f6) && (_0x213044 = _0x2ae8ec[_0xbb54f6], delete _0x2ae8ec[_0xbb54f6]);
- return _0x213044;
- }
-
- copy(_0x1fbe5b) {
- return Object.assign({}, _0x1fbe5b);
- }
-
- 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)) {
- continue;
- }
-
- this.userList.push(new _0x412e83(_0x4465a3));
- }
- }
-
- this.userCount = this.userList.length;
-
- if (!this.userCount) {
- const _0x3d5d5 = {
- 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);
- } 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;
- }
-
- const _0x179ceb = {
- time: true
- };
-
- _0x155654.log("已完成等待", _0x179ceb);
- }
- }
-
- async wait_gap_interval(_0x5caf3a, _0x373b08) {
- let _0x5561b7 = Date.now() - _0x5caf3a;
-
- _0x5561b7 < _0x373b08 && (await this.wait(_0x373b08 - _0x5561b7));
- }
-
- }(_0x24412c);
-}
diff --git a/电信兑换.py b/电信兑换.py
deleted file mode 100644
index 287d196..0000000
--- a/电信兑换.py
+++ /dev/null
@@ -1,451 +0,0 @@
-"""
-新电信抢话费
-
-群里发的,未测试好,自测
-修改内容如下“
-1.删除内置的一个手机账号
-2.修改环境变量名保持和拉菲电信金豆本环境变量一致
-3.恢复瑞数通杀.js调用地址,确实也不知道是啥。398、399行注释
-
-环境变量chinaTelecomAccount,值为:账号#密码
-
-cron: 57 9,13,23 * * *
-const $ = new Env("新电信抢话费");
-
-"""
-
-import os
-import re
-import sys
-import ssl
-import time
-import json
-import execjs
-import base64
-import random
-import certifi
-import aiohttp
-import asyncio
-import certifi
-import datetime
-import requests
-import binascii
-from lxml import etree
-from http import cookiejar
-from Crypto.Cipher import AES
-from Crypto.Cipher import DES3
-from Crypto.PublicKey import RSA
-from Crypto.Cipher import PKCS1_v1_5
-from Crypto.Util.Padding import pad, unpad
-from aiohttp import ClientSession, TCPConnector
-from concurrent.futures import ThreadPoolExecutor
-run_num=os.environ.get('reqNUM') or "80"
-
-diffValue=2
-MAX_RETRIES = 3
-RATE_LIMIT = 10 # 每秒请求数限制
-
-class RateLimiter:
- def __init__(self, rate_limit):
- self.rate_limit = rate_limit
- self.tokens = rate_limit
- self.updated_at = time.monotonic()
-
- async def acquire(self):
- while self.tokens < 1:
- self.add_new_tokens()
- await asyncio.sleep(0.1)
- self.tokens -= 1
-
- def add_new_tokens(self):
- now = time.monotonic()
- time_since_update = now - self.updated_at
- new_tokens = time_since_update * self.rate_limit
- if new_tokens > 1:
- self.tokens = min(self.tokens + new_tokens, self.rate_limit)
- self.updated_at = now
-
-class AsyncSessionManager:
- def __init__(self):
- self.session = None
- self.connector = None
-
- async def __aenter__(self):
- ssl_context = ssl.create_default_context(cafile=certifi.where())
- ssl_context.set_ciphers('DEFAULT@SECLEVEL=1')
- self.connector = TCPConnector(ssl=ssl_context, limit=1000)
- self.session = ClientSession(connector=self.connector)
- return self.session
-
- async def __aexit__(self, exc_type, exc_val, exc_tb):
- await self.session.close()
- await self.connector.close()
-
-async def retry_request(session, method, url, **kwargs):
- for attempt in range(MAX_RETRIES):
- try:
- await asyncio.sleep(1)
- async with session.request(method, url, **kwargs) as response:
- return await response.json()
- # return await response.json()
-
- except (aiohttp.ClientConnectionError, aiohttp.ServerTimeoutError) as e:
- print(f"请求失败,第 {attempt + 1} 次重试: {e}")
- if attempt == MAX_RETRIES - 1:
- raise
- await asyncio.sleep(2 ** attempt)
-
-class BlockAll(cookiejar.CookiePolicy):
- return_ok = set_ok = domain_return_ok = path_return_ok = lambda self, *args, **kwargs: False
- netscape = True
- rfc2965 = hide_cookie2 = False
-
-def printn(m):
- print(f'\n{m}')
-
-context = ssl.create_default_context()
-context.set_ciphers('DEFAULT@SECLEVEL=1') # 低安全级别0/1
-context.check_hostname = False # 禁用主机
-context.verify_mode = ssl.CERT_NONE # 禁用证书
-
-class DESAdapter(requests.adapters.HTTPAdapter):
- def init_poolmanager(self, *args, **kwargs):
- kwargs['ssl_context'] = context
- return super().init_poolmanager(*args, **kwargs)
-
-requests.packages.urllib3.disable_warnings()
-# urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
-ss = requests.session()
-ss.headers={"User-Agent":"Mozilla/5.0 (Linux; Android 13; 22081212C Build/TKQ1.220829.002) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.97 Mobile Safari/537.36","Referer":"https://wapact.189.cn:9001/JinDouMall/JinDouMall_independentDetails.html"}
-ss.mount('https://', DESAdapter())
-ss.cookies.set_policy(BlockAll())
-runTime = 0
-key = b'1234567`90koiuyhgtfrdews'
-iv = 8 * b'\0'
-
-public_key_b64 = '''-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBkLT15ThVgz6/NOl6s8GNPofdWzWbCkWnkaAm7O2LjkM1H7dMvzkiqdxU02jamGRHLX/ZNMCXHnPcW/sDhiFCBN18qFvy8g6VYb9QtroI09e176s+ZCtiv7hbin2cCTj99iUpnEloZm19lwHyo69u5UMiPMpq0/XKBO8lYhN/gwIDAQAB
------END PUBLIC KEY-----'''
-
-public_key_data = '''-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+ugG5A8cZ3FqUKDwM57GM4io6JGcStivT8UdGt67PEOihLZTw3P7371+N47PrmsCpnTRzbTgcupKtUv8ImZalYk65dU8rjC/ridwhw9ffW2LBwvkEnDkkKKRi2liWIItDftJVBiWOh17o6gfbPoNrWORcAdcbpk2L+udld5kZNwIDAQAB
------END PUBLIC KEY-----'''
-
-def get_first_three(value):
- # 处理数字情况
- if isinstance(value, (int, float)):
- return int(str(value)[:3])
- elif isinstance(value, str):
- return str(value)[:3]
- else:
- raise TypeError("error")
-
-def run_Time(hour,miute,second):
- date = datetime.datetime.now()
- date_zero = datetime.datetime.now().replace(year=date.year, month=date.month, day=date.day, hour=hour, minute=miute, second=second)
- date_zero_time = int(time.mktime(date_zero.timetuple()))
- return date_zero_time
-
-def encrypt(text):
- cipher = DES3.new(key, DES3.MODE_CBC, iv)
- ciphertext = cipher.encrypt(pad(text.encode(), DES3.block_size))
- return ciphertext.hex()
-
-def decrypt(text):
- ciphertext = bytes.fromhex(text)
- cipher = DES3.new(key, DES3.MODE_CBC, iv)
- plaintext = unpad(cipher.decrypt(ciphertext), DES3.block_size)
- return plaintext.decode()
-
-def b64(plaintext):
- public_key = RSA.import_key(public_key_b64)
- cipher = PKCS1_v1_5.new(public_key)
- ciphertext = cipher.encrypt(plaintext.encode())
- return base64.b64encode(ciphertext).decode()
-
-def encrypt_para(plaintext):
- if not isinstance(plaintext, str):
- plaintext = json.dumps(plaintext)
- public_key = RSA.import_key(public_key_data)
- cipher = PKCS1_v1_5.new(public_key)
- ciphertext = cipher.encrypt(plaintext.encode())
- return binascii.hexlify(ciphertext).decode()
-
-def encode_phone(text):
- encoded_chars = []
- for char in text:
- encoded_chars.append(chr(ord(char) + 2))
- return ''.join(encoded_chars)
-
-
-def getApiTime(api_url):
- try:
- with requests.get(api_url) as response:
- if(not response or not response.text):
- return time.time()
- json_data = json.loads(response.text)
- if (json_data.get("api")and json_data.get("api")not in("time") ):
- timestamp_str = json_data.get('data', {}).get('t', '')
- else:
- timestamp_str = json_data.get('currentTime', {})
- timestamp = int(timestamp_str) / 1000.0 # 将毫秒转为秒
- difftime=time.time()-timestamp
- return difftime;
- except Exception as e:
- print(f"获取时间失败: {e}")
- return 0;
-
-
-def userLoginNormal(phone,password):
- alphabet = 'abcdef0123456789'
- uuid = [''.join(random.sample(alphabet, 8)),''.join(random.sample(alphabet, 4)),'4'+''.join(random.sample(alphabet, 3)),''.join(random.sample(alphabet, 4)),''.join(random.sample(alphabet, 12))]
- timestamp=datetime.datetime.now().strftime("%Y%m%d%H%M%S")
- loginAuthCipherAsymmertric = 'iPhone 14 15.4.' + uuid[0] + uuid[1] + phone + timestamp + password[:6] + '0$$$0.'
- r = ss.post('https://appgologin.189.cn:9031/login/client/userLoginNormal',json={"headerInfos": {"code": "userLoginNormal", "timestamp": timestamp, "broadAccount": "", "broadToken": "", "clientType": "#9.6.1#channel50#iPhone 14 Pro Max#", "shopId": "20002", "source": "110003", "sourcePassword": "Sid98s", "token": "", "userLoginName": phone}, "content": {"attach": "test", "fieldData": {"loginType": "4", "accountType": "", "loginAuthCipherAsymmertric": b64(loginAuthCipherAsymmertric), "deviceUid": uuid[0] + uuid[1] + uuid[2], "phoneNum": encode_phone(phone), "isChinatelecom": "0", "systemVersion": "15.4.0", "authentication": password}}},verify=certifi.where()).json()
- l = r['responseData']['data']['loginSuccessResult']
- if l:
- ticket = get_ticket(phone,l['userId'],l['token'])
- return ticket
- return False
-
-async def exchangeForDay(phone, session, run_Time, rid, stime):
- async def delayed_conversion(delay):
- await asyncio.sleep(delay)
- await conversionRights(phone, rid,session)
- tasks = [asyncio.create_task(delayed_conversion(i * stime)) for i in range(int(run_Time))]
- await asyncio.gather(*tasks)
-def get_ticket(phone,userId,token):
- r = ss.post('https://appgologin.189.cn:9031/map/clientXML',data='getSingle'+datetime.datetime.now().strftime("%Y%m%d%H%M%S")+'#9.6.1#channel50#iPhone 14 Pro Max#20002110003Sid98s'+token+''+phone+'test'+encrypt(userId)+'4a6862274835b451',headers={'user-agent': 'CtClient;10.4.1;Android;13;22081212C;NTQzNzgx!#!MTgwNTg1'},verify=certifi.where())
- tk = re.findall('(.*?)',r.text)
- if len(tk) == 0:
- return False
- return decrypt(tk[0])
-
-async def exchange(s, phone, title, aid,jsexec, ckvalue):
- try:
- url="https://wapact.189.cn:9001/gateway/stand/detailNew/exchange"
- # getck = await asyncio.to_thread(jsexec.call, "getck") # 两种方式,一种用ck,一种用后缀
- # getck = getck.split(';')[0].split('=')
- # ckvalue[getck[0]] = getck[1]
-
- # async with s.post(url, cookies=ckvalue, json={"activityId": aid}) as response:
-
- # 通过 retry_request 实现重试机制
- # response = await retry_request(s, 'POST', get_url, cookies=ckvalue, json={"activityId": aid})
-
- get_url = await asyncio.to_thread(jsexec.call,"getUrl", "POST",url)
- async with s.post(get_url, cookies=ckvalue, json={"activityId": aid}) as response:
- pass
- except Exception as e:
- print(e)
-
-
-
-async def check(s,item,ckvalue):
- checkGoods = s.get('https://wapact.189.cn:9001/gateway/stand/detailNew/check?activityId=' + item, cookies=ckvalue).json()
- return checkGoods
-
-async def conversionRights(phone, aid,session):
- value = {
- "phone": phone,
- "rightsId": aid
- }
- paraV=encrypt_para(value)
- response = session.post('https://wapside.189.cn:9001/jt-sign/paradise/conversionRights',json={"para":paraV})
- login = response.json()
- printn(f"{get_first_three(phone)},{str(datetime.datetime.now())[11:23]}:{login} ")
-
-async def getLevelRightsList(phone,session):
- value = {
- "phone": phone
- }
- paraV=encrypt_para(value)
- requests = session.post('https://wapside.189.cn:9001/jt-sign/paradise/getLevelRightsList',json={"para":paraV})
- try:
- data=requests.json()
- if data.get('code') == 401:
- print(f"获取失败:{data},原因大概是sign过期了")
- return None
- current_level = int(data['currentLevel'])
- key_name = 'V' + str(current_level)
- ids = [item['id'] for item in data.get(key_name, []) if item.get('name') == '话费']
- return ids
- except:
- print(f"获取失败,重试一次:{requests.text}")
- paraV=encrypt_para(value)
- requests = session.post('https://wapside.189.cn:9001/jt-sign/paradise/getLevelRightsList',json={"para":paraV})
- data=requests.json()
- if data.get('code') == 401:
- print(f"获取失败:{data},原因大概是sign过期了")
- return None
- current_level = int(data['currentLevel'])
- key_name = 'V' + str(current_level)
- ids = [item['id'] for item in data.get(key_name, []) if item.get('name') == '话费']
- return ids
-
-
-
-async def getSign(ticket,session):
- try:
- response_data = session.get('https://wapside.189.cn:9001/jt-sign/ssoHomLogin?ticket=' + ticket).json()
- if response_data.get('resoultCode') == '0':
- sign = response_data.get('sign')
- return sign
- else:
- print(f"获取sign失败[{response_data.get('resoultCode')}]: {response_data}")
- except Exception as e:
- print(e)
- return None
-
-async def login_request(ss,url,payload):
- global ckvalue,js_codeRead
- url = "https://wapact.189.cn:9001/unified/user/login"
- headers = {
- 'Accept': 'application/json, text/javascript, */*; q=0.01',
- 'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
- 'Cache-Control': 'no-cache',
- 'Connection': 'keep-alive',
- 'Origin': 'https://wapact.189.cn:9001',
- 'Pragma': 'no-cache',
- 'Sec-Fetch-Dest': 'empty',
- 'Sec-Fetch-Mode': 'cors',
- 'Sec-Fetch-Site': 'same-origin',
- 'X-Requested-With': 'XMLHttpRequest',
- 'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Android WebView";v="126"',
- 'sec-ch-ua-mobile': '?1',
- 'sec-ch-ua-platform': '"Android"',
- 'Content-Type': 'application/json;charset=UTF-8'
- }
- response = ss.post(url, headers=headers, data=json.dumps(payload))
- rsCK = re.findall('yiUIIlbdQT3fO=([^;]+)',response.headers['Set-Cookie'])[0]
- # print(response.status_code)
- if response.status_code == 412:
- print("检测到瑞数特征码412,正在尝试调用js")
- else:
- print("未检测到瑞数.")
- return response,None,rsCK
- html=etree.HTML(response.text)
- arg1=html.xpath('//meta/@content')[-1]
- arg2=html.xpath('//script/text()')[0]
- arg3=html.xpath('//meta/@id')[-1]
- js_code = js_codeRead.replace("contentCODE", arg1).replace('"tsCODE"', arg2).replace('"tsID"',f'"{arg3}"')
-
- jsexec = execjs.compile(js_code)
- ck=await asyncio.to_thread(jsexec.call, "getck")
- get_url=await asyncio.to_thread(jsexec.call,"getUrl","POST",url)
- def parse_cookies(ck):
- cookies = {}
- for part in ck.split(';'):
- part = part.strip()
- if '=' in part:
- key, value = part.split('=', 1)
- if 'path' not in key and 'expires' not in key and 'Secure' not in key and 'SameSite' not in key:
- cookies[key] = value
- return cookies
- ck=parse_cookies(ck)
- ck["yiUIIlbdQT3fO"] = rsCK
- ckvalue=ck
- res=ss.post(get_url, headers=headers,data=json.dumps(payload),cookies=ckvalue)
- if res.status_code == 200:
- print("瑞数返回状态码200,开始下一步.")
- return res,jsexec,ckvalue
- else:
- print("瑞数破解失败,调用重试机制")
- return res,jsexec,None
- # return res,jsexec,ckvalue#ckvalue这里直接返回,没直接塞session里面.
-
-async def qgNight(phone, ticket, timeValue,isTrue):
- if isTrue:
- runTime = run_Time(23,59,3) + 0.65
- else:
- runTime = run_Time(0,0,0) + 0.65
-
- if runTime >(time.time()+timeValue):
- difftime = runTime - time.time() - timeValue
- printn(f"当前时间:{str(datetime.datetime.now())[11:23]},跟设定的时间不同,等待{difftime}秒开始兑换每天一次的")
- await asyncio.sleep(difftime)
- session = requests.Session()
- session.mount('https://', DESAdapter())
- session.verify = False # 禁用证书验证
- sign =await getSign(ticket,session)
- if sign:
- print(f"当前时间:{str(datetime.datetime.now())[11:23]}获取到了Sign:"+sign)
- session.headers={"User-Agent":"Mozilla/5.0 (Linux; Android 13; 22081212C Build/TKQ1.220829.002) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.97 Mobile Safari/537.36","sign":sign}
- else:
- print("未能获取sign。")
- return
- rightsId =await getLevelRightsList(phone,session);
- if rightsId:
- print("获取到了rightsId:"+rightsId[0])
- else:
- print("未能获取rightsId。")
- return
- # await asyncio.sleep(10)直接延迟也行,或者用下面的等待一段时间。之所以这样是要先获取sign省一些步骤。
- if isTrue:
- runTime2 = run_Time(23,59,58) + 0.65
- difftime = runTime2 - time.time() - timeValue
- printn(f"等待下")
- await asyncio.sleep(difftime)
- printn(f"{str(datetime.datetime.now())[11:23]} 时间到开始兑换每天一次的")
- await exchangeForDay(phone,session,run_num,rightsId[0],0.1)
-async def qgDay(phone, ticket, timeValue, isTrue):
- global runTime,js_codeRead
- async with AsyncSessionManager() as s:
- pass
-async def main(timeValue,isTRUE,hour):
- global runTime,js_codeRead
- tasks = []
- with open("./瑞数通杀.js", "r", encoding="utf-8") as f:
- js_codeRead = f.read()
- phone_list = PHONES.split('&')
- # diffValue=len(phone_list)
- for phoneV in phone_list:
- value = phoneV.split('#')
- phone, password = value[0], value[1]
- printn(f'{get_first_three(phone)}开始登录')
- ticket = userLoginNormal(phone,password)
- if ticket:
- # hour=datetime.datetime.now().hour
- # hour=23
- if hour > 15:
- tasks.append(qgNight(phone, ticket, timeValue, isTRUE))
- # await asyncio.sleep(0.1)
- else:#十点//十四点场次
- tasks.append(qgDay(phone, ticket, timeValue, isTRUE))
- # await asyncio.sleep(0.1)
- else:
- printn(f'{phone} 登录失败')
- await asyncio.gather(*tasks)
-
-PHONES=os.environ.get('chinaTelecomAccount')
-
-if __name__ == "__main__":
- global timeValue,timeDiff
- h = datetime.datetime.now().hour
- h=9 #手动设置场次的时间
- print("当前小时为: "+str(h))
- if 10 >h >0:
- print("当前小时为: "+str(h)+"已过0点但未到10点开始准备抢十点场次")
- wttime= run_Time(9,59,58) #抢十点场次
- elif 14 >= h >=10:
- print("当前小时为: "+str(h) +"已过10点但未到14点开始准备抢十四点场次")
- wttime= run_Time(13,59,58) #抢十四点场次
- else:
- print("当前小时为: "+str(h)+"已过14点开始准备抢凌晨")
- wttime= run_Time(23,59,58) #抢凌晨
-# isTRUE=FalseTrue
- isTRUE=True
- #isTRUE等于False则表示忽略所有限制直接运行。这个参数一般用于测试。实际生产一定要设置为True。
- if(wttime >time.time()) :
- wTime=wttime-time.time()
- print("未到时间,计算后差异:"+str(wTime)+"秒")
- if isTRUE:
- print("一定要先测试,根据自身 设定的重发和多号,不然会出问题,抢购过早或者过晚。")
- print("开始等待:")
- time.sleep(wTime)
- timeValue = getApiTime("https://f.m.suning.com/api/ct.do")
- timeDiff = timeValue if timeValue > 0 else 0
- asyncio.run(main(timeDiff, isTRUE,h))
- print("所有任务都已执行完毕!")
-
-
diff --git a/电信金豆换话费1.py b/电信金豆换话费1.py
deleted file mode 100644
index 8af4069..0000000
--- a/电信金豆换话费1.py
+++ /dev/null
@@ -1,488 +0,0 @@
-import requests
-import re
-import time
-import json
-import random
-import datetime
-import base64
-import threading
-import ssl
-import execjs
-import os
-import sys
-
-from bs4 import BeautifulSoup
-
-from Crypto.PublicKey import RSA
-from Crypto.Cipher import PKCS1_v1_5
-from Crypto.Cipher import DES3
-from Crypto.Util.Padding import pad, unpad
-from Crypto.Util.strxor import strxor
-from Crypto.Cipher import AES
-from http import cookiejar # Python 2: import cookielib as cookiejar
-from requests.adapters import HTTPAdapter
-from requests.packages.urllib3.util.ssl_ import create_urllib3_context
-
-
-class BlockAll(cookiejar.CookiePolicy):
- return_ok = set_ok = domain_return_ok = path_return_ok = lambda self, *args, **kwargs: False
- netscape = True
- rfc2965 = hide_cookie2 = False
-
-def printn(m):
- print(f'\n{m}')
-ORIGIN_CIPHERS = ('DEFAULT@SECLEVEL=1')
-
-ip_list = []
-class DESAdapter(HTTPAdapter):
- def __init__(self, *args, **kwargs):
- """
- A TransportAdapter that re-enables 3DES support in Requests.
- """
- CIPHERS = ORIGIN_CIPHERS.split(':')
- random.shuffle(CIPHERS)
- CIPHERS = ':'.join(CIPHERS)
- self.CIPHERS = CIPHERS + ':!aNULL:!eNULL:!MD5'
- super().__init__(*args, **kwargs)
-
- def init_poolmanager(self, *args, **kwargs):
- context = create_urllib3_context(ciphers=self.CIPHERS)
- kwargs['ssl_context'] = context
- return super(DESAdapter, self).init_poolmanager(*args, **kwargs)
-
- def proxy_manager_for(self, *args, **kwargs):
- context = create_urllib3_context(ciphers=self.CIPHERS)
- kwargs['ssl_context'] = context
- return super(DESAdapter, self).proxy_manager_for(*args, **kwargs)
-
-
-requests.packages.urllib3.disable_warnings()
-ssl_context = ssl.create_default_context()
-ssl_context.check_hostname = False
-ssl_context.verify_mode = ssl.CERT_NONE
-ssl_context.set_ciphers('DEFAULT@SECLEVEL=0')
-ss = requests.session()
-ss.ssl=ssl_context
-ss.headers={"User-Agent":"Mozilla/5.0 (Linux; Android 13; 22081212C Build/TKQ1.220829.002) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.97 Mobile Safari/537.36","Referer":"https://wapact.189.cn:9001/JinDouMall/JinDouMall_independentDetails.html"}
-ss.mount('https://', DESAdapter())
-yc = 0.1
-wt = 0
-kswt = -3
-yf = datetime.datetime.now().strftime("%Y%m")
-
-
-jp = {"9":{},"12":{},"13":{},"23":{}}
-
-
-try:
- with open('电信金豆换话费.log') as fr:
- dhjl = json.load(fr)
-except:
- dhjl = {}
-if yf not in dhjl:
- dhjl[yf] = {}
-
-
-
-
-wxp={}
-errcode = {
- "0":"兑换成功",
- "412":"兑换次数已达上限",
- "413":"商品已兑完",
- "420":"未知错误",
- "410":"该活动已失效~",
- "Y0001":"当前等级不足,去升级兑当前话费",
- "Y0002":"使用翼相连网络600分钟或连接并拓展网络500分钟可兑换此奖品",
- "Y0003":"使用翼相连共享流量400M或共享WIFI:2GB可兑换此奖品",
- "Y0004":"使用翼相连共享流量2GB可兑换此奖品",
- "Y0005":"当前等级不足,去升级兑当前话费",
- "E0001":"您的网龄不足10年,暂不能兑换"
-}
-
-
-
-
-
-
-
-
-
-
-#加密参数
-key = b'1234567`90koiuyhgtfrdews'
-iv = 8 * b'\0'
-
-public_key_b64 = '''-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBkLT15ThVgz6/NOl6s8GNPofdWzWbCkWnkaAm7O2LjkM1H7dMvzkiqdxU02jamGRHLX/ZNMCXHnPcW/sDhiFCBN18qFvy8g6VYb9QtroI09e176s+ZCtiv7hbin2cCTj99iUpnEloZm19lwHyo69u5UMiPMpq0/XKBO8lYhN/gwIDAQAB
------END PUBLIC KEY-----'''
-
-public_key_data = '''-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+ugG5A8cZ3FqUKDwM57GM4io6JGcStivT8UdGt67PEOihLZTw3P7371+N47PrmsCpnTRzbTgcupKtUv8ImZalYk65dU8rjC/ridwhw9ffW2LBwvkEnDkkKKRi2liWIItDftJVBiWOh17o6gfbPoNrWORcAdcbpk2L+udld5kZNwIDAQAB
------END PUBLIC KEY-----'''
-
-
-def t(h):
- date = datetime.datetime.now()
- date_zero = datetime.datetime.now().replace(year=date.year, month=date.month, day=date.day, hour=h, minute=59, second=59)
- date_zero_time = int(time.mktime(date_zero.timetuple()))
- return date_zero_time
-
-
-
-def encrypt(text):
- cipher = DES3.new(key, DES3.MODE_CBC, iv)
- ciphertext = cipher.encrypt(pad(text.encode(), DES3.block_size))
- return ciphertext.hex()
-
-def decrypt(text):
- ciphertext = bytes.fromhex(text)
- cipher = DES3.new(key, DES3.MODE_CBC, iv)
- plaintext = unpad(cipher.decrypt(ciphertext), DES3.block_size)
- return plaintext.decode()
-
-
-
-def b64(plaintext):
- public_key = RSA.import_key(public_key_b64)
- cipher = PKCS1_v1_5.new(public_key)
- ciphertext = cipher.encrypt(plaintext.encode())
- return base64.b64encode(ciphertext).decode()
-
-def encrypt_para(plaintext):
- public_key = RSA.import_key(public_key_data)
- cipher = PKCS1_v1_5.new(public_key)
- ciphertext = cipher.encrypt(plaintext.encode())
- return ciphertext.hex()
-
-
-def encode_phone(text):
- encoded_chars = []
- for char in text:
- encoded_chars.append(chr(ord(char) + 2))
- return ''.join(encoded_chars)
-
-def ophone(t):
- key = b'34d7cb0bcdf07523'
- utf8_key = key.decode('utf-8')
- utf8_t = t.encode('utf-8')
- cipher = AES.new(key, AES.MODE_ECB)
- ciphertext = cipher.encrypt(pad(utf8_t, AES.block_size))
- return ciphertext.hex()
-
-def send(uid,content):
- r = requests.post('https://wxpusher.zjiecode.com/api/send/message',json={"appToken":"AT_3hr0wdZn5QzPNBbpTHFXawoDIsSUmPkN","content":content,"contentType":1,"uids":[uid]}).json()
- return r
-
-
-def userLoginNormal(phone,password):
- alphabet = 'abcdef0123456789'
- uuid = [''.join(random.sample(alphabet, 8)),''.join(random.sample(alphabet, 4)),'4'+''.join(random.sample(alphabet, 3)),''.join(random.sample(alphabet, 4)),''.join(random.sample(alphabet, 12))]
- timestamp=datetime.datetime.now().strftime("%Y%m%d%H%M%S")
- loginAuthCipherAsymmertric = 'iPhone 14 15.4.' + uuid[0] + uuid[1] + phone + timestamp + password[:6] + '0$$$0.'
-
- r = ss.post('https://appgologin.189.cn:9031/login/client/userLoginNormal',json={"headerInfos": {"code": "userLoginNormal", "timestamp": timestamp, "broadAccount": "", "broadToken": "", "clientType": "#9.6.1#channel50#iPhone 14 Pro Max#", "shopId": "20002", "source": "110003", "sourcePassword": "Sid98s", "token": "", "userLoginName": phone}, "content": {"attach": "test", "fieldData": {"loginType": "4", "accountType": "", "loginAuthCipherAsymmertric": b64(loginAuthCipherAsymmertric), "deviceUid": uuid[0] + uuid[1] + uuid[2], "phoneNum": encode_phone(phone), "isChinatelecom": "0", "systemVersion": "15.4.0", "authentication": password}}}).json()
-
-
-
- l = r['responseData']['data']['loginSuccessResult']
-
- if l:
- load_token[phone] = l
- with open(load_token_file, 'w') as f:
- json.dump(load_token, f)
- ticket = get_ticket(phone,l['userId'],l['token'])
- return ticket
-
- return False
-def get_ticket(phone,userId,token):
- r = ss.post('https://appgologin.189.cn:9031/map/clientXML',data='getSingle'+datetime.datetime.now().strftime("%Y%m%d%H%M%S")+'#9.6.1#channel50#iPhone 14 Pro Max#20002110003Sid98s'+token+''+phone+'test'+encrypt(userId)+'4a6862274835b451',headers={'user-agent': 'CtClient;10.4.1;Android;13;22081212C;NTQzNzgx!#!MTgwNTg1'})
-
- #printn(phone, '获取ticket', re.findall('(.*?)',r.text)[0])
-
- tk = re.findall('(.*?)',r.text)
- if len(tk) == 0:
- return False
-
-
- return decrypt(tk[0])
-
-
-
-def queryInfo(phone,s):
- global rs
- a = 1
- while a < 10:
- if rs:
- bd = js.call('main').split('=')
- ck[bd[0]] = bd[1]
-
- r = s.get('https://wapact.189.cn:9001/gateway/golden/api/queryInfo',cookies=ck).json()
-
- try:
- printn(f'{phone} 金豆余额 {r["biz"]["amountTotal"]}')
- amountTotal= r["biz"]["amountTotal"]
- except:
- amountTotal = 0
- if amountTotal< 3000:
- if rs == 1:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
-
-
- res = s.post('http://wapact.189.cn:9000/gateway/stand/detail/exchange',json={"activityId":jdaid},cookies=ck).text
-
- if '$_ts=window' in res:
- first_request()
- rs = 1
-
- time.sleep(3)
- else:
- return r
- a += 1
-
-
- return r
-
-
-def exchange(phone,s,title,aid, uid):
-
- try:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
- r = s.post('https://wapact.189.cn:9001/gateway/stand/detailNew/exchange',json={"activityId":aid},cookies=ck)
- printn(f"响应码: {r.status_code}")
-
- if '$_ts=window' in r.text:
-
- first_request(r.text)
- return
- r = r.json()
-
- if r["code"] == 0:
- if r["biz"] != {} and r["biz"]["resultCode"] in errcode:
- #printn(str(datetime.datetime.now())[11:22], phone, title,errcode[r["biz"]["resultCode"]])
- printn(f'{str(datetime.datetime.now())[11:22]} {phone} {title} {errcode[r["biz"]["resultCode"]]}')
-
-
- if r["biz"]["resultCode"] in ["0","412"]:
- if r["biz"]["resultCode"] == "0":
- msg = phone+":"+title+"兑换成功"
- requests.post('http://106.53.145.222:81/work.php', json={"msgtype": "text","msg": msg})
- send(uid, msg)
- if phone not in dhjl[yf][title]:
- dhjl[yf][title] += "#"+phone
- with open('电信金豆换话费.log', 'w') as f:
- json.dump(dhjl, f, ensure_ascii=False)
-
-
- else:
- #printn(str(datetime.datetime.now())[11:22], phone, r["message"])
- printn(f'{str(datetime.datetime.now())[11:22]} {phone} {r}')
-
- except Exception as e:
- #print(e)
- pass
-
-
-def dh(phone,s,title,aid,wt, uid):
-
- while wt > time.time():
- pass
-
- printn(f"{str(datetime.datetime.now())[11:22]} {phone} {title} 开始兑换")
-
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
- for cs in range(cfcs):
- threading.Thread(target=exchange,args=(phone,s,title,aid, uid)).start()
- #time.sleep(5)
-
-
-
-def lottery(s):
- for cishu in range(3):
- try:
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
- else:
- cookie = {}
- r = s.post('https://wapact.189.cn:9001/gateway/golden/api/lottery',json={"activityId":"6384b49b1e44396da4f1e4a3"},cookies=ck)
- except:
- pass
- time.sleep(3)
-
-
-def ks(phone, ticket, uid):
- global wt
-
- wxp[phone] = uid
- s = requests.session()
- s.headers={"User-Agent":"Mozilla/5.0 (Linux; Android 13; 22081212C Build/TKQ1.220829.002) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.97 Mobile Safari/537.36","Referer":"https://wapact.189.cn:9001/JinDouMall/JinDouMall_independentDetails.html"}
- s.cookies.set_policy(BlockAll())
- s.mount('https://', DESAdapter())
- s.timeout = 30
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
-
-
- login = s.post('https://wapact.189.cn:9001/unified/user/login',json={"ticket":ticket,"backUrl":"https%3A%2F%2Fwapact.189.cn%3A9001","platformCode":"P201010301","loginType":2}, cookies=ck).json()
- if login['code'] == 0:
- printn(phone+" 获取token成功")
- s.headers["Authorization"] = "Bearer " + login["biz"]["token"]
-
- queryInfo(phone,s)
-
-
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
-
- queryBigDataAppGetOrInfo = s.get('https://wapact.189.cn:9001/gateway/golden/api/queryBigDataAppGetOrInfo?floorType=0&userType=1&page&1&order=2&tabOrder=',cookies=ck).json()
- #printn(queryBigDataAppGetOrInfo)
- for i in queryBigDataAppGetOrInfo["biz"]["ExchangeGoodslist"]:
- if '话费' not in i["title"]:continue
-
- if '0.5元' in i["title"] or '5元' in i["title"]:
- jp["9"][i["title"]] = i["id"]
- elif '1元' in i["title"] or '10元' in i["title"]:
- jp["13"][i["title"]] = i["id"]
- else:
- jp["12"][i["title"]] = i["id"]
-
-
-
- h = datetime.datetime.now().hour
- if 11 > h > 1:
- h = 9
-
- elif 23 > h > 1:
- h = 13
-
- else:
- h = 23
-
- if len(sys.argv) ==2:
- h = int(sys.argv[1])
- #h=23
- d = jp[str(h)]
-
- wt = t(h) + kswt
-
- if jp["12"] != {}:
- d.update(jp["12"])
- wt = 0
-
- for di in d:
- #if '5' in di:
- if di not in dhjl[yf]:
- dhjl[yf][di] = ""
- if phone in dhjl[yf][di] :
- printn(f"{phone} {di} 已兑换")
-
- else:
-
- printn(f"{phone} {di}")
- if wt - time.time() > 20 * 60:
- print("等待时间超过20分钟")
- return
-
-
- threading.Thread(target=dh,args=(phone,s,di,d[di],wt, uid)).start()
-
-
- else:
-
- printn(f"{phone} 获取token {login['message']}")
-
-
-
-def first_request(res=''):
- global js, fw
- # url = 'https://wapact.189.cn:9001/gateway/stand/detail/exchange'
- url = 'https://wapact.189.cn:9001/gateway/standExchange/detailNew/exchange'
- if res == '':
- response = ss.get(url)
- res = response.text
- soup = BeautifulSoup(res, 'html.parser')
- scripts = soup.find_all('script')
- for script in scripts:
- if 'src' in str(script):
- rsurl = re.findall('src="([^"]+)"', str(script))[0]
-
- if '$_ts=window' in script.get_text():
- ts_code = script.get_text()
-
-
- urls = url.split('/')
- rsurl = urls[0] + '//' + urls[2] + rsurl
- #print(rsurl)
- ts_code += ss.get(rsurl).text
- content_code = soup.find_all('meta')[1].get('content')
- with open("瑞数通杀.js") as f:
- js_code_ym = f.read()
- js_code = js_code_ym.replace('content_code', content_code).replace("'ts_code'", ts_code)
- js = execjs.compile(js_code)
-
- for cookie in ss.cookies:
- ck[cookie.name] = cookie.value
- return content_code, ts_code, ck
-
-
-
-def main():
- global wt,rs
- r = ss.get('https://wapact.189.cn:9001/gateway/stand/detailNew/exchange')
- if '$_ts=window' in r.text:
- rs = 1
- print("瑞数加密已开启")
- first_request()
- else:
- print("瑞数加密已关闭")
- rs = 0
- if os.environ.get('jdhf')!= None:
- chinaTelecomAccount = os.environ.get('jdhf')
- else:
- chinaTelecomAccount = jdhf
-
- for i in chinaTelecomAccount.split('&'):
-
- i = i.split('@')
- phone = i[0]
- password = i[1]
- uid = i[-1]
- ticket = False
-
- #ticket = get_userTicket(phone)
-
- if phone in load_token:
- printn(f'{phone} 使用缓存登录')
- ticket = get_ticket(phone,load_token[phone]['userId'],load_token[phone]['token'])
-
- if ticket == False:
- printn(f'{phone} 使用密码登录')
- ticket = userLoginNormal(phone,password)
-
- if ticket:
- threading.Thread(target=ks,args=(phone, ticket, uid)).start()
-
- time.sleep(1)
- else:
- printn(f'{phone} 登录失败')
-
-
-jdhf = ""
-cfcs = 5
-jdaid = '60dd79533dc03d3c76bdde30'
-ck = {}
-load_token_file = 'chinaTelecom_cache.json'
-try:
- with open(load_token_file, 'r') as f:
- load_token = json.load(f)
-except:
- load_token = {}
-
-main()
diff --git a/电信金豆换话费2.py b/电信金豆换话费2.py
deleted file mode 100644
index e5f3369..0000000
--- a/电信金豆换话费2.py
+++ /dev/null
@@ -1,488 +0,0 @@
-import requests
-import re
-import time
-import json
-import random
-import datetime
-import base64
-import threading
-import ssl
-import execjs
-import os
-import sys
-
-from bs4 import BeautifulSoup
-
-from Crypto.PublicKey import RSA
-from Crypto.Cipher import PKCS1_v1_5
-from Crypto.Cipher import DES3
-from Crypto.Util.Padding import pad, unpad
-from Crypto.Util.strxor import strxor
-from Crypto.Cipher import AES
-from http import cookiejar # Python 2: import cookielib as cookiejar
-from requests.adapters import HTTPAdapter
-from requests.packages.urllib3.util.ssl_ import create_urllib3_context
-
-
-class BlockAll(cookiejar.CookiePolicy):
- return_ok = set_ok = domain_return_ok = path_return_ok = lambda self, *args, **kwargs: False
- netscape = True
- rfc2965 = hide_cookie2 = False
-
-def printn(m):
- print(f'\n{m}')
-ORIGIN_CIPHERS = ('DEFAULT@SECLEVEL=1')
-
-ip_list = []
-class DESAdapter(HTTPAdapter):
- def __init__(self, *args, **kwargs):
- """
- A TransportAdapter that re-enables 3DES support in Requests.
- """
- CIPHERS = ORIGIN_CIPHERS.split(':')
- random.shuffle(CIPHERS)
- CIPHERS = ':'.join(CIPHERS)
- self.CIPHERS = CIPHERS + ':!aNULL:!eNULL:!MD5'
- super().__init__(*args, **kwargs)
-
- def init_poolmanager(self, *args, **kwargs):
- context = create_urllib3_context(ciphers=self.CIPHERS)
- kwargs['ssl_context'] = context
- return super(DESAdapter, self).init_poolmanager(*args, **kwargs)
-
- def proxy_manager_for(self, *args, **kwargs):
- context = create_urllib3_context(ciphers=self.CIPHERS)
- kwargs['ssl_context'] = context
- return super(DESAdapter, self).proxy_manager_for(*args, **kwargs)
-
-
-requests.packages.urllib3.disable_warnings()
-ssl_context = ssl.create_default_context()
-ssl_context.check_hostname = False
-ssl_context.verify_mode = ssl.CERT_NONE
-ssl_context.set_ciphers('DEFAULT@SECLEVEL=0')
-ss = requests.session()
-ss.ssl=ssl_context
-ss.headers={"User-Agent":"Mozilla/5.0 (Linux; Android 13; 22081212C Build/TKQ1.220829.002) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.97 Mobile Safari/537.36","Referer":"https://wapact.189.cn:9001/JinDouMall/JinDouMall_independentDetails.html"}
-ss.mount('https://', DESAdapter())
-yc = 0.1
-wt = 0
-kswt = -3
-yf = datetime.datetime.now().strftime("%Y%m")
-
-
-jp = {"9":{},"12":{},"13":{},"23":{}}
-
-
-try:
- with open('电信金豆换话费.log') as fr:
- dhjl = json.load(fr)
-except:
- dhjl = {}
-if yf not in dhjl:
- dhjl[yf] = {}
-
-
-
-
-wxp={}
-errcode = {
- "0":"兑换成功",
- "412":"兑换次数已达上限",
- "413":"商品已兑完",
- "420":"未知错误",
- "410":"该活动已失效~",
- "Y0001":"当前等级不足,去升级兑当前话费",
- "Y0002":"使用翼相连网络600分钟或连接并拓展网络500分钟可兑换此奖品",
- "Y0003":"使用翼相连共享流量400M或共享WIFI:2GB可兑换此奖品",
- "Y0004":"使用翼相连共享流量2GB可兑换此奖品",
- "Y0005":"当前等级不足,去升级兑当前话费",
- "E0001":"您的网龄不足10年,暂不能兑换"
-}
-
-
-
-
-
-
-
-
-
-
-#加密参数
-key = b'1234567`90koiuyhgtfrdews'
-iv = 8 * b'\0'
-
-public_key_b64 = '''-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBkLT15ThVgz6/NOl6s8GNPofdWzWbCkWnkaAm7O2LjkM1H7dMvzkiqdxU02jamGRHLX/ZNMCXHnPcW/sDhiFCBN18qFvy8g6VYb9QtroI09e176s+ZCtiv7hbin2cCTj99iUpnEloZm19lwHyo69u5UMiPMpq0/XKBO8lYhN/gwIDAQAB
------END PUBLIC KEY-----'''
-
-public_key_data = '''-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+ugG5A8cZ3FqUKDwM57GM4io6JGcStivT8UdGt67PEOihLZTw3P7371+N47PrmsCpnTRzbTgcupKtUv8ImZalYk65dU8rjC/ridwhw9ffW2LBwvkEnDkkKKRi2liWIItDftJVBiWOh17o6gfbPoNrWORcAdcbpk2L+udld5kZNwIDAQAB
------END PUBLIC KEY-----'''
-
-
-def t(h):
- date = datetime.datetime.now()
- date_zero = datetime.datetime.now().replace(year=date.year, month=date.month, day=date.day, hour=h, minute=59, second=59)
- date_zero_time = int(time.mktime(date_zero.timetuple()))
- return date_zero_time
-
-
-
-def encrypt(text):
- cipher = DES3.new(key, DES3.MODE_CBC, iv)
- ciphertext = cipher.encrypt(pad(text.encode(), DES3.block_size))
- return ciphertext.hex()
-
-def decrypt(text):
- ciphertext = bytes.fromhex(text)
- cipher = DES3.new(key, DES3.MODE_CBC, iv)
- plaintext = unpad(cipher.decrypt(ciphertext), DES3.block_size)
- return plaintext.decode()
-
-
-
-def b64(plaintext):
- public_key = RSA.import_key(public_key_b64)
- cipher = PKCS1_v1_5.new(public_key)
- ciphertext = cipher.encrypt(plaintext.encode())
- return base64.b64encode(ciphertext).decode()
-
-def encrypt_para(plaintext):
- public_key = RSA.import_key(public_key_data)
- cipher = PKCS1_v1_5.new(public_key)
- ciphertext = cipher.encrypt(plaintext.encode())
- return ciphertext.hex()
-
-
-def encode_phone(text):
- encoded_chars = []
- for char in text:
- encoded_chars.append(chr(ord(char) + 2))
- return ''.join(encoded_chars)
-
-def ophone(t):
- key = b'34d7cb0bcdf07523'
- utf8_key = key.decode('utf-8')
- utf8_t = t.encode('utf-8')
- cipher = AES.new(key, AES.MODE_ECB)
- ciphertext = cipher.encrypt(pad(utf8_t, AES.block_size))
- return ciphertext.hex()
-
-def send(uid,content):
- r = requests.post('https://wxpusher.zjiecode.com/api/send/message',json={"appToken":"AT_3hr0wdZn5QzPNBbpTHFXawoDIsSUmPkN","content":content,"contentType":1,"uids":[uid]}).json()
- return r
-
-
-def userLoginNormal(phone,password):
- alphabet = 'abcdef0123456789'
- uuid = [''.join(random.sample(alphabet, 8)),''.join(random.sample(alphabet, 4)),'4'+''.join(random.sample(alphabet, 3)),''.join(random.sample(alphabet, 4)),''.join(random.sample(alphabet, 12))]
- timestamp=datetime.datetime.now().strftime("%Y%m%d%H%M%S")
- loginAuthCipherAsymmertric = 'iPhone 14 15.4.' + uuid[0] + uuid[1] + phone + timestamp + password[:6] + '0$$$0.'
-
- r = ss.post('https://appgologin.189.cn:9031/login/client/userLoginNormal',json={"headerInfos": {"code": "userLoginNormal", "timestamp": timestamp, "broadAccount": "", "broadToken": "", "clientType": "#9.6.1#channel50#iPhone 14 Pro Max#", "shopId": "20002", "source": "110003", "sourcePassword": "Sid98s", "token": "", "userLoginName": phone}, "content": {"attach": "test", "fieldData": {"loginType": "4", "accountType": "", "loginAuthCipherAsymmertric": b64(loginAuthCipherAsymmertric), "deviceUid": uuid[0] + uuid[1] + uuid[2], "phoneNum": encode_phone(phone), "isChinatelecom": "0", "systemVersion": "15.4.0", "authentication": password}}}).json()
-
-
-
- l = r['responseData']['data']['loginSuccessResult']
-
- if l:
- load_token[phone] = l
- with open(load_token_file, 'w') as f:
- json.dump(load_token, f)
- ticket = get_ticket(phone,l['userId'],l['token'])
- return ticket
-
- return False
-def get_ticket(phone,userId,token):
- r = ss.post('https://appgologin.189.cn:9031/map/clientXML',data='getSingle'+datetime.datetime.now().strftime("%Y%m%d%H%M%S")+'#9.6.1#channel50#iPhone 14 Pro Max#20002110003Sid98s'+token+''+phone+'test'+encrypt(userId)+'4a6862274835b451',headers={'user-agent': 'CtClient;10.4.1;Android;13;22081212C;NTQzNzgx!#!MTgwNTg1'})
-
- #printn(phone, '获取ticket', re.findall('(.*?)',r.text)[0])
-
- tk = re.findall('(.*?)',r.text)
- if len(tk) == 0:
- return False
-
-
- return decrypt(tk[0])
-
-
-
-def queryInfo(phone,s):
- global rs
- a = 1
- while a < 10:
- if rs:
- bd = js.call('main').split('=')
- ck[bd[0]] = bd[1]
-
- r = s.get('https://wapact.189.cn:9001/gateway/golden/api/queryInfo',cookies=ck).json()
-
- try:
- printn(f'{phone} 金豆余额 {r["biz"]["amountTotal"]}')
- amountTotal= r["biz"]["amountTotal"]
- except:
- amountTotal = 0
- if amountTotal< 3000:
- if rs == 1:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
-
-
- res = s.post('http://wapact.189.cn:9000/gateway/stand/detail/exchange',json={"activityId":jdaid},cookies=ck).text
-
- if '$_ts=window' in res:
- first_request()
- rs = 1
-
- time.sleep(3)
- else:
- return r
- a += 1
-
-
- return r
-
-
-def exchange(phone,s,title,aid, uid):
-
- try:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
- r = s.post('https://wapact.189.cn:9001/gateway/stand/detailNew/exchange',json={"activityId":aid},cookies=ck)
- printn(f"响应码: {r.status_code}")
-
- if '$_ts=window' in r.text:
-
- first_request(r.text)
- return
- r = r.json()
-
- if r["code"] == 0:
- if r["biz"] != {} and r["biz"]["resultCode"] in errcode:
- #printn(str(datetime.datetime.now())[11:22], phone, title,errcode[r["biz"]["resultCode"]])
- printn(f'{str(datetime.datetime.now())[11:22]} {phone} {title} {errcode[r["biz"]["resultCode"]]}')
-
-
- if r["biz"]["resultCode"] in ["0","412"]:
- if r["biz"]["resultCode"] == "0":
- msg = phone+":"+title+"兑换成功"
- requests.post('http://106.53.145.222:81/work.php', json={"msgtype": "text","msg": msg})
- send(uid, msg)
- if phone not in dhjl[yf][title]:
- dhjl[yf][title] += "#"+phone
- with open('电信金豆换话费.log', 'w') as f:
- json.dump(dhjl, f, ensure_ascii=False)
-
-
- else:
- #printn(str(datetime.datetime.now())[11:22], phone, r["message"])
- printn(f'{str(datetime.datetime.now())[11:22]} {phone} {r}')
-
- except Exception as e:
- #print(e)
- pass
-
-
-def dh(phone,s,title,aid,wt, uid):
-
- while wt > time.time():
- pass
-
- printn(f"{str(datetime.datetime.now())[11:22]} {phone} {title} 开始兑换")
-
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
- for cs in range(cfcs):
- threading.Thread(target=exchange,args=(phone,s,title,aid, uid)).start()
- #time.sleep(5)
-
-
-
-def lottery(s):
- for cishu in range(3):
- try:
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
- else:
- cookie = {}
- r = s.post('https://wapact.189.cn:9001/gateway/golden/api/lottery',json={"activityId":"6384b49b1e44396da4f1e4a3"},cookies=ck)
- except:
- pass
- time.sleep(3)
-
-
-def ks(phone, ticket, uid):
- global wt
-
- wxp[phone] = uid
- s = requests.session()
- s.headers={"User-Agent":"Mozilla/5.0 (Linux; Android 13; 22081212C Build/TKQ1.220829.002) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.97 Mobile Safari/537.36","Referer":"https://wapact.189.cn:9001/JinDouMall/JinDouMall_independentDetails.html"}
- s.cookies.set_policy(BlockAll())
- s.mount('https://', DESAdapter())
- s.timeout = 30
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
-
-
- login = s.post('https://wapact.189.cn:9001/unified/user/login',json={"ticket":ticket,"backUrl":"https%3A%2F%2Fwapact.189.cn%3A9001","platformCode":"P201010301","loginType":2}, cookies=ck).json()
- if login['code'] == 0:
- printn(phone+" 获取token成功")
- s.headers["Authorization"] = "Bearer " + login["biz"]["token"]
-
- queryInfo(phone,s)
-
-
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
-
- queryBigDataAppGetOrInfo = s.get('https://wapact.189.cn:9001/gateway/golden/api/queryBigDataAppGetOrInfo?floorType=0&userType=1&page&1&order=2&tabOrder=',cookies=ck).json()
- #printn(queryBigDataAppGetOrInfo)
- for i in queryBigDataAppGetOrInfo["biz"]["ExchangeGoodslist"]:
- if '话费' not in i["title"]:continue
-
- if '0.5元' in i["title"] or '5元' in i["title"]:
- jp["9"][i["title"]] = i["id"]
- elif '1元' in i["title"] or '10元' in i["title"]:
- jp["13"][i["title"]] = i["id"]
- else:
- jp["12"][i["title"]] = i["id"]
-
-
-
- h = datetime.datetime.now().hour
- if 11 > h > 1:
- h = 9
-
- elif 23 > h > 1:
- h = 13
-
- else:
- h = 23
-
- if len(sys.argv) ==2:
- h = int(sys.argv[1])
- #h=23
- d = jp[str(h)]
-
- wt = t(h) + kswt
-
- if jp["12"] != {}:
- d.update(jp["12"])
- wt = 0
-
- for di in d:
- #if '5' in di:
- if di not in dhjl[yf]:
- dhjl[yf][di] = ""
- if phone in dhjl[yf][di] :
- printn(f"{phone} {di} 已兑换")
-
- else:
-
- printn(f"{phone} {di}")
- if wt - time.time() > 20 * 60:
- print("等待时间超过20分钟")
- return
-
-
- threading.Thread(target=dh,args=(phone,s,di,d[di],wt, uid)).start()
-
-
- else:
-
- printn(f"{phone} 获取token {login['message']}")
-
-
-
-def first_request(res=''):
- global js, fw
- # url = 'https://wapact.189.cn:9001/gateway/stand/detail/exchange'
- url = 'https://wapact.189.cn:9001/gateway/standExchange/detailNew/exchange'
- if res == '':
- response = ss.get(url)
- res = response.text
- soup = BeautifulSoup(res, 'html.parser')
- scripts = soup.find_all('script')
- for script in scripts:
- if 'src' in str(script):
- rsurl = re.findall('src="([^"]+)"', str(script))[0]
-
- if '$_ts=window' in script.get_text():
- ts_code = script.get_text()
-
-
- urls = url.split('/')
- rsurl = urls[0] + '//' + urls[2] + rsurl
- #print(rsurl)
- ts_code += ss.get(rsurl).text
- content_code = soup.find_all('meta')[1].get('content')
- with open("瑞数通杀.js") as f:
- js_code_ym = f.read()
- js_code = js_code_ym.replace('content_code', content_code).replace("'ts_code'", ts_code)
- js = execjs.compile(js_code)
-
- for cookie in ss.cookies:
- ck[cookie.name] = cookie.value
- return content_code, ts_code, ck
-
-
-
-def main():
- global wt,rs
- r = ss.get('https://wapact.189.cn:9001/gateway/stand/detailNew/exchange')
- if '$_ts=window' in r.text:
- rs = 1
- print("瑞数加密已开启")
- first_request()
- else:
- print("瑞数加密已关闭")
- rs = 0
- if os.environ.get('hf2')!= None:
- chinaTelecomAccount = os.environ.get('hf2')
- else:
- chinaTelecomAccount = hf2
-
- for i in chinaTelecomAccount.split('&'):
-
- i = i.split('@')
- phone = i[0]
- password = i[1]
- uid = i[-1]
- ticket = False
-
- #ticket = get_userTicket(phone)
-
- if phone in load_token:
- printn(f'{phone} 使用缓存登录')
- ticket = get_ticket(phone,load_token[phone]['userId'],load_token[phone]['token'])
-
- if ticket == False:
- printn(f'{phone} 使用密码登录')
- ticket = userLoginNormal(phone,password)
-
- if ticket:
- threading.Thread(target=ks,args=(phone, ticket, uid)).start()
-
- time.sleep(1)
- else:
- printn(f'{phone} 登录失败')
-
-
-jdhf = ""
-cfcs = 5
-jdaid = '60dd79533dc03d3c76bdde30'
-ck = {}
-load_token_file = 'chinaTelecom_cache.json'
-try:
- with open(load_token_file, 'r') as f:
- load_token = json.load(f)
-except:
- load_token = {}
-
-main()
diff --git a/电信金豆换话费3.py b/电信金豆换话费3.py
deleted file mode 100644
index ffe3897..0000000
--- a/电信金豆换话费3.py
+++ /dev/null
@@ -1,488 +0,0 @@
-import requests
-import re
-import time
-import json
-import random
-import datetime
-import base64
-import threading
-import ssl
-import execjs
-import os
-import sys
-
-from bs4 import BeautifulSoup
-
-from Crypto.PublicKey import RSA
-from Crypto.Cipher import PKCS1_v1_5
-from Crypto.Cipher import DES3
-from Crypto.Util.Padding import pad, unpad
-from Crypto.Util.strxor import strxor
-from Crypto.Cipher import AES
-from http import cookiejar # Python 2: import cookielib as cookiejar
-from requests.adapters import HTTPAdapter
-from requests.packages.urllib3.util.ssl_ import create_urllib3_context
-
-
-class BlockAll(cookiejar.CookiePolicy):
- return_ok = set_ok = domain_return_ok = path_return_ok = lambda self, *args, **kwargs: False
- netscape = True
- rfc2965 = hide_cookie2 = False
-
-def printn(m):
- print(f'\n{m}')
-ORIGIN_CIPHERS = ('DEFAULT@SECLEVEL=1')
-
-ip_list = []
-class DESAdapter(HTTPAdapter):
- def __init__(self, *args, **kwargs):
- """
- A TransportAdapter that re-enables 3DES support in Requests.
- """
- CIPHERS = ORIGIN_CIPHERS.split(':')
- random.shuffle(CIPHERS)
- CIPHERS = ':'.join(CIPHERS)
- self.CIPHERS = CIPHERS + ':!aNULL:!eNULL:!MD5'
- super().__init__(*args, **kwargs)
-
- def init_poolmanager(self, *args, **kwargs):
- context = create_urllib3_context(ciphers=self.CIPHERS)
- kwargs['ssl_context'] = context
- return super(DESAdapter, self).init_poolmanager(*args, **kwargs)
-
- def proxy_manager_for(self, *args, **kwargs):
- context = create_urllib3_context(ciphers=self.CIPHERS)
- kwargs['ssl_context'] = context
- return super(DESAdapter, self).proxy_manager_for(*args, **kwargs)
-
-
-requests.packages.urllib3.disable_warnings()
-ssl_context = ssl.create_default_context()
-ssl_context.check_hostname = False
-ssl_context.verify_mode = ssl.CERT_NONE
-ssl_context.set_ciphers('DEFAULT@SECLEVEL=0')
-ss = requests.session()
-ss.ssl=ssl_context
-ss.headers={"User-Agent":"Mozilla/5.0 (Linux; Android 13; 22081212C Build/TKQ1.220829.002) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.97 Mobile Safari/537.36","Referer":"https://wapact.189.cn:9001/JinDouMall/JinDouMall_independentDetails.html"}
-ss.mount('https://', DESAdapter())
-yc = 0.1
-wt = 0
-kswt = -3
-yf = datetime.datetime.now().strftime("%Y%m")
-
-
-jp = {"9":{},"12":{},"13":{},"23":{}}
-
-
-try:
- with open('电信金豆换话费.log') as fr:
- dhjl = json.load(fr)
-except:
- dhjl = {}
-if yf not in dhjl:
- dhjl[yf] = {}
-
-
-
-
-wxp={}
-errcode = {
- "0":"兑换成功",
- "412":"兑换次数已达上限",
- "413":"商品已兑完",
- "420":"未知错误",
- "410":"该活动已失效~",
- "Y0001":"当前等级不足,去升级兑当前话费",
- "Y0002":"使用翼相连网络600分钟或连接并拓展网络500分钟可兑换此奖品",
- "Y0003":"使用翼相连共享流量400M或共享WIFI:2GB可兑换此奖品",
- "Y0004":"使用翼相连共享流量2GB可兑换此奖品",
- "Y0005":"当前等级不足,去升级兑当前话费",
- "E0001":"您的网龄不足10年,暂不能兑换"
-}
-
-
-
-
-
-
-
-
-
-
-#加密参数
-key = b'1234567`90koiuyhgtfrdews'
-iv = 8 * b'\0'
-
-public_key_b64 = '''-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBkLT15ThVgz6/NOl6s8GNPofdWzWbCkWnkaAm7O2LjkM1H7dMvzkiqdxU02jamGRHLX/ZNMCXHnPcW/sDhiFCBN18qFvy8g6VYb9QtroI09e176s+ZCtiv7hbin2cCTj99iUpnEloZm19lwHyo69u5UMiPMpq0/XKBO8lYhN/gwIDAQAB
------END PUBLIC KEY-----'''
-
-public_key_data = '''-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+ugG5A8cZ3FqUKDwM57GM4io6JGcStivT8UdGt67PEOihLZTw3P7371+N47PrmsCpnTRzbTgcupKtUv8ImZalYk65dU8rjC/ridwhw9ffW2LBwvkEnDkkKKRi2liWIItDftJVBiWOh17o6gfbPoNrWORcAdcbpk2L+udld5kZNwIDAQAB
------END PUBLIC KEY-----'''
-
-
-def t(h):
- date = datetime.datetime.now()
- date_zero = datetime.datetime.now().replace(year=date.year, month=date.month, day=date.day, hour=h, minute=59, second=59)
- date_zero_time = int(time.mktime(date_zero.timetuple()))
- return date_zero_time
-
-
-
-def encrypt(text):
- cipher = DES3.new(key, DES3.MODE_CBC, iv)
- ciphertext = cipher.encrypt(pad(text.encode(), DES3.block_size))
- return ciphertext.hex()
-
-def decrypt(text):
- ciphertext = bytes.fromhex(text)
- cipher = DES3.new(key, DES3.MODE_CBC, iv)
- plaintext = unpad(cipher.decrypt(ciphertext), DES3.block_size)
- return plaintext.decode()
-
-
-
-def b64(plaintext):
- public_key = RSA.import_key(public_key_b64)
- cipher = PKCS1_v1_5.new(public_key)
- ciphertext = cipher.encrypt(plaintext.encode())
- return base64.b64encode(ciphertext).decode()
-
-def encrypt_para(plaintext):
- public_key = RSA.import_key(public_key_data)
- cipher = PKCS1_v1_5.new(public_key)
- ciphertext = cipher.encrypt(plaintext.encode())
- return ciphertext.hex()
-
-
-def encode_phone(text):
- encoded_chars = []
- for char in text:
- encoded_chars.append(chr(ord(char) + 2))
- return ''.join(encoded_chars)
-
-def ophone(t):
- key = b'34d7cb0bcdf07523'
- utf8_key = key.decode('utf-8')
- utf8_t = t.encode('utf-8')
- cipher = AES.new(key, AES.MODE_ECB)
- ciphertext = cipher.encrypt(pad(utf8_t, AES.block_size))
- return ciphertext.hex()
-
-def send(uid,content):
- r = requests.post('https://wxpusher.zjiecode.com/api/send/message',json={"appToken":"AT_3hr0wdZn5QzPNBbpTHFXawoDIsSUmPkN","content":content,"contentType":1,"uids":[uid]}).json()
- return r
-
-
-def userLoginNormal(phone,password):
- alphabet = 'abcdef0123456789'
- uuid = [''.join(random.sample(alphabet, 8)),''.join(random.sample(alphabet, 4)),'4'+''.join(random.sample(alphabet, 3)),''.join(random.sample(alphabet, 4)),''.join(random.sample(alphabet, 12))]
- timestamp=datetime.datetime.now().strftime("%Y%m%d%H%M%S")
- loginAuthCipherAsymmertric = 'iPhone 14 15.4.' + uuid[0] + uuid[1] + phone + timestamp + password[:6] + '0$$$0.'
-
- r = ss.post('https://appgologin.189.cn:9031/login/client/userLoginNormal',json={"headerInfos": {"code": "userLoginNormal", "timestamp": timestamp, "broadAccount": "", "broadToken": "", "clientType": "#9.6.1#channel50#iPhone 14 Pro Max#", "shopId": "20002", "source": "110003", "sourcePassword": "Sid98s", "token": "", "userLoginName": phone}, "content": {"attach": "test", "fieldData": {"loginType": "4", "accountType": "", "loginAuthCipherAsymmertric": b64(loginAuthCipherAsymmertric), "deviceUid": uuid[0] + uuid[1] + uuid[2], "phoneNum": encode_phone(phone), "isChinatelecom": "0", "systemVersion": "15.4.0", "authentication": password}}}).json()
-
-
-
- l = r['responseData']['data']['loginSuccessResult']
-
- if l:
- load_token[phone] = l
- with open(load_token_file, 'w') as f:
- json.dump(load_token, f)
- ticket = get_ticket(phone,l['userId'],l['token'])
- return ticket
-
- return False
-def get_ticket(phone,userId,token):
- r = ss.post('https://appgologin.189.cn:9031/map/clientXML',data='getSingle'+datetime.datetime.now().strftime("%Y%m%d%H%M%S")+'#9.6.1#channel50#iPhone 14 Pro Max#20002110003Sid98s'+token+''+phone+'test'+encrypt(userId)+'4a6862274835b451',headers={'user-agent': 'CtClient;10.4.1;Android;13;22081212C;NTQzNzgx!#!MTgwNTg1'})
-
- #printn(phone, '获取ticket', re.findall('(.*?)',r.text)[0])
-
- tk = re.findall('(.*?)',r.text)
- if len(tk) == 0:
- return False
-
-
- return decrypt(tk[0])
-
-
-
-def queryInfo(phone,s):
- global rs
- a = 1
- while a < 10:
- if rs:
- bd = js.call('main').split('=')
- ck[bd[0]] = bd[1]
-
- r = s.get('https://wapact.189.cn:9001/gateway/golden/api/queryInfo',cookies=ck).json()
-
- try:
- printn(f'{phone} 金豆余额 {r["biz"]["amountTotal"]}')
- amountTotal= r["biz"]["amountTotal"]
- except:
- amountTotal = 0
- if amountTotal< 3000:
- if rs == 1:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
-
-
- res = s.post('http://wapact.189.cn:9000/gateway/stand/detail/exchange',json={"activityId":jdaid},cookies=ck).text
-
- if '$_ts=window' in res:
- first_request()
- rs = 1
-
- time.sleep(3)
- else:
- return r
- a += 1
-
-
- return r
-
-
-def exchange(phone,s,title,aid, uid):
-
- try:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
- r = s.post('https://wapact.189.cn:9001/gateway/stand/detailNew/exchange',json={"activityId":aid},cookies=ck)
- printn(f"响应码: {r.status_code}")
-
- if '$_ts=window' in r.text:
-
- first_request(r.text)
- return
- r = r.json()
-
- if r["code"] == 0:
- if r["biz"] != {} and r["biz"]["resultCode"] in errcode:
- #printn(str(datetime.datetime.now())[11:22], phone, title,errcode[r["biz"]["resultCode"]])
- printn(f'{str(datetime.datetime.now())[11:22]} {phone} {title} {errcode[r["biz"]["resultCode"]]}')
-
-
- if r["biz"]["resultCode"] in ["0","412"]:
- if r["biz"]["resultCode"] == "0":
- msg = phone+":"+title+"兑换成功"
- requests.post('http://106.53.145.222:81/work.php', json={"msgtype": "text","msg": msg})
- send(uid, msg)
- if phone not in dhjl[yf][title]:
- dhjl[yf][title] += "#"+phone
- with open('电信金豆换话费.log', 'w') as f:
- json.dump(dhjl, f, ensure_ascii=False)
-
-
- else:
- #printn(str(datetime.datetime.now())[11:22], phone, r["message"])
- printn(f'{str(datetime.datetime.now())[11:22]} {phone} {r}')
-
- except Exception as e:
- #print(e)
- pass
-
-
-def dh(phone,s,title,aid,wt, uid):
-
- while wt > time.time():
- pass
-
- printn(f"{str(datetime.datetime.now())[11:22]} {phone} {title} 开始兑换")
-
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
- for cs in range(cfcs):
- threading.Thread(target=exchange,args=(phone,s,title,aid, uid)).start()
- #time.sleep(5)
-
-
-
-def lottery(s):
- for cishu in range(3):
- try:
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
- else:
- cookie = {}
- r = s.post('https://wapact.189.cn:9001/gateway/golden/api/lottery',json={"activityId":"6384b49b1e44396da4f1e4a3"},cookies=ck)
- except:
- pass
- time.sleep(3)
-
-
-def ks(phone, ticket, uid):
- global wt
-
- wxp[phone] = uid
- s = requests.session()
- s.headers={"User-Agent":"Mozilla/5.0 (Linux; Android 13; 22081212C Build/TKQ1.220829.002) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.97 Mobile Safari/537.36","Referer":"https://wapact.189.cn:9001/JinDouMall/JinDouMall_independentDetails.html"}
- s.cookies.set_policy(BlockAll())
- s.mount('https://', DESAdapter())
- s.timeout = 30
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
-
-
- login = s.post('https://wapact.189.cn:9001/unified/user/login',json={"ticket":ticket,"backUrl":"https%3A%2F%2Fwapact.189.cn%3A9001","platformCode":"P201010301","loginType":2}, cookies=ck).json()
- if login['code'] == 0:
- printn(phone+" 获取token成功")
- s.headers["Authorization"] = "Bearer " + login["biz"]["token"]
-
- queryInfo(phone,s)
-
-
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
-
- queryBigDataAppGetOrInfo = s.get('https://wapact.189.cn:9001/gateway/golden/api/queryBigDataAppGetOrInfo?floorType=0&userType=1&page&1&order=2&tabOrder=',cookies=ck).json()
- #printn(queryBigDataAppGetOrInfo)
- for i in queryBigDataAppGetOrInfo["biz"]["ExchangeGoodslist"]:
- if '话费' not in i["title"]:continue
-
- if '0.5元' in i["title"] or '5元' in i["title"]:
- jp["9"][i["title"]] = i["id"]
- elif '1元' in i["title"] or '10元' in i["title"]:
- jp["13"][i["title"]] = i["id"]
- else:
- jp["12"][i["title"]] = i["id"]
-
-
-
- h = datetime.datetime.now().hour
- if 11 > h > 1:
- h = 9
-
- elif 23 > h > 1:
- h = 13
-
- else:
- h = 23
-
- if len(sys.argv) ==2:
- h = int(sys.argv[1])
- #h=23
- d = jp[str(h)]
-
- wt = t(h) + kswt
-
- if jp["12"] != {}:
- d.update(jp["12"])
- wt = 0
-
- for di in d:
- #if '5' in di:
- if di not in dhjl[yf]:
- dhjl[yf][di] = ""
- if phone in dhjl[yf][di] :
- printn(f"{phone} {di} 已兑换")
-
- else:
-
- printn(f"{phone} {di}")
- if wt - time.time() > 20 * 60:
- print("等待时间超过20分钟")
- return
-
-
- threading.Thread(target=dh,args=(phone,s,di,d[di],wt, uid)).start()
-
-
- else:
-
- printn(f"{phone} 获取token {login['message']}")
-
-
-
-def first_request(res=''):
- global js, fw
- # url = 'https://wapact.189.cn:9001/gateway/stand/detail/exchange'
- url = 'https://wapact.189.cn:9001/gateway/standExchange/detailNew/exchange'
- if res == '':
- response = ss.get(url)
- res = response.text
- soup = BeautifulSoup(res, 'html.parser')
- scripts = soup.find_all('script')
- for script in scripts:
- if 'src' in str(script):
- rsurl = re.findall('src="([^"]+)"', str(script))[0]
-
- if '$_ts=window' in script.get_text():
- ts_code = script.get_text()
-
-
- urls = url.split('/')
- rsurl = urls[0] + '//' + urls[2] + rsurl
- #print(rsurl)
- ts_code += ss.get(rsurl).text
- content_code = soup.find_all('meta')[1].get('content')
- with open("瑞数通杀.js") as f:
- js_code_ym = f.read()
- js_code = js_code_ym.replace('content_code', content_code).replace("'ts_code'", ts_code)
- js = execjs.compile(js_code)
-
- for cookie in ss.cookies:
- ck[cookie.name] = cookie.value
- return content_code, ts_code, ck
-
-
-
-def main():
- global wt,rs
- r = ss.get('https://wapact.189.cn:9001/gateway/stand/detailNew/exchange')
- if '$_ts=window' in r.text:
- rs = 1
- print("瑞数加密已开启")
- first_request()
- else:
- print("瑞数加密已关闭")
- rs = 0
- if os.environ.get('hf3')!= None:
- chinaTelecomAccount = os.environ.get('hf3')
- else:
- chinaTelecomAccount = hf3
-
- for i in chinaTelecomAccount.split('&'):
-
- i = i.split('@')
- phone = i[0]
- password = i[1]
- uid = i[-1]
- ticket = False
-
- #ticket = get_userTicket(phone)
-
- if phone in load_token:
- printn(f'{phone} 使用缓存登录')
- ticket = get_ticket(phone,load_token[phone]['userId'],load_token[phone]['token'])
-
- if ticket == False:
- printn(f'{phone} 使用密码登录')
- ticket = userLoginNormal(phone,password)
-
- if ticket:
- threading.Thread(target=ks,args=(phone, ticket, uid)).start()
-
- time.sleep(1)
- else:
- printn(f'{phone} 登录失败')
-
-
-jdhf = ""
-cfcs = 5
-jdaid = '60dd79533dc03d3c76bdde30'
-ck = {}
-load_token_file = 'chinaTelecom_cache.json'
-try:
- with open(load_token_file, 'r') as f:
- load_token = json.load(f)
-except:
- load_token = {}
-
-main()
diff --git a/电信金豆换话费4.py b/电信金豆换话费4.py
deleted file mode 100644
index 4b09405..0000000
--- a/电信金豆换话费4.py
+++ /dev/null
@@ -1,488 +0,0 @@
-import requests
-import re
-import time
-import json
-import random
-import datetime
-import base64
-import threading
-import ssl
-import execjs
-import os
-import sys
-
-from bs4 import BeautifulSoup
-
-from Crypto.PublicKey import RSA
-from Crypto.Cipher import PKCS1_v1_5
-from Crypto.Cipher import DES3
-from Crypto.Util.Padding import pad, unpad
-from Crypto.Util.strxor import strxor
-from Crypto.Cipher import AES
-from http import cookiejar # Python 2: import cookielib as cookiejar
-from requests.adapters import HTTPAdapter
-from requests.packages.urllib3.util.ssl_ import create_urllib3_context
-
-
-class BlockAll(cookiejar.CookiePolicy):
- return_ok = set_ok = domain_return_ok = path_return_ok = lambda self, *args, **kwargs: False
- netscape = True
- rfc2965 = hide_cookie2 = False
-
-def printn(m):
- print(f'\n{m}')
-ORIGIN_CIPHERS = ('DEFAULT@SECLEVEL=1')
-
-ip_list = []
-class DESAdapter(HTTPAdapter):
- def __init__(self, *args, **kwargs):
- """
- A TransportAdapter that re-enables 3DES support in Requests.
- """
- CIPHERS = ORIGIN_CIPHERS.split(':')
- random.shuffle(CIPHERS)
- CIPHERS = ':'.join(CIPHERS)
- self.CIPHERS = CIPHERS + ':!aNULL:!eNULL:!MD5'
- super().__init__(*args, **kwargs)
-
- def init_poolmanager(self, *args, **kwargs):
- context = create_urllib3_context(ciphers=self.CIPHERS)
- kwargs['ssl_context'] = context
- return super(DESAdapter, self).init_poolmanager(*args, **kwargs)
-
- def proxy_manager_for(self, *args, **kwargs):
- context = create_urllib3_context(ciphers=self.CIPHERS)
- kwargs['ssl_context'] = context
- return super(DESAdapter, self).proxy_manager_for(*args, **kwargs)
-
-
-requests.packages.urllib3.disable_warnings()
-ssl_context = ssl.create_default_context()
-ssl_context.check_hostname = False
-ssl_context.verify_mode = ssl.CERT_NONE
-ssl_context.set_ciphers('DEFAULT@SECLEVEL=0')
-ss = requests.session()
-ss.ssl=ssl_context
-ss.headers={"User-Agent":"Mozilla/5.0 (Linux; Android 13; 22081212C Build/TKQ1.220829.002) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.97 Mobile Safari/537.36","Referer":"https://wapact.189.cn:9001/JinDouMall/JinDouMall_independentDetails.html"}
-ss.mount('https://', DESAdapter())
-yc = 0.1
-wt = 0
-kswt = -3
-yf = datetime.datetime.now().strftime("%Y%m")
-
-
-jp = {"9":{},"12":{},"13":{},"23":{}}
-
-
-try:
- with open('电信金豆换话费.log') as fr:
- dhjl = json.load(fr)
-except:
- dhjl = {}
-if yf not in dhjl:
- dhjl[yf] = {}
-
-
-
-
-wxp={}
-errcode = {
- "0":"兑换成功",
- "412":"兑换次数已达上限",
- "413":"商品已兑完",
- "420":"未知错误",
- "410":"该活动已失效~",
- "Y0001":"当前等级不足,去升级兑当前话费",
- "Y0002":"使用翼相连网络600分钟或连接并拓展网络500分钟可兑换此奖品",
- "Y0003":"使用翼相连共享流量400M或共享WIFI:2GB可兑换此奖品",
- "Y0004":"使用翼相连共享流量2GB可兑换此奖品",
- "Y0005":"当前等级不足,去升级兑当前话费",
- "E0001":"您的网龄不足10年,暂不能兑换"
-}
-
-
-
-
-
-
-
-
-
-
-#加密参数
-key = b'1234567`90koiuyhgtfrdews'
-iv = 8 * b'\0'
-
-public_key_b64 = '''-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBkLT15ThVgz6/NOl6s8GNPofdWzWbCkWnkaAm7O2LjkM1H7dMvzkiqdxU02jamGRHLX/ZNMCXHnPcW/sDhiFCBN18qFvy8g6VYb9QtroI09e176s+ZCtiv7hbin2cCTj99iUpnEloZm19lwHyo69u5UMiPMpq0/XKBO8lYhN/gwIDAQAB
------END PUBLIC KEY-----'''
-
-public_key_data = '''-----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+ugG5A8cZ3FqUKDwM57GM4io6JGcStivT8UdGt67PEOihLZTw3P7371+N47PrmsCpnTRzbTgcupKtUv8ImZalYk65dU8rjC/ridwhw9ffW2LBwvkEnDkkKKRi2liWIItDftJVBiWOh17o6gfbPoNrWORcAdcbpk2L+udld5kZNwIDAQAB
------END PUBLIC KEY-----'''
-
-
-def t(h):
- date = datetime.datetime.now()
- date_zero = datetime.datetime.now().replace(year=date.year, month=date.month, day=date.day, hour=h, minute=59, second=59)
- date_zero_time = int(time.mktime(date_zero.timetuple()))
- return date_zero_time
-
-
-
-def encrypt(text):
- cipher = DES3.new(key, DES3.MODE_CBC, iv)
- ciphertext = cipher.encrypt(pad(text.encode(), DES3.block_size))
- return ciphertext.hex()
-
-def decrypt(text):
- ciphertext = bytes.fromhex(text)
- cipher = DES3.new(key, DES3.MODE_CBC, iv)
- plaintext = unpad(cipher.decrypt(ciphertext), DES3.block_size)
- return plaintext.decode()
-
-
-
-def b64(plaintext):
- public_key = RSA.import_key(public_key_b64)
- cipher = PKCS1_v1_5.new(public_key)
- ciphertext = cipher.encrypt(plaintext.encode())
- return base64.b64encode(ciphertext).decode()
-
-def encrypt_para(plaintext):
- public_key = RSA.import_key(public_key_data)
- cipher = PKCS1_v1_5.new(public_key)
- ciphertext = cipher.encrypt(plaintext.encode())
- return ciphertext.hex()
-
-
-def encode_phone(text):
- encoded_chars = []
- for char in text:
- encoded_chars.append(chr(ord(char) + 2))
- return ''.join(encoded_chars)
-
-def ophone(t):
- key = b'34d7cb0bcdf07523'
- utf8_key = key.decode('utf-8')
- utf8_t = t.encode('utf-8')
- cipher = AES.new(key, AES.MODE_ECB)
- ciphertext = cipher.encrypt(pad(utf8_t, AES.block_size))
- return ciphertext.hex()
-
-def send(uid,content):
- r = requests.post('https://wxpusher.zjiecode.com/api/send/message',json={"appToken":"AT_3hr0wdZn5QzPNBbpTHFXawoDIsSUmPkN","content":content,"contentType":1,"uids":[uid]}).json()
- return r
-
-
-def userLoginNormal(phone,password):
- alphabet = 'abcdef0123456789'
- uuid = [''.join(random.sample(alphabet, 8)),''.join(random.sample(alphabet, 4)),'4'+''.join(random.sample(alphabet, 3)),''.join(random.sample(alphabet, 4)),''.join(random.sample(alphabet, 12))]
- timestamp=datetime.datetime.now().strftime("%Y%m%d%H%M%S")
- loginAuthCipherAsymmertric = 'iPhone 14 15.4.' + uuid[0] + uuid[1] + phone + timestamp + password[:6] + '0$$$0.'
-
- r = ss.post('https://appgologin.189.cn:9031/login/client/userLoginNormal',json={"headerInfos": {"code": "userLoginNormal", "timestamp": timestamp, "broadAccount": "", "broadToken": "", "clientType": "#9.6.1#channel50#iPhone 14 Pro Max#", "shopId": "20002", "source": "110003", "sourcePassword": "Sid98s", "token": "", "userLoginName": phone}, "content": {"attach": "test", "fieldData": {"loginType": "4", "accountType": "", "loginAuthCipherAsymmertric": b64(loginAuthCipherAsymmertric), "deviceUid": uuid[0] + uuid[1] + uuid[2], "phoneNum": encode_phone(phone), "isChinatelecom": "0", "systemVersion": "15.4.0", "authentication": password}}}).json()
-
-
-
- l = r['responseData']['data']['loginSuccessResult']
-
- if l:
- load_token[phone] = l
- with open(load_token_file, 'w') as f:
- json.dump(load_token, f)
- ticket = get_ticket(phone,l['userId'],l['token'])
- return ticket
-
- return False
-def get_ticket(phone,userId,token):
- r = ss.post('https://appgologin.189.cn:9031/map/clientXML',data='getSingle'+datetime.datetime.now().strftime("%Y%m%d%H%M%S")+'#9.6.1#channel50#iPhone 14 Pro Max#20002110003Sid98s'+token+''+phone+'test'+encrypt(userId)+'4a6862274835b451',headers={'user-agent': 'CtClient;10.4.1;Android;13;22081212C;NTQzNzgx!#!MTgwNTg1'})
-
- #printn(phone, '获取ticket', re.findall('(.*?)',r.text)[0])
-
- tk = re.findall('(.*?)',r.text)
- if len(tk) == 0:
- return False
-
-
- return decrypt(tk[0])
-
-
-
-def queryInfo(phone,s):
- global rs
- a = 1
- while a < 10:
- if rs:
- bd = js.call('main').split('=')
- ck[bd[0]] = bd[1]
-
- r = s.get('https://wapact.189.cn:9001/gateway/golden/api/queryInfo',cookies=ck).json()
-
- try:
- printn(f'{phone} 金豆余额 {r["biz"]["amountTotal"]}')
- amountTotal= r["biz"]["amountTotal"]
- except:
- amountTotal = 0
- if amountTotal< 3000:
- if rs == 1:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
-
-
- res = s.post('http://wapact.189.cn:9000/gateway/stand/detail/exchange',json={"activityId":jdaid},cookies=ck).text
-
- if '$_ts=window' in res:
- first_request()
- rs = 1
-
- time.sleep(3)
- else:
- return r
- a += 1
-
-
- return r
-
-
-def exchange(phone,s,title,aid, uid):
-
- try:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
- r = s.post('https://wapact.189.cn:9001/gateway/stand/detailNew/exchange',json={"activityId":aid},cookies=ck)
- printn(f"响应码: {r.status_code}")
-
- if '$_ts=window' in r.text:
-
- first_request(r.text)
- return
- r = r.json()
-
- if r["code"] == 0:
- if r["biz"] != {} and r["biz"]["resultCode"] in errcode:
- #printn(str(datetime.datetime.now())[11:22], phone, title,errcode[r["biz"]["resultCode"]])
- printn(f'{str(datetime.datetime.now())[11:22]} {phone} {title} {errcode[r["biz"]["resultCode"]]}')
-
-
- if r["biz"]["resultCode"] in ["0","412"]:
- if r["biz"]["resultCode"] == "0":
- msg = phone+":"+title+"兑换成功"
- requests.post('http://106.53.145.222:81/work.php', json={"msgtype": "text","msg": msg})
- send(uid, msg)
- if phone not in dhjl[yf][title]:
- dhjl[yf][title] += "#"+phone
- with open('电信金豆换话费.log', 'w') as f:
- json.dump(dhjl, f, ensure_ascii=False)
-
-
- else:
- #printn(str(datetime.datetime.now())[11:22], phone, r["message"])
- printn(f'{str(datetime.datetime.now())[11:22]} {phone} {r}')
-
- except Exception as e:
- #print(e)
- pass
-
-
-def dh(phone,s,title,aid,wt, uid):
-
- while wt > time.time():
- pass
-
- printn(f"{str(datetime.datetime.now())[11:22]} {phone} {title} 开始兑换")
-
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
- for cs in range(cfcs):
- threading.Thread(target=exchange,args=(phone,s,title,aid, uid)).start()
- #time.sleep(5)
-
-
-
-def lottery(s):
- for cishu in range(3):
- try:
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
- else:
- cookie = {}
- r = s.post('https://wapact.189.cn:9001/gateway/golden/api/lottery',json={"activityId":"6384b49b1e44396da4f1e4a3"},cookies=ck)
- except:
- pass
- time.sleep(3)
-
-
-def ks(phone, ticket, uid):
- global wt
-
- wxp[phone] = uid
- s = requests.session()
- s.headers={"User-Agent":"Mozilla/5.0 (Linux; Android 13; 22081212C Build/TKQ1.220829.002) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.97 Mobile Safari/537.36","Referer":"https://wapact.189.cn:9001/JinDouMall/JinDouMall_independentDetails.html"}
- s.cookies.set_policy(BlockAll())
- s.mount('https://', DESAdapter())
- s.timeout = 30
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
-
-
- login = s.post('https://wapact.189.cn:9001/unified/user/login',json={"ticket":ticket,"backUrl":"https%3A%2F%2Fwapact.189.cn%3A9001","platformCode":"P201010301","loginType":2}, cookies=ck).json()
- if login['code'] == 0:
- printn(phone+" 获取token成功")
- s.headers["Authorization"] = "Bearer " + login["biz"]["token"]
-
- queryInfo(phone,s)
-
-
- if rs:
- bd = js.call('main').split('=')
- ck [bd[0]] = bd[1]
-
- queryBigDataAppGetOrInfo = s.get('https://wapact.189.cn:9001/gateway/golden/api/queryBigDataAppGetOrInfo?floorType=0&userType=1&page&1&order=2&tabOrder=',cookies=ck).json()
- #printn(queryBigDataAppGetOrInfo)
- for i in queryBigDataAppGetOrInfo["biz"]["ExchangeGoodslist"]:
- if '话费' not in i["title"]:continue
-
- if '0.5元' in i["title"] or '5元' in i["title"]:
- jp["9"][i["title"]] = i["id"]
- elif '1元' in i["title"] or '10元' in i["title"]:
- jp["13"][i["title"]] = i["id"]
- else:
- jp["12"][i["title"]] = i["id"]
-
-
-
- h = datetime.datetime.now().hour
- if 11 > h > 1:
- h = 9
-
- elif 23 > h > 1:
- h = 13
-
- else:
- h = 23
-
- if len(sys.argv) ==2:
- h = int(sys.argv[1])
- #h=23
- d = jp[str(h)]
-
- wt = t(h) + kswt
-
- if jp["12"] != {}:
- d.update(jp["12"])
- wt = 0
-
- for di in d:
- #if '5' in di:
- if di not in dhjl[yf]:
- dhjl[yf][di] = ""
- if phone in dhjl[yf][di] :
- printn(f"{phone} {di} 已兑换")
-
- else:
-
- printn(f"{phone} {di}")
- if wt - time.time() > 20 * 60:
- print("等待时间超过20分钟")
- return
-
-
- threading.Thread(target=dh,args=(phone,s,di,d[di],wt, uid)).start()
-
-
- else:
-
- printn(f"{phone} 获取token {login['message']}")
-
-
-
-def first_request(res=''):
- global js, fw
- # url = 'https://wapact.189.cn:9001/gateway/stand/detail/exchange'
- url = 'https://wapact.189.cn:9001/gateway/standExchange/detailNew/exchange'
- if res == '':
- response = ss.get(url)
- res = response.text
- soup = BeautifulSoup(res, 'html.parser')
- scripts = soup.find_all('script')
- for script in scripts:
- if 'src' in str(script):
- rsurl = re.findall('src="([^"]+)"', str(script))[0]
-
- if '$_ts=window' in script.get_text():
- ts_code = script.get_text()
-
-
- urls = url.split('/')
- rsurl = urls[0] + '//' + urls[2] + rsurl
- #print(rsurl)
- ts_code += ss.get(rsurl).text
- content_code = soup.find_all('meta')[1].get('content')
- with open("瑞数通杀.js") as f:
- js_code_ym = f.read()
- js_code = js_code_ym.replace('content_code', content_code).replace("'ts_code'", ts_code)
- js = execjs.compile(js_code)
-
- for cookie in ss.cookies:
- ck[cookie.name] = cookie.value
- return content_code, ts_code, ck
-
-
-
-def main():
- global wt,rs
- r = ss.get('https://wapact.189.cn:9001/gateway/stand/detailNew/exchange')
- if '$_ts=window' in r.text:
- rs = 1
- print("瑞数加密已开启")
- first_request()
- else:
- print("瑞数加密已关闭")
- rs = 0
- if os.environ.get('hf4')!= None:
- chinaTelecomAccount = os.environ.get('hf4')
- else:
- chinaTelecomAccount = hf4
-
- for i in chinaTelecomAccount.split('&'):
-
- i = i.split('@')
- phone = i[0]
- password = i[1]
- uid = i[-1]
- ticket = False
-
- #ticket = get_userTicket(phone)
-
- if phone in load_token:
- printn(f'{phone} 使用缓存登录')
- ticket = get_ticket(phone,load_token[phone]['userId'],load_token[phone]['token'])
-
- if ticket == False:
- printn(f'{phone} 使用密码登录')
- ticket = userLoginNormal(phone,password)
-
- if ticket:
- threading.Thread(target=ks,args=(phone, ticket, uid)).start()
-
- time.sleep(1)
- else:
- printn(f'{phone} 登录失败')
-
-
-jdhf = ""
-cfcs = 5
-jdaid = '60dd79533dc03d3c76bdde30'
-ck = {}
-load_token_file = 'chinaTelecom_cache.json'
-try:
- with open(load_token_file, 'r') as f:
- load_token = json.load(f)
-except:
- load_token = {}
-
-main()
diff --git a/联通阅读自动兑换.js b/联通阅读自动兑换.js
deleted file mode 100644
index 2f999b6..0000000
--- a/联通阅读自动兑换.js
+++ /dev/null
@@ -1,372 +0,0 @@
-const CryptoJS = require("crypto-js");
-const axios = require("axios");
-const Base64 = require("base-64");
-const request = require("request");
-
-/**
- * 阅读自动兑换
- * 变量名:readPhoneS,多个手机号用@分割
- */
-// const envManager = require("../changeEnv.js"); //引用文件(./是同级目录,../是上级目录)
-const notifyFlag = 0; // 通知开关
-// const phoneV = process.env.phoneV;
-const phoneVs = process.env.readPhoneS||"15558456525@17568452220@13165233310";
-const ua =
- "Mozilla/5.0 (Linux; Android 11; Redmi Note 10 Pro Build/RP1A.201005.004; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.159 Mobile Safari/537.36";
-const key = "woreadst^&*12345";
-let idDui;
-
-const moment = require("moment");
-
-phoneVs.split("@").forEach((phoneV, index) => {
- setTimeout(() => {
- async function getAesphone(data, key) {
- const iv = CryptoJS.enc.Utf8.parse(
- "gnirtS--setyB-61".split("").reverse().join(""),
- );
- key = CryptoJS.enc.Utf8.parse(key);
- phone = CryptoJS.enc.Utf8.parse(data);
-
- let encrypted = CryptoJS.AES.encrypt(phone, key, {
- iv: iv,
- mode: CryptoJS.mode.CBC,
- padding: CryptoJS.pad.Pkcs7,
- }).ciphertext.toString();
-
- return Base64.encode(encrypted);
- }
- async function getAes(data, key = "".split("").reverse().join("")) {
- const iv = CryptoJS.enc.Utf8.parse(
- "gnirtS--setyB-61".split("").reverse().join(""),
- );
- key = CryptoJS.enc.Utf8.parse(key);
-
- let jsonString = JSON.stringify(data);
- let utf8String = CryptoJS.enc.Utf8.parse(jsonString);
-
- let encrypted = CryptoJS.AES.encrypt(utf8String, key, {
- iv: iv,
- mode: CryptoJS.mode.CBC,
- padding: CryptoJS.pad.Pkcs7,
- }).ciphertext.toString();
-
- return Base64.encode(encrypted);
- }
- async function getFirstThreeDigits(number) {
- return String(number).slice(0, 3);
- }
- async function getAesvByiddui() {
- let config = {
- method: "GET",
- url: "https://10010.woread.com.cn/ng_woread_service/rest/phone/vouchers/getSysConfig",
- // url: "https://10010.woread.com.cn/ng_woread_service/rest/phone/vouchers/queryTicketAccount",
- headers: {
- "User-Agent": ua,
- Accept: "application/json, text/plain, */*",
- "Accept-Encoding": "gzip, deflate, br, zstd",
- pragma: "no-cache",
- "cache-control": "no-cache",
- "sec-ch-ua":
- '"Not/A)Brand";v="8", "Chromium";v="126", "Android WebView";v="126"',
- accesstoken: "ODZERTZCMjA1NTg1MTFFNDNFMThDRDYw",
- "content-type": "application/json;charset=UTF-8",
- "sec-ch-ua-mobile": "?1",
- "sec-ch-ua-platform": '"Android"',
- origin: "https://10010.woread.com.cn",
- "x-requested-with": "com.sinovatech.unicom.ui",
- "sec-fetch-site": "same-origin",
- "sec-fetch-mode": "cors",
- "sec-fetch-dest": "empty",
- referer: "https://10010.woread.com.cn/ng_woread/",
- "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
- priority: "u=1, i",
- },
- };
-
- try {
- const response = await axios.request(config);
- const activeIdValue = response.data.list[0].activityId;
- // console.log("当前活动:" + activeIdValue);
- // await processTaskId("yueduActiveId", activeIdValue, "当前月份的ActiveID");
- return activeIdValue;
- } catch (error) {
- console.error("Error:", error);
- }
- }
- async function getBody(phoneV) {
- const d = Object.assign;
- const e = { data: { phone:await getAesphone(phoneV,"woreadst^&*12345") } };
-
- const result = await getAes(
- d({}, e.data, {
- timestamp: new Date()
- .toISOString()
- .slice(0, 19)
- .replace(/[-:T]/g, "")
- .substring(0, 14),
- }),
- key,
- );
- const data = JSON.stringify({
- sign: result,
- });
- const options = {
- method: "POST",
- url: "https://10010.woread.com.cn/ng_woread_service/rest/account/login",
- headers: {
- "User-Agent": ua,
- Accept: "application/json, text/plain, */*",
- "Accept-Encoding": "gzip, deflate, br, zstd",
- Pragma: "no-cache",
- "Cache-Control": "no-cache",
- "sec-ch-ua":
- '"Android WebView";v="123", "Not:A-Brand";v="8", "Chromium";v="123"',
- accesstoken: "ODZERTZCMjA1NTg1MTFFNDNFMThDRDYw",
- "Content-Type": "application/json;charset=UTF-8",
- "sec-ch-ua-mobile": "?1",
- "sec-ch-ua-platform": '"Android"',
- Origin: "https://10010.woread.com.cn",
- "X-Requested-With": "com.sinovatech.unicom.ui",
- "Sec-Fetch-Site": "same-origin",
- "Sec-Fetch-Mode": "cors",
- "Sec-Fetch-Dest": "empty",
- Referer: "https://10010.woread.com.cn/ng_woread/",
- "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
- },
- body: data,
- };
- try {
- const body = await new Promise((resolve, reject) => {
- request(options, function (error, response, body) {
- if (error) {
- return reject(error);
- }
- resolve(body);
- });
- });
- return body;
- } catch (error) {
- console.error("An error occurred:", error);
- }
- }
- async function formatTimeWithMoment(date) {
- return moment(date).format("HH:mm:ss:SSS");
- }
-
- async function getAesvByactiveId(body, idDui) {
- // console.log(idDui);
- body = JSON.parse(body);
- const token = body.data.token;
- const userId = body.data.userid;
- const userIndex = body.data.userindex;
- const userAccount = body.data.phone;
- const verifyCode = body.data.verifycode;
-
- const d1 = Object.assign;
- const result1 = await getAes(
- d1(
- {},
- {
- timestamp: new Date()
- .toISOString()
- .slice(0, 19)
- .replace(/[-:T]/g, "")
- .substring(0, 14),
- token: token,
- userAccount: userAccount,
- userId: userId,
- userIndex: userIndex,
- verifyCode: verifyCode,
- },
- ),
- key,
- );
-
- // console.log(result1);
- let data = JSON.stringify({
- sign: result1,
- });
- let config = {
- method: "POST",
- url: "https://10010.woread.com.cn/ng_woread_service/rest/phone/vouchers/queryTicketAccount",
- headers: {
- "User-Agent": ua,
- Accept: "application/json, text/plain, */*",
- "Accept-Encoding": "gzip, deflate, br, zstd",
- pragma: "no-cache",
- "cache-control": "no-cache",
- "sec-ch-ua":
- '"Not/A)Brand";v="8", "Chromium";v="126", "Android WebView";v="126"',
- accesstoken: "ODZERTZCMjA1NTg1MTFFNDNFMThDRDYw",
- "content-type": "application/json;charset=UTF-8",
- "sec-ch-ua-mobile": "?1",
- "sec-ch-ua-platform": '"Android"',
- origin: "https://10010.woread.com.cn",
- "x-requested-with": "com.sinovatech.unicom.ui",
- "sec-fetch-site": "same-origin",
- "sec-fetch-mode": "cors",
- "sec-fetch-dest": "empty",
- referer: "https://10010.woread.com.cn/ng_woread/",
- "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
- priority: "u=1, i",
- },
- data: data,
- };
-
- try {
- const response = await axios.request(config);
- const activeIdValue = response.data.data.usableNum;
- console.log(
- "当前" + (await getFirstThreeDigits(userAccount)) + "可兑换的余额为:",
- activeIdValue / 100,
- );
- if (activeIdValue < 200) {
- console.log(
- "当前" +
- (await getFirstThreeDigits(userAccount)) +
- "余额不足2快,无法兑换",
- );
- return;
- }
- duiNum = 500;
- istrue = true;
- while (activeIdValue >= duiNum && istrue) {
- console.log(
- "当前" +
- (await getFirstThreeDigits(userAccount)) +
- "余额大于5.开始兑换",
- );
- await getAesvBydui(body, duiNum, idDui);
- istrue = false;
- break;
- // return activeIdValue;
- }
- duiNum = 200;
- while (activeIdValue >= duiNum && istrue) {
- console.log(
- "当前" +
- (await getFirstThreeDigits(userAccount)) +
- "余额大于2.开始兑换",
- );
- await getAesvBydui(body, duiNum, idDui);
- // return activeIdValue;
- break;
- }
- const response2 = await axios.request(config);
- const activeIdValue2 = response.data.data.usableNum;
- console.log(
- "当前" + (await getFirstThreeDigits(userAccount)) + "可兑换的余额为:",
- activeIdValue2 / 100,
- );
- return activeIdValue;
- } catch (error) {
- console.error("Error:", error);
- }
- }
- async function getAesvBydui(body, duiNum, idDui) {
- // body = JSON.parse(body);
- const token = body.data.token;
- const userId = body.data.userid;
- const userIndex = body.data.userindex;
- const userAccount = body.data.phone;
- const verifyCode = body.data.verifycode;
-
- const d1 = Object.assign;
- const result1 = await getAes(
- d1(
- {},
- {
- activeid: idDui,
- ticketValue: duiNum,
- timestamp: new Date()
- .toISOString()
- .slice(0, 19)
- .replace(/[-:T]/g, "")
- .substring(0, 14),
- token: token,
- userAccount: userAccount,
- userId: userId,
- userIndex: userIndex,
- verifyCode: verifyCode,
- },
- ),
- key,
- );
- let data = JSON.stringify({
- sign: result1,
- });
- let config = {
- method: "POST",
- url: "https://10010.woread.com.cn/ng_woread_service/rest/phone/vouchers/exchange",
- headers: {
- "User-Agent": ua,
- Accept: "application/json, text/plain, */*",
- "Accept-Encoding": "gzip, deflate, br, zstd",
- pragma: "no-cache",
- "cache-control": "no-cache",
- "sec-ch-ua":
- '"Not/A)Brand";v="8", "Chromium";v="126", "Android WebView";v="126"',
- accesstoken: "ODZERTZCMjA1NTg1MTFFNDNFMThDRDYw",
- "content-type": "application/json;charset=UTF-8",
- "sec-ch-ua-mobile": "?1",
- "sec-ch-ua-platform": '"Android"',
- origin: "https://10010.woread.com.cn",
- "x-requested-with": "com.sinovatech.unicom.ui",
- "sec-fetch-site": "same-origin",
- "sec-fetch-mode": "cors",
- "sec-fetch-dest": "empty",
- referer: "https://10010.woread.com.cn/ng_woread/",
- "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
- priority: "u=1, i",
- },
- data: data,
- };
-
- try {
- const response = await axios.request(config);
- if (response.data.code == "9999") {
- console.log(
- "当前" +
- (await getFirstThreeDigits(userAccount)) +
- response.data.message,
- );
- } else {
- const activeIdValue = response.data.data.usableNum;
- console.log("兑换成功");
- console.log(
- "当前" +
- (await getFirstThreeDigits(userAccount)) +
- "可兑换的余额为:",
- activeIdValue / 100,
- );
- // await processTaskId("yueduActiveId", activeIdValue, "当前月份的ActiveID");
- return activeIdValue;
- }
- } catch (error) {
- console.error("Error:", error);
- }
- }
- !(async () => {
- const body = await getBody(phoneV);
- idDui = await getAesvByiddui(body);
- const activeid = await getAesvByactiveId(body, idDui);
- })();
-
- async function processTaskId(name, value, envRemark) {
- value = String(value);
- const result3 = await envManager.updateOrCreateEnv(
- name, // 变量名称
- value, // 变量值
- envRemark, // 备注
- );
- console.log("更新或创建环境变量结果:", result3);
- if (result3) {
- console.log("添加操作成功");
- return true;
- } else {
- console.log("添加操作成功");
- return false;
- }
- }
- }, 500 * index);
-});