//Sat Aug 23 2025 01:43:17 GMT+0000 (Coordinated Universal Time) //Base:https://github.com/echo094/decode-js //Modify:https://github.com/smallfawn/decode_action const aj = require("crypto"), ak = require("zlib"), { setTimeout: al } = require("timers/promises"), { execSync: am } = require("child_process"), an = require("fs"), ao = require("path"), { createRequire: ap } = require("module"), aq = ao.join(__dirname, ".xf_modules"); if (!an.existsSync(aq)) an.mkdirSync(aq, { "recursive": true }); const ar = ao.join(aq, "package.json"); if (!an.existsSync(ar)) an.writeFileSync(ar, "{\"name\":\"xf-local-modules\",\"private\":true}"); const as = ap(ar); let at, au, av, aw, ax; function ay(a, b = "") { try { const f = b ? a + "@" + b : a; console.log("📦 正在安装 " + f + " (隔离目录)"); const g = "npm install --legacy-peer-deps --no-audit --no-fund --save --prefix \"" + aq + "\" " + f + " --registry=https://registry.npmmirror.com"; am(g, { "stdio": "inherit" }); console.log("✅ " + f + " 安装成功"); return true; } catch (h) { console.log("❌ " + a + " 安装失败: " + h.message); return false; } } function az(e, f = true, g = "") { try { const k = as(e); return k.default || k; } catch (l) { { if (l.code === "ERR_MODULE_NOT_FOUND" || l.code === "MODULE_NOT_FOUND") { { if (f) { console.log("⚠️ 检测到 " + e + " 未安装 (本地)"); if (ay(e, g)) { try { const p = as(e); return p.default || p; } catch (q) { console.log("❌ " + e + " 加载失败: " + q.message); return null; } } } } } else { if (l.code === "ERR_REQUIRE_ESM") return console.log("⚠️ 检测到 " + e + " 模块为ESM版本,可能不兼容"), null;else console.log("❌ " + e + " 加载失败: " + l.message); } return null; } } } try { const bf = az("p-limit", true, "6.1.0"); ax = bf; } catch (bg) { console.log("⚠️ p-limit模块加载失败,将使用顺序执行模式"); ax = null; } try { at = az("axios", true, "^1.6.0"); au = at; } catch (bh) { console.log("⚠️ axios模块加载失败"); au = null; } try { const bi = az("socks-proxy-agent", true, "^7.0.0"); bi ? (av = bi.SocksProxyAgent, aw = bi.SocksProxyAgent || bi.default || bi) : (av = null, aw = null); } catch (bj) { console.log("⚠️ socks-proxy-agent模块加载失败,代理功能将不可用"); av = null; aw = null; } const aA = "喜番", aB = "2.0.0", aC = "xifan", aD = true, aE = false; function aF() { const b = new Date(), e = f => String(f).padStart(2, "0"); return e(b.getHours()) + ":" + e(b.getMinutes()) + ":" + e(b.getSeconds()); } function aG(a, b) { console.log("ℹ️ " + aF() + " [" + a + "] " + b); } function aH(a, b) { console.log("⚠️ " + aF() + " [" + a + "] " + b); } function aI(a, b) { console.log("❌ " + aF() + " [" + a + "] " + b); } async function aJ(a) { try { const e = String(process.env.heihao || "").trim() === "1"; if (e) return; return await al(a); } catch { return await al(a); } } function aK() { const b = process.version, e = parseInt(b.slice(1).split(".")[0]); if (e < 16) throw new Error("Node.js版本过低,当前版本: " + b + ",需要16.0.0或更高版本"); console.log("📋 Node.js版本: " + b); const f = [{ "name": "crypto", "module": aj, "required": true }, { "name": "zlib", "module": ak, "required": true }, { "name": "timers/promises", "module": { "setTimeout": aJ }, "required": true }], g = [{ "name": "axios", "module": au, "required": true, "fallback": null }, { "name": "socks-proxy-agent", "module": aw, "required": false, "fallback": null }, { "name": "p-limit", "module": ax, "required": false, "fallback": "顺序执行模式" }]; console.log("🔍 检查核心模块..."); for (const { name: h, module: i, required: j } of f) { { if (!i) { if (j) throw new Error("核心模块 [" + h + "] 加载失败,这是系统必需模块");else { console.log("⚠️ 核心模块 [" + h + "] 不可用"); } } else console.log("✅ 核心模块 [" + h + "] 正常"); } } console.log("🔍 检查外部依赖模块..."); for (const { name: m, module: n, required: o, fallback: p } of g) { if (!n) { { if (o) throw new Error("必需模块 [" + m + "] 加载失败,请检查是否正确安装");else console.log("⚠️ 可选模块 [" + m + "] 不可用,将使用" + p); } } else { console.log("✅ 外部模块 [" + m + "] 正常"); } } if (typeof aj.createCipheriv !== "function") throw new Error("crypto模块功能异常,无法创建加密器"); if (typeof ak.gzipSync !== "function") { throw new Error("zlib模块功能异常,无法进行gzip压缩"); } if (au && typeof au.create !== "function") { if (typeof au === "function") {} else throw new Error("axios模块功能异常,无法创建HTTP客户端"); } aw && typeof aw !== "function" && console.log("⚠️ socks-proxy-agent模块功能异常,代理功能将不可用"); ax && typeof ax !== "function" && console.log("⚠️ p-limit模块功能异常,将使用顺序执行模式"); } function aL(a) { const b = { "TfqYP": "xfkm", "uUKjB": "http", "oRBMR": "user", "tEkPB": function (q, r) { return q || r; }, "EDPrB": "⚠️ 代理功能不可用,将使用直连模式", "iXqrj": function (q) { return q(); }, "AEsMn": function (q, r) { return q(r); }, "WwKjM": function (q, r) { return q + r; }, "PwXBT": function (q, r, s) { return q(r, s); }, "ssyQP": function (q, r, s) { return q(r, s); }, "ioZXX": function (q, r) { return q + r; }, "JmXbn": "SOCKS5 代理格式不正确,请按要求填写", "sXjzW": "缺少必要的分隔符 @", "OLlTX": function (q, r) { return q < r; }, "siObw": function (q, r) { return q !== r; }, "MQxUa": "iNjss", "bfUmM": "Ziyve", "ycrCs": function (q, r) { return q > r; }, "tIpIV": function (q, r) { return q === r; }, "IUGys": "第1部分(备注名)不能为空", "RQWcJ": "第1部分(备注名)过长,建议不超过50字符", "ndonJ": "vtfLj", "gxlIh": "第2部分(Cookie)不能为空", "mKJFg": "userId=", "TSniz": "第2部分(Cookie)缺少userId信息", "UpisZ": "第2部分(Cookie)长度异常,可能不完整", "CeumE": function (q, r) { return q !== r; }, "LtoQK": "bokbK", "lrnDu": "PmiqE", "aBuoR": "第3部分(message)不能为空", "OhlfI": function (q, r) { return q < r; }, "KZytQ": function (q, r) { return q === r; }, "OBmEh": "BshlK", "uprvZ": "第3部分(message)长度异常,可能不完整", "RhaSd": "第4部分(SystemUa)不能为空", "cwJel": "CwDqz", "bsvrL": "epfVO", "yyhEc": "第4部分(SystemUa)长度异常,可能不完整", "xzpFv": function (q, r) { return q !== r; }, "ydvez": "mkEkm", "XuyNx": "第5部分(BrowserUa)不能为空", "fDMEv": "第5部分(BrowserUa)长度异常,可能不完整", "rOBCB": function (q, r) { return q > r; }, "sJKmk": "第6部分(代理信息)格式可能不正确,应使用 | 或 # 分隔", "ffzGT": function (q, r) { return q !== r; }, "TpRZQ": "已自动清理各部分的前后空格", "BqGJc": function (q, r) { return q === r; } }, e = a; let f = a.trim(); const g = [], h = []; if (!f.includes("@")) return g.push("缺少必要的分隔符 @"), { "isValid": false, "fixed": null, "errors": g, "warnings": h }; const i = f.split("@"); if (i.length < 5) { g.push("账号信息不完整,需要至少5个部分,当前只有" + i.length + "个部分"); return { "isValid": false, "fixed": null, "errors": g, "warnings": h }; } i.length > 6 && h.push("账号信息包含过多部分(" + i.length + "个),可能包含多余信息"); const [j, k, l, m, n, o] = i; if (!j || j.trim().length === 0) g.push("第1部分(备注名)不能为空");else j.length > 50 && h.push("第1部分(备注名)过长,建议不超过50字符"); if (!k || k.trim().length === 0) { g.push("第2部分(Cookie)不能为空"); } else { if (!k.includes("userId=")) g.push("第2部分(Cookie)缺少userId信息");else k.length < 20 && h.push("第2部分(Cookie)长度异常,可能不完整"); } if (!l || l.trim().length === 0) { g.push("第3部分(message)不能为空"); } else { if (l.length < 10) { h.push("第3部分(message)长度异常,可能不完整"); } } if (!m || m.trim().length === 0) g.push("第4部分(SystemUa)不能为空");else { if (m.length < 10) { h.push("第4部分(SystemUa)长度异常,可能不完整"); } } if (!n || n.trim().length === 0) g.push("第5部分(BrowserUa)不能为空");else n.length < 10 && h.push("第5部分(BrowserUa)长度异常,可能不完整"); o && o.trim().length > 0 && !o.includes("|") && !o.includes("#") && h.push("第6部分(代理信息)格式可能不正确,应使用 | 或 # 分隔"); let p = false; if (g.length === 0) { const w = i.map(y => y.trim()), x = w.join("@"); x !== e && (f = x, p = true, h.push("已自动清理各部分的前后空格")); } return { "isValid": g.length === 0, "fixed": p ? f : null, "errors": g, "warnings": h }; } function aM() { const b = [{ "name": "xifan", "value": process.env.xifan, "description": "账号配置信息" }, { "name": "xfkm", "value": process.env.xfkm, "description": "卡密验证信息" }]; for (const { name: h, value: i, description: j } of b) { if (!i || !i.trim()) { throw new Error("环境变量 [" + h + "] 未设置或为空," + j + "缺失"); } } const e = process.env.xifan, f = aL(e); if (!f.isValid) { console.log("❌ xifan环境变量格式错误:"); f.errors.forEach(l => { console.log(" - " + l); }); f.fixed && (console.log("💡 已自动修复格式,修复后的格式:"), console.log(" " + f.fixed), console.log("💡 请更新环境变量为修复后的格式")); throw new Error("环境变量 [xifan] 格式错误,共" + f.errors.length + "个错误"); } f.warnings.length > 0 && (console.log("⚠️ xifan环境变量格式警告:"), f.warnings.forEach(m => { console.log(" - " + m); })); if (f.fixed) { console.log("✅ xifan环境变量格式已自动修复"); console.log(" 原始格式: " + e); console.log(" 修复格式: " + f.fixed); } const g = process.env.xfkm; if (g.length < 5) throw new Error("环境变量 [xfkm] 长度异常,卡密信息可能不完整"); if (g.includes(" ") || g.includes("\n") || g.includes("\t")) throw new Error("环境变量 [xfkm] 包含无效字符,请检查是否有多余的空格或换行符"); !/^[a-zA-Z0-9_-]+$/.test(g) && console.log("⚠️ xfkm环境变量包含特殊字符,可能影响使用"); } function aN() { return new Promise((b, e) => { const f = { "ijucC": function (h, i) { return h(i); }, "YfwTS": function (h, i) { return h !== i; }, "UmLme": "eZsyN", "JGscj": "iDwjk", "jUCTG": function (h, i) { return h(i); }, "xdiGl": "网络连接测试超时,请检查网络状态", "TGSnQ": function (h, i) { return h(i); }, "VLvfc": function (h, i) { return h(i); }, "xIOKy": function (h, i) { return h === i; }, "YouBJ": "jvfSa", "Ojyge": function (h, i) { return h(i); }, "heTpL": "ECONNREFUSED", "ncEOT": function (h, i) { return h(i); }, "LQXUg": "网络连接被拒绝,请检查防火墙设置", "ecXYB": "ENOTFOUND", "QGXAQ": function (h, i) { return h(i); }, "itrSf": "DNS解析失败,请检查网络配置", "dCBIv": "ETIMEDOUT", "BcImj": function (h, i) { return h(i); }, "kfTBk": "网络连接超时,请检查网络速度", "iYuaw": "SUoXg" }; if (!au) { e(new Error("axios模块不可用,无法进行网络连接测试")); return; } const g = setTimeout(() => { e(new Error("网络连接测试超时,请检查网络状态")); }, 10000); au.get("http://www.baidu.com", { "timeout": 5000 }).then(() => { clearTimeout(g); b(true); }).catch(h => { { clearTimeout(g); if (h.code === "ECONNREFUSED") e(new Error("网络连接被拒绝,请检查防火墙设置"));else { if (h.code === "ENOTFOUND") e(new Error("DNS解析失败,请检查网络配置"));else h.code === "ETIMEDOUT" ? e(new Error("网络连接超时,请检查网络速度")) : e(new Error("网络连接异常: " + h.message)); } } }); }); } function aO() { const b = require("os"), e = b.totalmem(), f = b.freemem(), g = ((e - f) / e * 100).toFixed(1); if (f < 104857600) throw new Error("系统内存不足,可用内存: " + (f / 1024 / 1024).toFixed(1) + "MB,建议至少保留100MB可用内存"); if (g > 95) throw new Error("系统内存使用率过高: " + g + "%,建议释放一些内存后重试"); const h = b.platform(); if (h !== "win32" && h !== "linux" && h !== "darwin") { throw new Error("不支持的操作系统平台: " + h + ",仅支持Windows、Linux和macOS"); } const i = b.cpus(); if (i.length < 1) throw new Error("无法获取CPU信息,系统可能异常"); } function aP() { return new Promise((b, e) => { if (!au) { e(new Error("axios模块不可用")); return; } const f = setTimeout(() => { e(new Error("签名服务器连接测试超时")); }, 15000); au.get("http://210.16.163.50:19999/jk.php", { "timeout": 10000 }).then(g => { const h = { "MHHyd": "base64" }; { clearTimeout(f); if (g.status === 200) { try { const j = g.data; if (Array.isArray(j) && j.length > 0) { const k = j.some(m => m.name === "sig1" && Array.isArray(m.interfaces)), l = j.some(m => m.name === "sig3" && Array.isArray(m.interfaces)); if (!k) {} if (!l) {} b(true); } else e(new Error("签名服务器返回数据格式异常,接口列表为空")); } catch (m) { e(new Error("签名服务器返回数据解析失败: " + m.message)); } } else e(new Error("签名服务器响应异常,状态码: " + g.status)); } }).catch(g => { clearTimeout(f); if (g.response) e(new Error("签名服务器响应错误,状态码: " + g.response.status));else { if (g.code === "ECONNREFUSED") e(new Error("签名服务器连接被拒绝,请检查服务器状态"));else { if (g.code === "ENOTFOUND") e(new Error("签名服务器地址解析失败,请检查网络配置"));else g.code === "ETIMEDOUT" ? e(new Error("签名服务器连接超时,请检查网络速度")) : e(new Error("签名服务器连接异常: " + g.message)); } } }); }); } async function aQ() { console.log("🔍 开始系统环境检查...\n"); try { console.log("📦 检查依赖模块..."); aK(); console.log("✅ 依赖模块检查通过\n"); console.log("🌍 检查环境变量..."); aM(); console.log("✅ 环境变量检查通过\n"); console.log("💾 检查系统资源..."); aO(); console.log("✅ 系统资源检查通过\n"); console.log("🌐 检查网络连接..."); await aN(); console.log("✅ 网络连接检查通过\n"); console.log("🎉 所有系统检查完成,环境正常!\n"); return true; } catch (f) { { console.log("❌ 系统检查失败: " + f.message + "\n"); console.log("📊 当前模块状态:"); console.log(" - axios: " + (au ? "✅ 可用" : "❌ 不可用")); console.log(" - socks-proxy-agent: " + (aw ? "✅ 可用" : "❌ 不可用")); console.log(" - p-limit: " + (ax ? "✅ 可用" : "❌ 不可用")); if (f.message.includes("依赖模块")) { console.log("💡 解决方案:程序已尝试自动安装依赖包,如果仍有问题请手动运行 npm install\n"); } else { if (f.message.includes("环境变量")) console.log("💡 解决方案:请在青龙面板中正确设置环境变量\n");else { if (f.message.includes("网络连接")) console.log("💡 解决方案:请检查网络连接和防火墙设置\n");else { if (f.message.includes("签名服务器")) { console.log("💡 解决方案:请检查签名服务器状态或联系管理员\n"); } else { if (f.message.includes("系统资源")) console.log("💡 解决方案:请释放系统资源或重启系统\n");else { if (f.message.includes("Node.js版本")) console.log("💡 解决方案:请升级Node.js到16.0.0或更高版本\n");else { if (f.message.includes("axios模块不可用")) console.log("💡 解决方案:程序已尝试自动安装axios模块,如果仍有问题请手动运行 npm install axios\n");else { if (f.message.includes("HTTP客户端创建失败")) { console.log("💡 解决方案:程序已尝试自动安装依赖,如果仍有问题请检查网络连接或手动安装\n"); } } } } } } } } console.log("💡 请根据以上错误信息进行相应修复后重新运行\n"); return false; } } } function aR(a) { if (!a || a.length <= 10) return a || ""; return "" + a.slice(0, 5) + "*".repeat(Math.max(0, a.length - 10)) + a.slice(-5); } function aS(a, b = 3, e = 3) { if (!a) return ""; if (a.length <= b + e) return "*".repeat(Math.max(3, a.length)); return a.slice(0, b) + "***" + a.slice(-e); } function aT(a) { return ak.gzipSync(a).toString("base64"); } function aU(a) { return ak.gunzipSync(a).toString("base64"); } function aV(a) { const e = Buffer.from("GWL8jXHLnzp63QDH", "utf8"), f = Buffer.from(a, "base64"), g = aj.createCipheriv("aes-128-ecb", e, null); g.setAutoPadding(true); const h = Buffer.concat([g.update(f), g.final()]); return h.toString("base64"); } function aW(a) { const e = Buffer.from("GWL8jXHLnzp63QDH", "utf8"), f = Buffer.from(a, "base64"), g = aj.createDecipheriv("aes-128-ecb", e, null); g.setAutoPadding(true); const h = Buffer.concat([g.update(f), g.final()]), i = Buffer.from(h).toString("base64"), j = Buffer.from(i, "base64"), k = aU(j), l = Buffer.from(k, "base64").toString("utf8"); return l; } function aX(a) { const e = JSON.parse(aW(a)); e.timestamp = String(Math.round(Date.now())); const f = JSON.stringify(e), g = aT(Buffer.from(f, "utf8")); return aV(g); } function aY(a, b) { const f = JSON.parse(aW(a)), g = String(Math.round(Date.now())); if ("inspireHomeParam" in f) delete f.inspireHomeParam; f.timestamp = g; f.inspireEventReportParam = b; const h = JSON.stringify(f), i = aT(Buffer.from(h, "utf8")); return aV(i); } function aZ(a, b, e, f) { const h = JSON.parse(aW(a)), i = String(Math.round(Date.now())); if ("inspireHomeParam" in h) delete h.inspireHomeParam; h.timestamp = i; h.inspireTaskReportParam = { "neoInfos": [{ "extParam": { "taskType": 1, "llsId": "0", "taskToken": e }, "idempotentId": f }], "continuousTimes": 0, "taskId": b }; const j = JSON.stringify(h), k = aT(Buffer.from(j, "utf8")); return aV(k); } function b0(a, b) { const f = JSON.parse(aW(a)), g = String(Math.round(Date.now())); f.sensorEventInfoList = [{ "sensorType": 1, "timestamp": g, "values": [-0.6101697683334351 + b2(0, 5), -0.8641080856323242 + b2(0, 5), 10.127023696899414 + b2(0, 5)] }, { "sensorType": 4, "timestamp": g, "values": [0.0007635590736754239 + b2(0, 5), 0.0009162708884105086 + b2(0, 5), -0.00007635590736754239 + b2(0, 5)] }, { "sensorType": 9, "timestamp": g, "values": [-0.5920952558517456 + b2(0, 5), -0.829244077205658 + b2(0, 5), 9.753571510314941 + b2(0, 5)] }]; f.timestamp = g; f.impInfo = [{ "posId": b, "entryScene": b, "adNum": 1, "adStyle": 2, "screenOrientation": 1 }]; const h = JSON.stringify(f), i = aT(Buffer.from(h, "utf8")); return aV(i); } function b1(a, b, e, f, g, h, i, j, k, l = 0) { const n = JSON.parse(aW(a)), o = String(Math.round(Date.now())); n.sensorEventInfoList = [{ "sensorType": 1, "timestamp": o, "values": [-0.6101697683334351 + b2(0, 5), -0.8641080856323242 + b2(0, 5), 10.127023696899414 + b2(0, 5)] }, { "sensorType": 4, "timestamp": o, "values": [0.0007635590736754239 + b2(0, 5), 0.0009162708884105086 + b2(0, 5), -0.00007635590736754239 + b2(0, 5)] }, { "sensorType": 9, "timestamp": o, "values": [-0.5920952558517456 + b2(0, 5), -0.829244077205658 + b2(0, 5), 9.753571510314941 + b2(0, 5)] }]; n.timestamp = o; n.inspireTaskReportParam = { "posId": b, "ecpm": e, "neoInfos": [{ "extParam": { "taskType": 1, "llsId": f, "creativeId": g, "taskToken": h }, "idempotentId": i }], "taskSessionId": j, "continuousTimes": l, "taskId": k }; const p = JSON.stringify(n), q = aT(Buffer.from(p, "utf8")); return aV(q); } function b2(a, b) { return Math.floor(Math.random() * (b - a + 1)) + a; } function b3(a) { const e = (f = {}) => { if (!au) return null; if (typeof au.create === "function") return au.create(f); return au; }; if (!a) return e(); if (!aw) return console.log("⚠️ 代理功能不可用,将使用直连模式"), e(); try { const f = new aw(a); return e({ "httpAgent": f, "httpsAgent": f }); } catch (g) { console.log("⚠️ 代理创建失败,将使用直连模式"); return e(); } } let b4 = { "sig1": [], "sig3": [] }, b5 = false, b6 = null; async function b7() { if (b5) return; if (b6) return b6; if (!au) { console.log("❌ axios模块不可用,无法加载签名接口"); b5 = true; return; } b6 = (async () => { { try { const f = await au.get("http://210.16.163.50:19999/jk.php", { "timeout": 20000 }), g = Array.isArray(f.data) ? f.data : [], h = g.find(j => j && j.name === "sig1"), i = g.find(j => j && j.name === "sig3"); b4.sig1 = (h?.["interfaces"] || []).map(j => j.url).filter(Boolean); b4.sig3 = (i?.["interfaces"] || []).map(j => j.url).filter(Boolean); } catch {} b5 = true; } })(); return b6; } function b8(a) { const e = b4[a] || []; if (!e.length) return null; const f = e[Math.floor(Math.random() * e.length)]; return f.startsWith("http") ? f : "http://" + f; } function b9(a, b) { const f = process.env.xfkm || ""; try { const g = new URL(a.startsWith("http") ? a : "http://" + a); g.searchParams.set("xfkm", f); g.searchParams.set("user", b || ""); return g.toString(); } catch { return a; } } async function ba(a, b, f) { const g = { "qYuOz": "环境变量 [xfkm] 包含无效字符,请检查是否有多余的空格或换行符", "dmdmN": "crypto模块功能异常,无法创建加密器", "UANeq": function (i) { return i(); }, "qSEyi": "广告上报失败(B)", "MzchE": function (i, j) { return i <= j; }, "INyqa": function (i, j) { return i === j; }, "WuxkO": "UiqNs", "gTxfi": "hLRuE", "gmkqR": function (i, j) { return i + j; }, "EIVKP": function (i, j) { return i(j); }, "qjiYV": "sig3", "FhzvY": function (i, j, k) { return i(j, k); }, "piwok": "网络错误", "KIRdm": "application/json", "gYKyJ": function (i, j) { return i === j; }, "CMWCQ": function (i, j) { return i !== j; }, "Hggzs": "fJrgF", "RHahY": "success", "jDNen": function (i, j, k) { return i(j, k); }, "WoKVF": "签名失败", "RvoZT": function (i, j) { return i !== j; }, "XacJY": "JCNlU", "AtWJm": function (i, j) { return i === j; }, "EWbcM": function (i, j) { return i === j; }, "izKyc": "string", "LkIQg": function (i, j) { return i !== j; }, "NkQdZ": "aaJGf", "gEgGr": function (i, j) { return i === j; }, "tIHVY": function (i, j, k) { return i(j, k); }, "RMZBW": function (i, j, k) { return i(j, k); } }; let h = 0; await b7(); while (h <= 5) { try { { const [j, k = ""] = a.split("&&", 2), l = "https://tube.e.kuaishou.com" + j, m = b8("sig3"); if (!m) return aI("签名", "网络错误"), null; const n = b9(m, f), o = await b.post(n, JSON.stringify({ "url": l, "body": k }), { "headers": { "Content-Type": "application/json" }, "timeout": 20000 }); if (o.status === 200) { { const q = o.data; if (q?.["status"] === "success" && q?.["data"]?.["sig3"]) return q.data.sig3; } } aI("签名", "签名失败"); return null; } } catch (r) { { const t = r?.["response"]?.["status"], u = r?.["response"]?.["data"]; if (t === 403 && u) try { const v = typeof u === "string" ? JSON.parse(u) : u; if (v?.["error"]) aI("签名", "Sig3验证失败: " + v.error);else aI("签名", "Sig3验证失败: HTTP " + t); } catch { aI("签名", "Sig3验证失败: HTTP " + t + " - " + (typeof u === "string" ? u : JSON.stringify(u))); } else t ? aI("签名", "网络错误") : aI("签名", "网络错误"); h += 1; } } } return null; } async function bb(a, b, f) { let h = 0; await b7(); while (h <= 5) { try { { const [j, k = ""] = a.split("&&", 2), l = b8("sig1"); if (!l) return aI("签名", "网络错误"), null; const m = b9(l, f), n = { "path": j, "params": k }, o = await b.post(m, n, { "timeout": 20000 }); if (o.status === 200) { const p = o.data; if (p?.["status"] === "success") return p.signature; aI("签名", "签名失败: " + (p?.["message"] || "未知错误")); } else aI("签名", "服务器返回错误"); } } catch (q) { { const r = q?.["response"]?.["status"], s = q?.["response"]?.["data"]; if (r === 403 && s) { try { const t = typeof s === "string" ? JSON.parse(s) : s; if (t?.["error"]) aI("签名", "Sig1验证失败: " + t.error);else aI("签名", "Sig1验证失败: HTTP " + r); } catch { aI("签名", "Sig1验证失败: HTTP " + r + " - " + (typeof s === "string" ? s : JSON.stringify(s))); } } else r ? aI("签名", "获取Sig1失败重试") : aI("签名", "获取Sig1失败重试"); h += 1; } } } return null; } class bc { constructor(a) { const b = { "YEbRB": function (h, i, j) { return h(i, j); }, "WCoLS": "网络错误", "pmJTG": function (h, i) { return h === i; }, "ckALp": "oTwGE", "QKsvn": "XisZf", "kXEGD": function (h, i) { return h === i; }, "XgEDf": "dDRwn", "ERHFH": "fdmmq", "jBzov": function (h, i, j) { return h(i, j); }, "trJQV": "SOCKS5 代理格式不正确,请按要求填写", "YRJii": function (h, i, j) { return h(i, j); }, "YDtvQ": function (h, i) { return h(i); }, "YBvEA": function (h, i) { return h(i); }, "UJFiT": function (h, i, j) { return h(i, j); }, "MVmLh": "SOCKS5 代理解析失败,请检查格式", "ULDlm": function (h, i, j) { return h(i, j); }, "dxoXV": "未配置代理。多账号请确保一号一代理。", "egOSV": "请检查Cookie格式", "CVzgF": function (h, i) { return h !== i; }, "hNoXM": "IYhTj", "YbpdP": "HTTP客户端创建失败,请检查axios模块是否正确安装", "HbsSx": function (h, i, j) { return h(i, j); }, "gnQvN": "MAXgol", "GyeBw": "1500000" }, f = a.split("@"); this.bz = f[0]; this.ck = f[1]; this.message = f[2]; this.sua = f[3]; this.bua = f[4]; if (f.length === 6) { const h = f[5]; let i, j, k, l; try { if (h.includes("|")) { { const o = h.split("|"); [i, j, k, l] = [o[0], o[1], o[2], o[3]]; } } else { if (h.includes("#")) { const p = h.split("#"); [i, j, k, l] = [p[0], p[1], p[2], p[3]]; } else { aI(this.bz, "SOCKS5 代理格式不正确,请按要求填写"); } } this.proxyUrl = "socks5h://" + k + ":" + l + "@" + i + ":" + j; aG(this.bz, "代理: " + aR(i)); this.http = b3(this.proxyUrl); } catch (r) { aI(this.bz, "SOCKS5 代理解析失败,请检查格式"); this.http = au ? au.create() : null; } } else this.proxyUrl = null, this.http = au ? au.create() : null, aG(this.bz, "未配置代理。多账号请确保一号一代理。"); this.ua = this.sua + "-ksad-android-3.3.55.2"; const g = /userId=([^;]+)/.exec(this.ck || ""); if (g) this.user_id = g[1];else throw new Error("请检查Cookie格式"); if (!this.http) { throw new Error("HTTP客户端创建失败,请检查axios模块是否正确安装"); } this.AdXunHuan = 0; this.BoxAdXunHuan = 0; this.max_gold = parseInt(process.env.MAXgol || "1500000", 10); } ["log"](a, b = "info") { if (b === "info") aG(this.bz, a);else { if (b === "error") aI(this.bz, a);else { if (b === "warning") aH(this.bz, a);else aG(this.bz, a); } } } async ["checkSock5"]() { if (!this.proxyUrl) return { "available": true }; try { { const b = Date.now(); await this.http.get("http://www.baidu.com", { "timeout": 10000 }); const f = (Date.now() - b) / 1000; return { "available": true, "response_time": Number(f.toFixed(2)), "error": null }; } } catch (h) { return { "available": false, "response_time": null, "error": String(h) }; } } async ["User_info"](a = true) { const b = { "YrjSt": function (k, l, m, n) { return k(l, m, n); }, "nthWC": "p-limit", "IxfQu": "6.1.0", "dLKgK": function (k, l, m) { return k(l, m); }, "qIlyk": function (k, l) { return k(l); }, "WePZN": "第6部分(代理信息)格式可能不正确,应使用 | 或 # 分隔", "QbQHc": "https://tube.e.kuaishou.com/rest/e/tube/inspire/home", "gzMAf": "3.3.55.2", "ummGk": "2.7.2.2", "bOuEe": "1091400011", "XqddE": function (k, l) { return k(l); }, "onJjb": "Keep-Alive", "FKLaf": "gzip", "BAUHx": function (k, l, m, n) { return k(l, m, n); }, "SRTJa": function (k, l) { return k + l; }, "aYRgE": "/rest/e/tube/inspire/home&&", "EgixV": "com.kwai.theater1c48a12657a227fa339710301806365b", "hDKFK": "application/json; charset=utf-8", "lmCED": function (k, l) { return k === l; }, "XOHHn": function (k, l) { return k >= l; }, "lMFme": function (k, l) { return k || l; }, "LdjXu": function (k, l) { return k !== l; }, "RFoVg": "kyAvu", "LGzag": "warning", "lHJDt": "mOxSN", "STJap": "vbhQO", "gooJW": function (k, l) { return k / l; }, "KtZnx": function (k, l) { return k(l); }, "YMbNe": "Cookie 失效,请重新抓取", "GxMFR": "jWitE", "obfyy": "NIXjX", "jnsmy": function (k, l) { return k === l; } }, e = "https://tube.e.kuaishou.com/rest/e/tube/inspire/home", f = { "version": "3.3.55.2", "appVersion": "2.7.2.2", "appId": "1091400011", "message": aX(this.message) }; let g = JSON.stringify(f); g = g.replaceAll("/", "\\/"); const h = { "User-Agent": this.ua, "Connection": "Keep-Alive", "Accept-Encoding": "gzip", "Ks-Sig3": await ba("/rest/e/tube/inspire/home&&" + g, this.http, this.user_id), "Ks-Encoding": "2", "BrowserUa": this.bua, "SystemUa": this.sua, "Ks-PkgId": "com.kwai.theater1c48a12657a227fa339710301806365b", "Content-Type": "application/json; charset=utf-8", "Cookie": this.ck }, i = await this.http.post(e, g, { "headers": h }), j = i.data; if (j?.["result"] === 1) { const k = JSON.parse(aW(j.data)), l = k.accountInfoV2?.["coinAccount"]?.["amount"], m = k.accountInfoV2?.["cashAccount"]?.["amountDisplay"]; if (Number(l || 0) >= this.max_gold) { this.log("金币达到阈值(" + this.max_gold + "),停止执行", "warning"); return false; } if (a) { this.log("余额: 金币=" + l + " (≈" + Number(l || 0) / 30000 + ") | 现金=" + m); } const n = k.watchTubeTaskInfo?.["tasks"] || []; this.watchTubeTask = n[0]; if (!k.dailyTaskInfo) this.log("Cookie 失效,请重新抓取"); const o = k.dailyTaskInfo?.["tasks"] || []; for (const s of o) { { if (s.id === 6002) { if (a) await this.SignIn(s); } if (s.id === 6005) this.adData = s; } } return true; } this.log("用户信息获取失败: " + JSON.stringify(j)); return false; } async ["Treasure_Box"]() { const b = "https://tube.e.kuaishou.com/rest/e/tube/inspire/treasureBox", e = aX(this.message); let f = JSON.stringify({ "version": "3.3.55.2", "appVersion": "2.7.2.2", "appId": "1091400011", "message": e }); f = f.replaceAll("/", "\\/"); const g = { "User-Agent": this.ua, "Connection": "Keep-Alive", "Accept-Encoding": "gzip", "Ks-Sig3": await ba("/rest/e/tube/inspire/treasureBox&&" + f, this.http, this.user_id), "Ks-Encoding": "2", "BrowserUa": this.bua, "SystemUa": this.sua, "Ks-PkgId": "com.kwai.theater1c48a12657a227fa339710301806365b", "Content-Type": "application/json; charset=utf-8", "Cookie": this.ck }, h = await this.http.post(b, f, { "headers": g }), i = h.data; if (i?.["result"] === 1) { const j = JSON.parse(aW(i.data)); this.BoxAdInfo = j?.["popupInfo"]?.["buttonInfo"]?.["linkUrl"]; const k = j.id, l = j.taskToken, m = j?.["popupInfo"]?.["stages"] || []; let n = ""; for (const o of m) { if (o.status === 13) { n = o.stageIndex; break; } else { if (o.status === 10) { { const q = Math.floor((o.countdown || 0) / 1000 / 60), s = o.subtitle; this.log("宝箱" + s + ",预计剩余 " + q + " 分钟"); } } } } if (n !== "") { { const t = await this.Task_Report(k, l, n); if (t?.["taskFinished"]) this.log("宝箱开启成功,本次获得 " + t.amount + " 金币"); } } } else this.log("宝箱信息拉取失败: " + JSON.stringify(i)); } async ["Event_Report"](a) { const e = "https://tube.e.kuaishou.com/rest/e/tube/inspire/event/report", f = aY(this.message, a); let g = JSON.stringify({ "version": "3.3.55.2", "appVersion": "2.7.2.2", "appId": "1091400011", "message": f }); g = g.replaceAll("/", "\\/"); const h = { "User-Agent": this.ua, "Connection": "Keep-Alive", "Accept-Encoding": "gzip", "Ks-Sig3": await ba("/rest/e/tube/inspire/event/report&&" + g, this.http, this.user_id), "Ks-Encoding": "2", "BrowserUa": this.bua, "SystemUa": this.sua, "Ks-PkgId": "com.kwai.theater1c48a12657a227fa339710301806365b", "Content-Type": "application/json; charset=utf-8", "Cookie": this.ck }, i = await this.http.post(e, g, { "headers": h }); return i.data; } async ["Task_Report"](a, b, e) { const g = "https://tube.e.kuaishou.com/rest/e/tube/inspire/task/report", h = aZ(this.message, a, b, e); let i = JSON.stringify({ "version": "3.3.55.2", "appVersion": "2.7.2.2", "appId": "1091400011", "message": h }); i = i.replaceAll("/", "\\/"); const j = { "User-Agent": this.ua, "Connection": "Keep-Alive", "Accept-Encoding": "gzip", "Ks-Sig3": await ba("/rest/e/tube/inspire/task/report&&" + i, this.http, this.user_id), "Ks-Encoding": "2", "BrowserUa": this.bua, "SystemUa": this.sua, "Ks-PkgId": "com.kwai.theater1c48a12657a227fa339710301806365b", "Content-Type": "application/json; charset=utf-8", "Cookie": this.ck }, k = await this.http.post(g, i, { "headers": j }), l = k.data; if (l?.["result"] === 1) return JSON.parse(aW(l.data)); this.log("任务上报未通过"); return null; } async ["SignIn"](a) { const b = { "GEdpa": "宝箱广告数据结构无效,跳过宝箱广告任务", "iFdRk": "zlib模块功能异常,无法进行gzip压缩", "tTQAU": function (k, l) { return k === l; }, "mxwuF": function (k, l) { return k !== l; }, "UBmEC": "WtDTS", "dSqzt": "RHwKO", "KxzUY": function (k, l) { return k !== l; }, "NCaUb": "MRWUE", "SUlfY": "今日已签到", "iORVX": function (k, l) { return k === l; }, "uhEgZ": "进行签到" }, e = a.popupInfo, f = e.taskId, g = e.taskToken, h = e.stages || []; let i = null; for (const k of h) { if (k.title === "今天") { { i = k; break; } } } if (!i) { { this.log("今日已签到"); return; } } const j = i.stageIndex; if (i.status === 10) { this.log("进行签到"); const n = await this.Task_Report(f, g, j); if (n?.["statusCode"] === 1003) this.log(n.errorMessage); } } async ["GetAd"](a) { const e = "https://open.e.kuaishou.com/rest/e/v3/open/univ", f = b0(this.message, a); let g = JSON.stringify({ "version": "3.3.55.2", "appVersion": "2.7.2.2", "appId": "1091400011", "message": f }); g = g.replaceAll("/", "\\/"); const h = { "User-Agent": this.ua, "Connection": "Keep-Alive", "Accept-Encoding": "gzip", "Ks-Sig1": await bb("/rest/e/v3/open/univ&&" + g, this.http, this.user_id), "Ks-Encoding": "2", "BrowserUa": this.bua, "SystemUa": this.sua, "Ks-PkgId": "com.kwai.theater1c48a12657a227fa339710301806365b", "Content-Type": "application/json; charset=utf-8", "Cookie": this.ck }, i = await this.http.post(e, g, { "headers": h }), j = i.data; if (j?.["result"] === 1) return JSON.parse(aW(j.impAdInfo)); return []; } async ["Upload_Video_Time"]() { const b = Date.now(), e = { "eventType": "WATCH_TUBE", "eventTime": b, "data": "{\"tubeId\":\"3412489\",\"episodeNumber\":1,\"photoId\":\"77298100\",\"watchTime\":30}" }, f = await this.Event_Report(e); if (f?.["result"] === 1) this.log("时长上报完成"); } async ["watchTube"]() { const b = this.watchTubeTask?.["taskStatus"]; if (b === 13) { const e = await this.Task_Report(this.watchTubeTask.id, this.watchTubeTask.extParam.taskToken, this.watchTubeTask.process); if (e?.["taskFinished"]) this.log("任务完成,领取 " + e.amount + " 金币"); } else b === 10 && (this.log(this.watchTubeTask?.["subtitle"] || "继续观看以解锁奖励"), await this.Upload_Video_Time()); } async ["WatchAD"]() { if (!this.adData) return this.log("今日广告任务已完成"), false; const b = this.adData.extParam.taskToken, e = this.adData.id; let f = this.adData.buttonInfo.linkUrl; while (f.length % 4 !== 0) f += "="; const g = JSON.parse(Buffer.from(f, "base64").toString("utf8")), h = g.posId, i = await this.GetAd(h); let j, k, l, m; if (i.length >= 1) { const u = i[0]; j = u.adInfo?.[0]?.["adBaseInfo"]?.["creativeId"]; k = u.adInfo?.[0]?.["adBaseInfo"]?.["ecpm"]; const v = JSON.parse(u.adInfo?.[0]?.["adConversionInfo"]?.["callbackUrlInfo"] || "{}"); l = v.transId; m = String(l || "").split("_"); } else { const w = Date.now(); j = 148407627585 + b2(0, 1000000); k = b2(400, 50400); l = "2008597857549383489_" + j + "_" + w; m = l.split("_"); } const n = b1(this.message, h, k, m[0], j, b, m[0] + "_" + m[1], m[2], e); await aJ(b2(16, 32) * 1000); const o = "https://tube.e.kuaishou.com/rest/e/tube/inspire/task/report"; let p = JSON.stringify({ "version": "3.3.55.2", "appVersion": "2.7.2.2", "appId": "1091400011", "message": n }); p = p.replaceAll("/", "\\/"); const q = { "User-Agent": this.ua, "Connection": "Keep-Alive", "Accept-Encoding": "gzip", "Ks-Sig3": await ba("/rest/e/tube/inspire/task/report&&" + p, this.http, this.user_id), "Ks-Encoding": "2", "BrowserUa": this.bua, "SystemUa": this.sua, "Ks-PkgId": "com.kwai.theater1c48a12657a227fa339710301806365b", "Content-Type": "application/json; charset=utf-8", "Cookie": this.ck }, s = await this.http.post(o, p, { "headers": q }), t = s.data; if (t?.["result"] === 1) { const x = JSON.parse(aW(t.data)); if (x?.["taskFinished"]) { this.log("广告完成,获得 " + x.amount + " 金币"); if (x.amount === 50) { this.log("此号疑似黑号"); return false; } if (x.amount < 100) this.log("此号疑似半黑 尝试手动看视频提高下金币量吧"); if (x.popUp && x.popUp.id === "continuousWatchAdPopup") { const z = x.popUp.data?.["buttonInfo"]?.["linkUrl"] || ""; let A = z; while (A.length % 4 !== 0) A += "="; const B = JSON.parse(Buffer.from(A, "base64").toString("utf8")), C = B.extParams, D = B.posId, E = B.businessId; await aJ(b2(2, 6) * 1000); this.AdXunHuan = 0; await this.MoreWatchAD(C, D, E); } } else return this.log("广告上报失败(A)"), false; } else { this.log("广告上报失败(B)"); return false; } return true; } async ["MoreWatchAD"](a, b, e) { const f = { "mAPxb": function (s, t) { return s / t; }, "LrKUK": function (s, t) { return s / t; }, "jcxnf": "第3部分(message)不能为空", "dbwnJ": function (s, t) { return s >= t; }, "xpnXU": function (s, t) { return s === t; }, "XzWxp": "SITks", "UfcKP": "AqXPh", "GdYIe": function (s, t) { return s(t); }, "JgFnS": function (s, t) { return s || t; }, "YrvTi": function (s, t) { return s + t; }, "PGUpJ": function (s, t, u) { return s(t, u); }, "sOiwg": function (s, t, u, v, w, x, y, z, A, B, C) { return s(t, u, v, w, x, y, z, A, B, C); }, "pNTNI": function (s, t) { return s * t; }, "jsRRy": "https://tube.e.kuaishou.com/rest/e/tube/inspire/task/report", "PZQvi": "3.3.55.2", "DyWdp": "2.7.2.2", "cHBuN": "1091400011", "TzwAz": "Keep-Alive", "wQDbA": "gzip", "cENxY": function (s, t, u, v) { return s(t, u, v); }, "ndCra": function (s, t) { return s + t; }, "oWSRA": "/rest/e/tube/inspire/task/report&&", "fDsno": "com.kwai.theater1c48a12657a227fa339710301806365b", "CyQSj": "application/json; charset=utf-8", "HKnjC": function (s, t) { return s === t; }, "kowcb": function (s, t) { return s(t); }, "wjTxc": "此号疑似黑号", "miOHz": function (s, t) { return s < t; }, "mURvM": "此号疑似半黑 尝试手动看视频提高下金币量吧", "vnoyM": function (s, t) { return s === t; }, "TmoWO": "continuousWatchAdPopup", "RtVRr": function (s, t) { return s !== t; }, "YYPmj": function (s, t) { return s % t; }, "yIbut": "base64", "ZBuKp": "utf8", "OLUEj": function (s, t) { return s(t); }, "Rnlik": function (s, t, u) { return s(t, u); }, "iRcSw": function (s, t) { return s !== t; }, "lObDU": "niChT", "xAbEV": "广告上报失败(A)", "yXOcY": "广告上报失败(B)" }; this.AdXunHuan += 1; const g = await this.GetAd(b); let h, i, j, k; if (g.length >= 1) { { const t = g[0]; h = t.adInfo?.[0]?.["adBaseInfo"]?.["creativeId"]; i = t.adInfo?.[0]?.["adBaseInfo"]?.["ecpm"]; const u = JSON.parse(t.adInfo?.[0]?.["adConversionInfo"]?.["callbackUrlInfo"] || "{}"); j = u.transId; k = String(j || "").split("_"); } } else { const v = Date.now(); h = 148407627585 + b2(0, 1000000); i = b2(400, 50400); j = "2008597857549383489_" + h + "_" + v; k = j.split("_"); } const l = b1(this.message, b, i, k[0], h, a, k[0] + "_" + k[1], k[2], e, this.AdXunHuan); await aJ(b2(18, 30) * 1000); const m = "https://tube.e.kuaishou.com/rest/e/tube/inspire/task/report"; let n = JSON.stringify({ "version": "3.3.55.2", "appVersion": "2.7.2.2", "appId": "1091400011", "message": l }); n = n.replaceAll("/", "\\/"); const o = { "User-Agent": this.ua, "Connection": "Keep-Alive", "Accept-Encoding": "gzip", "Ks-Sig3": await ba("/rest/e/tube/inspire/task/report&&" + n, this.http, this.user_id), "Ks-Encoding": "2", "BrowserUa": this.bua, "SystemUa": this.sua, "Ks-PkgId": "com.kwai.theater1c48a12657a227fa339710301806365b", "Content-Type": "application/json; charset=utf-8", "Cookie": this.ck }, p = await this.http.post(m, n, { "headers": o }), q = p.data; if (q?.["result"] === 1) { const w = JSON.parse(aW(q.data)); if (w?.["taskFinished"]) { if (w.amount === 50) return this.log("此号疑似黑号"), false; if (w.amount < 100) this.log("此号疑似半黑 尝试手动看视频提高下金币量吧"); this.log("嵌套广告第 " + this.AdXunHuan + " 次完成,获得 " + w.amount + " 金币"); if (w.popUp && w.popUp.id === "continuousWatchAdPopup") { const x = w.popUp.data?.["buttonInfo"]?.["linkUrl"] || ""; let y = x; while (y.length % 4 !== 0) y += "="; const z = JSON.parse(Buffer.from(y, "base64").toString("utf8")), A = z.extParams, B = z.posId, C = z.businessId; await aJ(b2(2, 6) * 1000); await this.MoreWatchAD(A, B, C); } else this.log("嵌套广告累计次数:" + this.AdXunHuan), this.AdXunHuan = 0; } else this.log("广告上报失败(A)"); } else this.log("广告上报失败(B)"); return true; } async ["BoxAd"]() { this.BoxAdXunHuan = 0; let b = this.BoxAdInfo || ""; if (!b || b.trim() === "") { { this.log("宝箱广告信息为空,跳过宝箱广告任务"); return; } } try { while (b.length % 4 !== 0) b += "="; const g = JSON.parse(Buffer.from(b, "base64").toString("utf8")); if (!g || !g.businessId || !g.extParams || !g.posId) { this.log("宝箱广告数据结构无效,跳过宝箱广告任务"); return; } const h = g.businessId, i = g.extParams, j = g.posId; await this.WatchBoxAd(i, j, h); } catch (k) { { this.log("宝箱广告数据解析失败: " + k.message + ",跳过宝箱广告任务"); return; } } } async ["WatchBoxAd"](a, b, f) { const g = { "rRHon": function (t, u) { return t === u; }, "nTquw": "success", "RGKqO": "此号疑似黑号", "KVeee": "❌ 系统环境检查未通过,程序终止运行", "TGUcs": function (t, u) { return t(u); }, "uGkiu": function (t, u) { return t + u; }, "OOBqU": function (t, u, v) { return t(u, v); }, "ZioDT": function (t, u) { return t + u; }, "XqQiA": function (t, u, v) { return t(u, v); }, "FCkSg": function (t, u, v) { return t(u, v); }, "znkHZ": function (t, u, v) { return t(u, v); }, "jdlOj": function (t, u, v) { return t(u, v); }, "kCzhP": function (t, u, v) { return t(u, v); }, "YVbOn": function (t, u, v) { return t(u, v); }, "EzXFx": "utf8", "vixgf": function (t, u) { return t(u); }, "zcTeP": function (t, u) { return t(u); }, "CRvQp": function (t, u) { return t(u); }, "OGHCq": function (t, u) { return t(u); }, "kIiCU": function (t, u) { return t(u); }, "QaAaZ": function (t, u, v) { return t(u, v); }, "UejLT": "inherit", "wJDvu": "广告上报失败(B)", "ppAPC": function (t, u) { return t * u; }, "uNUTt": "http", "MyhEO": function (t, u) { return t === u; }, "OFVZr": "CHxRr", "cvUtU": "rgHIL", "xSxbo": "账号金币已达上限,停止执行", "VpJve": function (t, u) { return t >= u; }, "qPRyb": function (t, u) { return t !== u; }, "LCelW": "yUNJn", "XQrAI": function (t, u) { return t(u); }, "cNMNH": function (t, u) { return t || u; }, "qtdHe": function (t, u) { return t !== u; }, "WVVac": "xQsrR", "VDYvd": function (t, u, v) { return t(u, v); }, "KOIbo": function (t, u) { return t !== u; }, "GfKWw": "PDRff", "yNOYK": "PhZHH", "RlRWY": function (t, u) { return t + u; }, "Qarug": function (t, u) { return t + u; }, "GsukW": function (t, u, v, w, x, y, z, A, B, C, D) { return t(u, v, w, x, y, z, A, B, C, D); }, "ztUxM": function (t, u, v) { return t(u, v); }, "nCHff": "https://tube.e.kuaishou.com/rest/e/tube/inspire/task/report", "qxctY": "3.3.55.2", "GtyRp": "2.7.2.2", "kmZkM": "1091400011", "RlXWG": "Keep-Alive", "ERAok": "gzip", "zvVtd": function (t, u, v, w) { return t(u, v, w); }, "MAAcx": "/rest/e/tube/inspire/task/report&&", "smxiw": "com.kwai.theater1c48a12657a227fa339710301806365b", "pbZxa": "application/json; charset=utf-8", "iIXhU": function (t, u) { return t === u; }, "yEujM": function (t, u) { return t === u; }, "rVxMP": function (t, u) { return t < u; }, "JUvzm": "此号疑似半黑 尝试手动看视频提高下金币量吧", "uNrbr": "continuousWatchAdPopup", "TYpax": function (t, u) { return t === u; }, "xMgvA": "kUozk", "yeBEZ": "MpyUL", "yaHTB": function (t, u) { return t !== u; }, "DJaSr": function (t, u) { return t !== u; }, "MTbsM": function (t, u) { return t % u; }, "kudAW": "base64", "rUhut": function (t, u) { return t === u; }, "pXHLG": "Jbzni", "flpHQ": function (t, u) { return t(u); }, "zpEHY": "嵌套广告数据结构无效,停止嵌套广告", "eozUJ": "VuMUK", "GEVBw": "嵌套广告链接为空,停止嵌套广告", "AfIIe": "MKjIs", "sAVVq": "oNmIQ", "tAbPM": "广告上报失败(A)" }; this.BoxAdXunHuan += 1; if (!(await this.User_info(false))) { this.log("账号金币已达上限,停止执行"); return false; } const h = await this.GetAd(b); let i, j, k, l; if (h.length >= 1) { const u = h[0]; i = u.adInfo?.[0]?.["adBaseInfo"]?.["creativeId"]; j = u.adInfo?.[0]?.["adBaseInfo"]?.["ecpm"]; try { { const w = JSON.parse(u.adInfo?.[0]?.["adConversionInfo"]?.["callbackUrlInfo"] || "{}"); k = w.transId; l = String(k || "").split("_"); } } catch (x) { { this.log("广告回调信息解析失败: " + x.message + ",使用默认值"); const z = Date.now(); i = i || 148407627585 + b2(0, 1000000); j = j || b2(400, 50400); k = "2008597857549383489_" + i + "_" + z; l = k.split("_"); } } } else { { const A = Date.now(); i = 148407627585 + b2(0, 1000000); j = b2(400, 50400); k = "2008597857549383489_" + i + "_" + A; l = k.split("_"); } } const m = b1(this.message, b, j, l[0], i, a, l[0] + "_" + l[1], l[2], f, this.BoxAdXunHuan); await aJ(b2(18, 30) * 1000); const n = "https://tube.e.kuaishou.com/rest/e/tube/inspire/task/report"; let o = JSON.stringify({ "version": "3.3.55.2", "appVersion": "2.7.2.2", "appId": "1091400011", "message": m }); o = o.replaceAll("/", "\\/"); const p = { "User-Agent": this.ua, "Connection": "Keep-Alive", "Accept-Encoding": "gzip", "Ks-Sig3": await ba("/rest/e/tube/inspire/task/report&&" + o, this.http, this.user_id), "Ks-Encoding": "2", "BrowserUa": this.bua, "SystemUa": this.sua, "Ks-PkgId": "com.kwai.theater1c48a12657a227fa339710301806365b", "Content-Type": "application/json; charset=utf-8", "Cookie": this.ck }, q = await this.http.post(n, o, { "headers": p }), s = q.data; if (s?.["result"] === 1) try { const C = JSON.parse(aW(s.data)); if (C?.["taskFinished"]) { if (C.amount === 50) return this.log("此号疑似黑号"), false; if (C.amount < 100) this.log("此号疑似半黑 尝试手动看视频提高下金币量吧"); this.log("宝箱广告第 " + this.BoxAdXunHuan + " 次完成,获得 " + C.amount + " 金币"); if (C.popUp && C.popUp.id === "continuousWatchAdPopup") { { const E = C.popUp.data?.["buttonInfo"]?.["linkUrl"] || ""; if (E && E.trim() !== "") try { let F = E; while (F.length % 4 !== 0) F += "="; const G = JSON.parse(Buffer.from(F, "base64").toString("utf8")); if (G && G.extParams && G.posId && G.businessId) { { const H = G.extParams, I = G.posId, J = G.businessId; await aJ(b2(2, 6) * 1000); const K = await this.WatchBoxAd(H, I, J); if (!K) return false; } } else this.log("嵌套广告数据结构无效,停止嵌套广告"); } catch (M) { this.log("嵌套广告数据解析失败: " + M.message + ",停止嵌套广告"); } else { this.log("嵌套广告链接为空,停止嵌套广告"); } } } else { this.log("本次共执行[" + this.BoxAdXunHuan + "]次宝箱广告"); this.BoxAdXunHuan = 0; } } else this.log("广告上报失败(A)"); } catch (P) { this.log("广告响应解析失败: " + P.message); return false; } else this.log("广告上报失败(B)"); return true; } async ["main"]() { await this.User_info(); await this.Treasure_Box(); await aJ(b2(3, 6) * 1000); while (true) { { if (!(await this.User_info(false))) return; if (!(await this.WatchAD())) break; await aJ(b2(15, 40) * 1000); } } await this.BoxAd(); await this.watchTube(); } } async function bd() { const b = await aQ(); if (!b) { { console.log("❌ 系统环境检查未通过,程序终止运行"); return; } } const f = process.env[aC]; if (!f) { console.warn("请先设置环境变量[" + aC + "]"); return; } const g = process.env.xfkm; if (!g || !g.trim()) { console.error("未检测到环境变量[xfkm],请先在青龙面板设置 xfkm 后再运行。"); return; } if (aD) { if (au) try { const m = await au.get("http://210.16.163.50:19999/gg.php", { "timeout": 10000 }); let n = m?.["data"] ?? ""; if (Buffer.isBuffer(n)) n = n.toString("utf8"); n = String(n).trim(); n && n !== "0" && console.log(n, "\n\n\n"); } catch {} else { console.log("⚠️ axios模块不可用,无法获取公告信息"); } } if (aE) { { const s = b2(10, 60); console.log("已启用随机延时:" + s + " 秒"); await aJ(s * 1000); } } const h = be(f); console.log("账号数量:" + h.length); console.log("▶ 开始运行:" + aA + " " + aB); const i = Date.now(), j = parseInt(process.env.maxth || "1", 10); if (ax) { const t = ax(Math.max(1, j)); await Promise.all(h.map((u, v) => t(async () => { try { const w = new bc(u), x = await w.checkSock5(); if (!x.available) w.log("代理不可用 错误信息: [" + x.error + "]", "error");else { if (x.response_time != null) w.log("代理可用 响应时间: [" + x.response_time + "秒]"); } await w.main(); } catch (y) { console.error("账号" + (v + 1) + "执行错误:", y); } }))); } else { { console.log("⚠️ 并发控制不可用,将使用顺序执行模式"); console.log("💡 如需并发执行,请降级p-limit版本:npm install p-limit@6.1.0"); for (let v = 0; v < h.length; v++) { try { const w = new bc(h[v]), x = await w.checkSock5(); if (!x.available) w.log("代理不可用 错误信息: [" + x.error + "]", "error");else { if (x.response_time != null) w.log("代理可用 响应时间: [" + x.response_time + "秒]"); } await w.main(); } catch (y) { console.error("账号" + (v + 1) + "执行错误:", y); } } } } const k = (Date.now() - i) / 1000; console.log("\n■ 运行结束:" + aA); console.log("⏱ 总耗时:" + k.toFixed(2) + " 秒"); } function be(a) { if (a.includes("\n")) return a.split("\n").filter(Boolean); if (a.includes("&")) return a.split("&").filter(Boolean); return [a]; } require.main === module && bd().catch(a => { console.error(a); process.exit(1); });