//Tue Nov 25 2025 12:43:09 GMT+0000 (Coordinated Universal Time) //Base:https://github.com/echo094/decode-js //Modify:https://github.com/smallfawn/decode_action const querystring = require("querystring"), axios = require("axios"), fs = require("fs"), path = require("path"), { "SocksProxyAgent": SocksProxyAgent } = require("socks-proxy-agent"); function detectLiveAd(adData = {}) { try { let _0xdf43b = adData.adExtInfo || adData.extInfo || adData?.ad?.adExtInfo || "{}"; if (typeof _0xdf43b === "gnirts".split("").reverse().join("")) { try { _0xdf43b = JSON.parse(_0xdf43b); } catch (error) { _0xdf43b = {}; } } const _0xb68g = ["播直".split("").reverse().join(""), "live", "主播", "EVIL".split("").reverse().join(""), "zb", "BZ".split("").reverse().join("")], _0xb6eced = String(adData.creativeId || adData?.ad?.creativeId || "").toLowerCase(), _0x70c6d = String(_0xdf43b.description || "").toLowerCase(), _0x90755c = String(_0xdf43b.title || adData.title || "").toLowerCase(), _0x008a = String(_0xdf43b.caption || adData.caption || "").toLowerCase(), _0x659c = [_0xb6eced, _0x70c6d, _0x90755c, _0x008a, JSON.stringify(_0xdf43b || {})]; for (const _0x27ad of _0x659c) { for (const _0xb8d of _0xb68g) { if (_0x27ad && _0x27ad.includes(_0xb8d.toLowerCase())) { return true; } } } var _0xc94a; const _0x0f5e = adData.materialTime || adData?.ad?.materialTime || 0; _0xc94a = 3; if (_0x0f5e > 60000) return true; if (_0xb6eced.startsWith("live_") || _0xb6eced.startsWith("zb_") || _0xb6eced.startsWith("live-") || _0xb6eced.startsWith("zb-")) return true; return false; } catch (error) { return false; } } function readIntConfig(configName, defaultValue) { var _0x3cf9f = 15; const _0x8cbb = parseInt(process.env[configName], 10); _0x3cf9f = 9; return isNaN(_0x8cbb) ? defaultValue : _0x8cbb; } function readStringConfig(configName, defaultValue) { const _0x4g_0x531 = process.env[configName]; return _0x4g_0x531 ? _0x4g_0x531.trim() : defaultValue; } function readRangeConfig(configName, minDefault, maxDefault) { const _0x3c5gd = process.env[configName]; if (!_0x3c5gd) return [minDefault, maxDefault]; const _0x633d = _0x3c5gd.includes("-") ? "-" : ","; const _0xa2g9e = _0x3c5gd.split(_0x633d).map(item => item.trim()).filter(Boolean); if (_0xa2g9e.length === 2) { var _0x_0x4a2 = 4; const _0x5476c = parseInt(_0xa2g9e[0], 10); _0x_0x4a2 = 4; const _0x95gcf = parseInt(_0xa2g9e[1], 10); if (!isNaN(_0x5476c) && !isNaN(_0x95gcf) && _0x5476c <= _0x95gcf) { return [_0x5476c, _0x95gcf]; } } return [minDefault, maxDefault]; } const COIN_LIMIT = readIntConfig("KSCOIN_LIMIT", 500000), LOW_REWARD_THRESHOLD = readIntConfig("KSLOW_REWARD_THRESHOLD", 10), LOW_REWARD_LIMIT = readIntConfig("TIMIL_DRAWER_WOLSK".split("").reverse().join(""), 3), LOOK_COUNT = readIntConfig("KSLOOK_COUNT", 50), FOLLOW_COUNT = readIntConfig("KSFOLLOW_COUNT", 5), SEARCH_COUNT = readIntConfig("TNUOC_HCRAESSK".split("").reverse().join(""), 5), SEARCH_FOLLOW_COUNT = readIntConfig("KSSEARCHFOLLOW_COUNT", 2), BOX_COUNT = readIntConfig("KSBOX_COUNT", 30), FOOD_COUNT = readIntConfig("KSFOOD_COUNT", 50), KBOX_COUNT = readIntConfig("KSKBOX_COUNT", 1); const [ROUND_START_MIN, ROUND_START_MAX] = readRangeConfig("KSROUND_START_WAIT", 7, 15); const [WATCH_AD_MIN, WATCH_AD_MAX] = readRangeConfig("EMIT_DA_HCTAWSK".split("").reverse().join(""), 30, 40); const [PRE_LOOK_FOLLOW_MIN, PRE_LOOK_FOLLOW_MAX] = readRangeConfig("KSPRE_LOOK_FOLLOW_WAIT", 15, 30); const [BETWEEN_LOOK_FOLLOW_MIN, BETWEEN_LOOK_FOLLOW_MAX] = readRangeConfig("KSBETWEEN_LOOK_FOLLOW_WAIT", 35, 50); const [PRE_SEARCH_FOLLOW_MIN, PRE_SEARCH_FOLLOW_MAX] = readRangeConfig("KSPRE_SEARCH_FOLLOW_WAIT", 15, 30); const [BETWEEN_SEARCH_FOLLOW_MIN, BETWEEN_SEARCH_FOLLOW_MAX] = readRangeConfig("KSBETWEEN_SEARCH_FOLLOW_WAIT", 15, 30); const [ROUND_END_MIN, ROUND_END_MAX] = readRangeConfig("KSROUND_END_WAIT", 10, 20); const [TASK_SWITCH_MIN, TASK_SWITCH_MAX] = readRangeConfig("TIAW_HCTIWS_KSATSK".split("").reverse().join(""), 15, 30); const MAX_CONCURRENCY = readIntConfig("MAX_CONCURRENCY", 888); var _0x3938a = 7; const SCRIPT_VERSION = "eerf-8v".split("").reverse().join(""); _0x3938a = 10; const DEVICE_ID_FILE = ".device_id.txt"; var _0x4f408f; const SKIP_LIVE_ADS = ["1", "true", "yes", "on"].includes(readStringConfig("SDA_EVIL_PIKS".split("").reverse().join(""), "1").toLowerCase()); _0x4f408f = 5; var _0x71b = 15; const SKIP_LIVE_MAX_RETRIES = Math.max(1, readIntConfig("SEIRTER_XAM_EVIL_PIKS".split("").reverse().join(""), 5)); _0x71b = 0; var _0x9ff = 10; const ENABLE_CHANGE_DID = ["1", "eurt".split("").reverse().join(""), "yes", "on"].includes(readStringConfig("DID_EGNAHC_ELBANE".split("").reverse().join(""), "0").toLowerCase()); _0x9ff = 2; function getTasksToExecute() { var _0x20fa6a; const _0xcf6e = process.env.Task; _0x20fa6a = "nngfka"; if (!_0xcf6e) return ["look", "box", "food", "kbox", "search", "wollof_kool".split("").reverse().join(""), "search_follow"]; var _0x3baafb = 17; const _0x712d = _0xcf6e.split(",").map(task => task.trim().toLowerCase()).filter(Boolean); _0x3baafb = 6; var _0x621cf = 12; const _0xb385f = ["look", "box", "food", "kbox", "search", "look_follow", "search_follow"]; _0x621cf = "mhnipg"; const _0x53ca9f = _0x712d.filter(task => _0xb385f.includes(task)); return _0x53ca9f.length === 0 ? ["kool".split("").reverse().join(""), "box", "doof".split("").reverse().join(""), "kbox", "hcraes".split("").reverse().join(""), "wollof_kool".split("").reverse().join(""), "search_follow"] : _0x53ca9f; } function parseAccountsFromEnv() { const _0x8c43bc = []; const _0x10_0x251 = new Set(); if (process.env.ksck) { const _0xf4f3c = process.env.ksck.split("&").map(cookie => cookie.trim()).filter(Boolean); _0x8c43bc.push(..._0xf4f3c); } for (let i = 1; i <= 666; i++) { const _0x2b9ae = "ksck" + i; if (process.env[_0x2b9ae]) { const _0x6f8f = process.env[_0x2b9ae].split("&").map(cookie => cookie.trim()).filter(Boolean); _0x8c43bc.push(..._0x6f8f); } } const _0x3d6dab = []; for (const _0xc78d of _0x8c43bc) { if (!_0x10_0x251.has(_0xc78d)) { _0x10_0x251.add(_0xc78d); _0x3d6dab.push(_0xc78d); } } return _0x3d6dab; } var _0x76g16c = 2; const accounts = parseAccountsFromEnv(); _0x76g16c = 9; var _0xabbe; const accountCount = accounts.length; _0xabbe = 3; var _0xaa1c9d = 13; const tasksToExecute = getTasksToExecute(); _0xaa1c9d = 1; function generateDeviceId() { try { const _0xccae8a = length => { const _0xcd6ge = "0123456789abcdef"; let _0x75ef = ""; for (let i = 0; i < length; i++) { _0x75ef += _0xcd6ge.charAt(Math.floor(Math.random() * _0xcd6ge.length)); } return _0x75ef; }; var _0x2_0xbb8 = 7; const _0x11_0xb31 = _0xccae8a(16); _0x2_0xbb8 = "pnohmn".split("").reverse().join(""); return "_DIORDNA".split("").reverse().join("") + _0x11_0xb31; } catch (error) { console.log("生成设备ID失败: " + error.message); var _0xad5a6d; const _0xb246c = Date.now().toString(16).toUpperCase(); _0xad5a6d = "njhkcg"; return "ANDROID_" + _0xb246c.substring(0, 16); } } function getOrCreateDeviceId() { try { if (fs.existsSync(DEVICE_ID_FILE)) { var _0xbg1e4e; const _0xd6ad2e = fs.readFileSync(DEVICE_ID_FILE, "8ftu".split("").reverse().join("")).trim(); _0xbg1e4e = 14; if (_0xd6ad2e && _0xd6ad2e.length === 32) { return _0xd6ad2e; } else { if (_0xd6ad2e && _0xd6ad2e.length > 0) { try { fs.unlinkSync(DEVICE_ID_FILE); } catch (error) {} } } } const chars = "0123456789abcdef"; const _0xf5dge = () => { var _0x235g = 14; let _0x6d5da = ""; _0x235g = "eljfme"; for (let i = 0; i < 32; i++) { _0x6d5da += chars.charAt(Math.floor(Math.random() * chars.length)); } return _0x6d5da; }; var _0x80f8g = 0; const _0xc30da = _0xf5dge(); _0x80f8g = 11; try { fs.writeFileSync(DEVICE_ID_FILE, _0xc30da, "utf8"); } catch (error) { console.log("保存设备ID失败: " + error.message); } return _0xc30da; } catch (error) { console.log(" :败失DI备设取读".split("").reverse().join("") + error.message); var _0x5f8f9g; const chars = "0123456789abcdef"; _0x5f8f9g = 7; var _0x1a_0x9b5 = 7; let _0x5g18b = ""; _0x1a_0x9b5 = 9; for (let i = 0; i < 32; i++) { _0x5g18b += chars.charAt(Math.floor(Math.random() * chars.length)); } return _0x5g18b; } } async function sendRequest(requestConfig, proxyUrl = null, requestDescription = "求请知未".split("").reverse().join("")) { const _0xbec24a = { ...requestConfig }; let _0xba6c3f = null; if (proxyUrl) { try { _0xba6c3f = new SocksProxyAgent(proxyUrl); } catch (error) { console.log("[错误] " + requestDescription + " 代理URL无效(" + error.message + "式模连直试尝,)".split("").reverse().join("")); } } var _0x3_0x895; const _0xab441f = _0xbec24a.method || "TEG".split("").reverse().join(""); _0x3_0x895 = 11; var _0x4_0xff5 = 14; const _0x5721f = _0xbec24a.url; _0x4_0xff5 = 7; const _0xb376bf = _0xbec24a.headers || {}; const _0xafa1a = _0xbec24a.body || _0xbec24a.form; try { var _0xe837f = 4; const _0xde_0x75a = Date.now(); _0xe837f = 6; const _0xf898d = { "method": _0xab441f, "url": _0x5721f, "headers": _0xb376bf, "data": _0xafa1a, "timeout": _0xbec24a.timeout || 30000, "startTime": _0xde_0x75a, ...(_0xba6c3f && { "httpAgent": _0xba6c3f, "httpsAgent": _0xba6c3f }) }; const _0xe2fca = await axios(_0xf898d); var _0xbd_0xf35; const responseTime = Date.now() - _0xde_0x75a; _0xbd_0xf35 = 1; return { "response": _0xe2fca, "body": _0xe2fca.data }; } catch (error) { var _0xf326bf; const responseTime = error.config?.startTime ? Date.now() - error.config.startTime : 0; _0xf326bf = 3; if (error.response) { var _0x4d5f0a = 1; const _0xa1c = error.response.data || null; _0x4d5f0a = 3; return { "response": error.response, "body": _0xa1c }; } else if (error.request) {} else {} return { "response": null, "body": null }; } } function isValidIP(ip) { if (!ip || typeof ip !== "gnirts".split("").reverse().join("")) return false; if (ip.includes(">lmth<".split("").reverse().join("")) || ip.includes("503 Service Temporarily Unavailable") || ip.includes("yawetaG daB 205".split("").reverse().join("")) || ip.includes("504 Gateway Timeout")) { return false; } var _0x855d7e; const _0x69d9c = new RegExp("$}3,1{d\\}3{).\\}3,1{d\\(^".split("").reverse().join(""), ""); _0x855d7e = 14; var _0x576ccb; const _0xcd5e = new RegExp("^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$", ""); _0x576ccb = "nhfjmd"; if (_0x69d9c.test(ip)) { var _0xd88f7d = 7; const _0x5df = ip.split("."); _0xd88f7d = "hamjfm".split("").reverse().join(""); for (const _0xe84e9a of _0x5df) { const _0xgfbb9c = parseInt(_0xe84e9a, 10); if (_0xgfbb9c < 0 || _0xgfbb9c > 255 || isNaN(_0xgfbb9c)) return false; } return true; } return _0xcd5e.test(ip); } async function testProxyConnectivity(proxyUrl, testDescription = "代理连通性检测", maxRetries = 10) { if (!proxyUrl) { return { "ok": true, "msg": "✅ 未配置代理(直连模式)", "ip": "localhost" }; } var _0x1f21de; let _0x2f69e = null; _0x1f21de = 11; const _0x1fd3ca = ["https://httpbin.org/ip", "https://api.ipify.org?format=json", "moc.pinosj//:sptth".split("").reverse().join(""), "https://api.my-ip.io/ip.json"]; for (let _0x4fc18d = 1; _0x4fc18d <= maxRetries; _0x4fc18d++) { for (const _0x7651g of _0x1fd3ca) { try { const { "response": response, "body": body } = await sendRequest({ "method": "GET", "url": _0x7651g, "headers": { "User-Agent": "ProxyTester/1.0" }, "timeout": 15000 }, proxyUrl, testDescription + " → " + new URL(_0x7651g).hostname); if (typeof body === "string" && (body.includes("") || body.includes("503 Service Temporarily Unavailable") || body.includes("502 Bad Gateway") || body.includes("504 Gateway Timeout"))) { continue; } if (body) { let _0x46a9aa = null; if (_0x7651g.includes("httpbin.org") && body.origin) { _0x46a9aa = body.origin; } else if (_0x7651g.includes("ipify.org") && body.ip) { _0x46a9aa = body.ip; } else if (_0x7651g.includes("jsonip.com") && body.ip) { _0x46a9aa = body.ip; } else if (_0x7651g.includes("oi.pi-ym".split("").reverse().join("")) && body.ip) { _0x46a9aa = body.ip; } else if (typeof body === "gnirts".split("").reverse().join("") && !body.includes("<")) { _0x46a9aa = body.trim(); } if (_0x46a9aa && isValidIP(_0x46a9aa)) { return { "ok": true, "msg": " :PI口出,常正理代5SKCOS ✅".split("").reverse().join("") + _0x46a9aa, "ip": _0x46a9aa }; } } } catch (error) { _0x2f69e = error; continue; } await new Promise(resolve => setTimeout(resolve, 500)); } if (_0x4fc18d < maxRetries) { var _0x5_0xg65 = 7; const _0xf8f8ed = _0x4fc18d * 2000; _0x5_0xg65 = 9; await new Promise(resolve => setTimeout(resolve, _0xf8f8ed)); } } try { new URL(proxyUrl); } catch (error) { return { "ok": false, "msg": "❌ 代理URL格式错误: " + error.message, "ip": null }; } return { "ok": false, "msg": "❌ 代理测试失败: " + (_0x2f69e?.message || "所有测试端点均无法访问"), "ip": null }; } const usedProxyIPs = new Set(); async function getAccountBasicInfo(cookie, proxyUrl, accountIdentifier = "?") { var _0x5b5ebb; const _0x87066a = "https://nebula.kuaishou.com/rest/n/nebula/activity/earn/overview/basicInfo?source=bottom_guide_first"; _0x5b5ebb = "nefgmm"; const { "body": responseData } = await sendRequest({ "method": "GET", "url": _0x87066a, "headers": { "Host": "nebula.kuaishou.com", "User-Agent": "kwai-android aegon/3.56.0", "Cookie": cookie, "Content-Type": "application/x-www-form-urlencoded" }, "timeout": 8000 }, proxyUrl, "账号[" + accountIdentifier + "] 获取基本信息"); if (responseData && responseData.result === 1 && responseData.data) { let _0x1b2ff = null; if (responseData.data.userData) { _0x1b2ff = responseData.data.userData.ud || responseData.data.userData.userId || responseData.data.userData.user_id || responseData.data.userData.id || null; } if (!_0x1b2ff) { _0x1b2ff = responseData.data.ud || responseData.data.userId || responseData.data.user_id || null; } return { "nickname": responseData.data.userData?.nickname || null, "totalCoin": responseData.data.totalCoin ?? null, "allCash": responseData.data.allCash ?? null, "ud": _0x1b2ff }; } return null; } const forceColor = String(process.env.FORCE_COLOR || "").toLowerCase(); const noColor = String(process.env.NO_COLOR || "").toLowerCase() === "1"; const enableColors = !noColor && forceColor !== "0"; var _0xb94fe = 14; const colors = enableColors ? { "reset": "", "bright": "", "dim": "", "red": "", "green": "", "yellow": "", "blue": "", "magenta": "", "cyan": "", "white": "" } : { "reset": "", "bright": "", "dim": "", "red": "", "green": "", "yellow": "", "blue": "", "magenta": "", "cyan": "", "white": "" }; _0xb94fe = 6; function colorText(text, colorCode) { if (!enableColors || !colorCode) { return String(text); } return colorCode + text + colors.reset; } function formatTag(text) { return colorText("[" + text + "]", colors.bright + colors.cyan); } function formatSuccess(text) { return colorText("[" + text + "]", colors.bright + colors.green); } function formatWarning(text) { return colorText("[" + text + "]", colors.bright + colors.yellow); } function centerText(text, width) { text = String(text); if (text.length >= width) return text.substring(0, width); var _0xeceg = 1; const _0xadce8f = width - text.length; _0xeceg = 9; var _0x3d78c = 6; const _0x6abbgc = Math.floor(_0xadce8f / 2); _0x3d78c = 2; var _0x156g; const _0xda5ag = _0xadce8f - _0x6abbgc; _0x156g = 6; return " ".repeat(_0x6abbgc) + text + " ".repeat(_0xda5ag); } class KuaishouAccount { constructor({ "index": index, "salt": salt, "cookie": cookie, "nickname": nickname = "", "proxyUrl": proxyUrl = null, "tasksToExecute": tasksToExecute = ["look"], "remark": remark = "", "udFromLogin": udFromLogin = null }) { this.index = index; this.salt = salt; this.cookie = cookie; this.nickname = nickname || remark || "号账".split("").reverse().join("") + index; this.remark = remark; this.proxyUrl = proxyUrl; this.coinLimit = COIN_LIMIT; this.coinExceeded = false; this.tasksToExecute = tasksToExecute; this.adAdditionalNum = 0; this.extractCookieInfo(); if (udFromLogin && udFromLogin.trim()) { var _0xc92cdg; const ud = String(udFromLogin).trim(); _0xc92cdg = 12; if (ud) { this.userId = ud; } } this.headers = { "Host": "nebula.kuaishou.com", "Connection": "keep-alive", "User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 8 Lite Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/87.0.4280.101 Mobile Safari/537.36", "Cookie": this.cookie, "content-type": "application/json" }; this.taskReportPath = "/rest/r/ad/task/report"; this.startTime = Date.now(); this.endTime = this.startTime - 30000; this.queryParams = "mod=Xiaomi(MI 11)&appver=" + this.appver + "&egid=" + this.egid + "=did&".split("").reverse().join("") + this.did; this.taskConfigs = { "look": { "name": "看广告得金币", "businessId": 672, "posId": 24067, "subPageId": 100026367, "requestSceneType": 1, "taskType": 1 }, "look_follow": { "name": "追加看广告得金币", "businessId": 672, "posId": 24067, "subPageId": 100026367, "requestSceneType": 2, "taskType": 1 }, "box": { "name": "宝箱广告", "businessId": 606, "posId": 20346, "subPageId": 100024064, "requestSceneType": 1, "taskType": 1 }, "food": { "name": "饭补广告", "businessId": 9362, "posId": 24067, "subPageId": 100026367, "requestSceneType": 7, "taskType": 2 }, "kbox": { "name": "开宝箱", "businessId": 606, "posId": 20346, "subPageId": 100024064, "requestSceneType": 1, "taskType": 1 }, "search": { "name": "搜索任务", "pageId": 11014, "businessId": 7076, "posId": 216268, "subPageId": 100161537, "requestSceneType": 1, "taskType": 1 }, "search_follow": { "name": "搜索任务追加", "pageId": 11014, "businessId": 7076, "posId": 216268, "subPageId": 100161537, "requestSceneType": 7, "taskType": 2 } }; this.taskStats = {}; var _0xdbad = 16; const allTasks = new Set(this.tasksToExecute); _0xdbad = 14; allTasks.add("look_follow"); allTasks.add("search"); allTasks.add("search_follow"); allTasks.forEach(taskType => { if (this.taskConfigs[taskType]) { this.taskStats[taskType] = { "success": 0, "failed": 0, "totalReward": 0 }; } }); this.lowRewardStreak = 0; this.lowRewardThreshold = LOW_REWARD_THRESHOLD; this.lowRewardLimit = LOW_REWARD_LIMIT; this.stopAllTasks = false; this.taskLimitReached = {}; var _0x6_0xc3g; const allTaskTypes = new Set(this.tasksToExecute); _0x6_0xc3g = 4; allTaskTypes.add("wollof_kool".split("").reverse().join("")); allTaskTypes.add("search"); allTaskTypes.add("search_follow"); allTaskTypes.forEach(taskType => { if (this.taskConfigs[taskType]) { this.taskLimitReached[taskType] = false; } }); } getAccountDisplayName() { const displayName = this.remark || this.nickname || "号账".split("").reverse().join("") + this.index; if (enableColors) { var _0xa5b = 6; const accountLabel = colors.bright + colors.cyan + "账号" + colors.reset; _0xa5b = "pagmnm".split("").reverse().join(""); return accountLabel + formatTag(displayName); } return "账号[" + displayName + "]"; } getTaskTotalCount(taskType) { switch (taskType) { case "look": return LOOK_COUNT; case "look_follow": return this.tasksToExecute.includes("look") ? LOOK_COUNT * FOLLOW_COUNT : 0; case "hcraes".split("").reverse().join(""): return SEARCH_COUNT; case "search_follow": return this.tasksToExecute.includes("hcraes".split("").reverse().join("")) ? SEARCH_COUNT * SEARCH_FOLLOW_COUNT : 0; case "box": return BOX_COUNT; case "doof".split("").reverse().join(""): return FOOD_COUNT; case "kbox": return KBOX_COUNT; default: return 0; } } async checkCoinLimit() { try { const accountInfo = await getAccountBasicInfo(this.getCookieWithCurrentDid(), this.proxyUrl, this.index); if (accountInfo && accountInfo.totalCoin) { var _0xb3cf; const currentCoins = parseInt(accountInfo.totalCoin); _0xb3cf = 6; if (currentCoins >= this.coinLimit) { console.log("⚠️ " + this.getAccountDisplayName() + " 金币已达 " + currentCoins + " 过超,".split("").reverse().join("") + this.coinLimit + "务任止停将,值阈 ".split("").reverse().join("")); this.coinExceeded = true; this.stopAllTasks = true; return true; } } return false; } catch (error) { console.log(" ❌".split("").reverse().join("") + this.getAccountDisplayName() + " :常异查检币金 ".split("").reverse().join("") + error.message); return false; } } extractCookieInfo() { try { var _0xe8c9b; const extractValue = (key, defaultValue = "") => { const patterns = [new RegExp(`\\b${key}\\s*=\\s*"([^"]+)"`, "i"), new RegExp(`\\b${key}\\s*=\\s*([^;]+)`, "i"), new RegExp(`\\b${key}\\s*:\\s*"([^"]+)"`, "i"), new RegExp(`\\b${key}\\s*:\\s*([^,;]+)`, "i")]; for (const pattern of patterns) { const match = this.cookie.match(pattern); if (match && match[1] && match[1].trim()) { return match[1].trim(); } } return defaultValue; }; _0xe8c9b = 10; this.egid = extractValue("egid"); this.did = extractValue("did") || extractValue("oDid"); this.userId = extractValue("ud") || extractValue("dIresu".split("").reverse().join("")) || ""; this.kuaishouApiSt = extractValue("ts_ipa.uohsiauk".split("").reverse().join("")) || ""; this.appver = extractValue("revppa".split("").reverse().join(""), "75601.04.8.31".split("").reverse().join("")); var _0xa513eb = 3; const missingFields = []; _0xa513eb = "kjecol".split("").reverse().join(""); if (!this.egid) missingFields.push("egid"); if (!this.did) missingFields.push("did".split("").reverse().join("")); if (!this.userId) missingFields.push("dIresu/du".split("").reverse().join("")); if (!this.kuaishouApiSt) missingFields.push("kuaishou.api_st"); if (missingFields.length > 0) { console.log("⚠️ " + this.getAccountDisplayName() + " 缺少必要参数: " + missingFields.join(", ")); } } catch (error) { console.log("❌ " + this.getAccountDisplayName() + " 解析cookie失败: " + error.message); } } getCookieWithCurrentDid() { try { if (!this.cookie || !this.did) return this.cookie; const cookieParts = String(this.cookie).split(";"); const updatedParts = cookieParts.map(part => { var _0xb2eb = 10; const partStr = String(part ?? ""); _0xb2eb = "fhneoh"; if (!partStr.trim()) return partStr; const hasEquals = partStr.includes("="); const hasColon = partStr.includes(":"); const separator = hasEquals ? "=" : hasColon ? ":" : null; if (!separator) return partStr; const [key, ...valueParts] = partStr.split(separator); var _0xbd2; const keyName = String(key || "").trim(); _0xbd2 = 1; const keyLower = keyName.toLowerCase(); if (keyLower === "did".split("").reverse().join("") || keyLower === "odid") { return keyName + separator + this.did; } return partStr; }); return updatedParts.join(" ;".split("").reverse().join("")); } catch (error) { return this.cookie; } } getTaskStats() { return this.taskStats; } printTaskStats() { console.log("\n📊 " + this.getAccountDisplayName() + " 任务执行统计:"); for (const [taskType, stats] of Object.entries(this.taskStats)) { var _0x4f636b = 11; const taskConfig = this.taskConfigs[taskType]; _0x4f636b = 5; console.log(" " + taskConfig.name + ": 成功" + stats.success + "次, 失败" + stats.failed + "次, 总奖励" + stats.totalReward + "币金".split("").reverse().join("")); } } async retryOperation(operation, operationName, maxRetries = 3, delay = 2000) { let attempt = 0; var _0xba73d; let lastError = null; _0xba73d = 11; while (attempt < maxRetries) { try { var _0xe60ffb = 8; const result = await operation(); _0xe60ffb = 7; if (result) return result; lastError = new Error(operationName + "果结空回返 ".split("").reverse().join("")); } catch (error) { lastError = error; } attempt++; if (attempt < maxRetries) { await new Promise(resolve => setTimeout(resolve, delay)); } } return null; } needsNewDid = false; async getAdInfo(taskConfig, retryCount = 0) { try { const maxRetries = SKIP_LIVE_ADS ? SKIP_LIVE_MAX_RETRIES : 1; const apiPath = "/rest/e/reward/mixed/ad"; var _0x04g3g = 6; const requestParams = { "encData": "|encData|", "sign": "|sign|", "cs": "false", "client_key": "2ac2a76d", "videoModelCrowdTag": "1_23", "os": "android", "kuaishou.api_st": this.kuaishouApiSt, "uQaTag": "1##swLdgl:99#ecPp:-9#cmNt:-0#cmHs:-3#cmMnsl:-0" }; _0x04g3g = 9; const deviceInfo = { "earphoneMode": "1", "mod": "Xiaomi(23116PN5BC)", "appver": this.appver, "isp": "CUCC", "language": "zh-cn", "ud": this.userId || "", "did_tag": "0", "net": "WIFI", "kcv": "1599", "app": "0", "kpf": "ANDROID_PHONE", "ver": "11.6", "android_os": "0", "boardPlatform": "pineapple", "kpn": "NEBULA", "androidApiLevel": "35", "country_code": "cn", "sys": "ANDROID_15", "sw": "1080", "sh": "2400", "abi": "arm64", "userRecoBit": "0" }; const adRequestData = { "appInfo": { "appId": "kuaishou_nebula", "name": "快手极速版", "packageName": "com.kuaishou.nebula", "version": this.appver, "versionCode": -1 }, "deviceInfo": { "osType": 1, "osVersion": "15", "deviceId": this.did, "screenSize": { "width": 1080, "height": 2249 }, "ftt": "" }, "userInfo": { "userId": this.userId || "", "age": 0, "gender": "" }, "impInfo": [{ "pageId": taskConfig.pageId || 11101, "subPageId": taskConfig.subPageId, "action": 0, "browseType": 3, "impExtData": "{}", "mediaExtData": "{}" }] }; var _0xaa068d = 7; const encodedData = Buffer.from(JSON.stringify(adRequestData)).toString("base64"); _0xaa068d = 12; let signature = await this.getSign(encodedData); if (!signature) { console.log(" ❌".split("").reverse().join("") + this.getAccountDisplayName() + " 获取签名失败"); return null; } requestParams.encData = signature.encdata; requestParams.sign = signature.sign; var _0x7_0xda7 = 3; let adSignature = await this.requestSignService({ "urlpath": apiPath, "reqdata": querystring.stringify(requestParams) + "&" + querystring.stringify(deviceInfo), "api_client_salt": this.salt }, "获取广告签名"); _0x7_0xda7 = 3; if (!adSignature) { console.log(" ❌".split("").reverse().join("") + this.getAccountDisplayName() + "败失名签告广取获 ".split("").reverse().join("")); return null; } var _0x241dbg = 10; const queryParams = { ...deviceInfo, "sig": adSignature.sig, "__NS_sig3": adSignature.__NS_sig3, "__NS_xfalcon": adSignature.__NS_xfalcon || "", "__NStokensig": adSignature.__NStokensig }; _0x241dbg = 6; var _0x63184b = 11; const fullUrl = "https://api.e.kuaishou.com" + apiPath + "?" + querystring.stringify(queryParams); _0x63184b = 16; const { "response": response, "body": adResponse } = await sendRequest({ "method": "POST", "url": fullUrl, "headers": { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "Host": "api.e.kuaishou.com", "User-Agent": "kwai-android aegon/3.56.0", "Cookie": "=ts_ipa.uohsiauk".split("").reverse().join("") + this.kuaishouApiSt }, "form": requestParams, "timeout": 30000 }, this.proxyUrl, this.getAccountDisplayName() + " 获取广告"); if (!response || !adResponse) { console.log("❌ " + this.getAccountDisplayName() + " 获取广告无响应"); return null; } if (adResponse.errorMsg === "KO".split("").reverse().join("") && adResponse.feeds && adResponse.feeds[0] && adResponse.feeds[0].ad) { const adData = adResponse.feeds[0]; var _0x92a61f = 15; const creativeId = adData?.ad?.creativeId ?? adData?.creativeId; _0x92a61f = 1; var _0xc4a16e = 12; const expTag = adData.exp_tag || ""; _0xc4a16e = "nodgcq"; var _0xbf5fcd = 9; const llsid = expTag.split("/")[1]?.split("_")?.[0] || ""; _0xbf5fcd = 8; if (!creativeId) { console.log(" ️⚠".split("").reverse().join("") + this.getAccountDisplayName() + "dIevitaerc 告广析解能未 ".split("").reverse().join("")); return null; } const adTitle = (adData.caption || adData?.ad?.caption || "").slice(0, 20); var _0x626b = 13; const infoColor = colors.bright + colors.blue; _0x626b = "eldghj"; console.log(colorText("ℹ️", infoColor) + " " + this.getAccountDisplayName() + " 获取广告: " + (adTitle || "无标题")); return { "cid": creativeId, "llsid": llsid }; } else { console.log("❌ " + this.getAccountDisplayName() + " 获取广告失败: errorMsg=" + (adResponse?.error_msg || "unknown") + ", result=" + (adResponse?.result || "nwonknu".split("").reverse().join(""))); return null; } } catch (error) { console.log("❌ " + this.getAccountDisplayName() + " 获取广告异常: " + error.message); return null; } } async generateSignature(creativeId, llsid, taskType, taskConfig) { try { const businessData = JSON.stringify({ "businessId": taskConfig.businessId, "endTime": this.endTime, "extParams": "", "mediaScene": "video", "neoInfos": [{ "creativeId": creativeId, "extInfo": "", "llsid": llsid, "requestSceneType": taskConfig.requestSceneType, "taskType": taskConfig.taskType, "watchExpId": "", "watchStage": 0 }], "pageId": taskConfig.pageId || 11101, "posId": taskConfig.posId, "reportType": 0, "sessionId": "", "startTime": this.startTime, "subPageId": taskConfig.subPageId }); var _0x01g0f; const postData = "bizStr=" + encodeURIComponent(businessData) + "=ts_ipa.uohsiauk&d67a2ca2=yek_tneilc&eslaf=sc&".split("").reverse().join("") + this.kuaishouApiSt; _0x01g0f = "mkcgom".split("").reverse().join(""); var _0x324g1c = 4; const fullData = this.queryParams + "&" + postData; _0x324g1c = 4; const signature = await this.requestSignService({ "urlpath": this.taskReportPath, "reqdata": fullData, "api_client_salt": this.salt }, this.getAccountDisplayName() + " 生成报告签名"); if (!signature) return null; return { "sig": signature.sig, "sig3": signature.__NS_sig3, "sigtoken": signature.__NStokensig, "xfalcon": signature.__NS_xfalcon || "", "post": postData }; } catch (error) { return null; } } async submitReport(sig, sig3, sigtoken, xfalcon, postData, taskType, taskConfig) { try { var _0x775bf = 7; const reportUrl = "//:sptth".split("").reverse().join("") + "api.e.kuaishou.com" + this.taskReportPath + "?" + (this.queryParams + "&sig=" + sig + "&__NS_sig3=" + sig3 + "=noclafx_SN__&".split("").reverse().join("") + (xfalcon || "") + "=gisnekotSN__&".split("").reverse().join("") + sigtoken); _0x775bf = 2; const { "response": response, "body": reportResponse } = await sendRequest({ "method": "POST", "url": reportUrl, "headers": { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "Host": "api.e.kuaishou.com", "User-Agent": "kwai-android aegon/3.56.0" }, "body": postData, "timeout": 12000 }, this.proxyUrl, "账号[" + this.nickname + "]" + (this.remark ? "(" + this.remark + ")" : "") + " 提交任务"); if (!reportResponse) { return { "success": false, "reward": 0, "shouldRetry": false }; } if (reportResponse.result === 1) { var _0x3af = 16; const reward = reportResponse.data?.neoAmount || 0; _0x3af = 9; if (reward <= this.lowRewardThreshold) { this.lowRewardStreak++; if (ENABLE_CHANGE_DID) { const newDid = generateDeviceId(); this.did = newDid; this.queryParams = "=revppa&)11 IM(imoaiX=dom".split("").reverse().join("") + this.appver + "&egid=" + this.egid + "=did&".split("").reverse().join("") + newDid; console.log(" \uDD04\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + " 低奖励触发,已更新设备ID: " + newDid); } else { console.log(" \uDD04\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + " 低奖励触发,但当前已关闭自动更换did"); } console.log(" ️⚠".split("").reverse().join("") + this.getAccountDisplayName() + " 金币奖励(" + reward + "(值阈于等或于低)".split("").reverse().join("") + this.lowRewardThreshold + "),等待30秒后重试,当前连续低奖励次数:(" + this.lowRewardStreak + ")/" + this.lowRewardLimit); await new Promise(resolve => setTimeout(resolve, 30000)); if (this.lowRewardStreak >= this.lowRewardLimit) { console.log("🏁 " + this.getAccountDisplayName() + "续连 ".split("").reverse().join("") + this.lowRewardLimit + "次奖励≤" + this.lowRewardThreshold + "务任部全止停,".split("").reverse().join("")); this.stopAllTasks = true; return { "success": false, "reward": 0, "shouldRetry": false }; } return { "success": true, "reward": reward, "shouldRetry": false }; } else { if (this.lowRewardStreak > 0) { console.log(" ✅".split("").reverse().join("") + this.getAccountDisplayName() + "(励奖 ".split("").reverse().join("") + reward + ")恢复正常,重置低奖励计数"); this.lowRewardStreak = 0; } return { "success": true, "reward": reward, "shouldRetry": false }; } } if ([20107, 20108, 1003, 415].includes(reportResponse.result)) { console.log("⚠️ " + this.getAccountDisplayName() + " " + taskConfig.name + " 已达上限"); this.taskLimitReached[taskType] = true; return { "success": false, "reward": 0 }; } return { "success": false, "reward": 0 }; } catch (error) { return { "success": false, "reward": 0 }; } } async getSign(encodedData) { var _0xf8d; const maxRetries = 3; _0xf8d = 0; for (let attempt = 1; attempt <= maxRetries; attempt++) { try { var _0xc991a = 4; const requestData = JSON.stringify({ "type": "encsign", "data": encodedData, "ud": this.userId || "", "script_version": SCRIPT_VERSION }); _0xc991a = "dogecl".split("").reverse().join(""); const { "response": response, "body": signResponse } = await sendRequest({ "method": "POST", "url": "https://ks.yubin8.dpdns.org/encsign", "body": requestData, "headers": { "Content-Type": "application/json" }, "timeout": 30000 }, this.proxyUrl, this.getAccountDisplayName() + " encsign签名"); if (!response) { if (attempt < maxRetries) continue;else { console.log("❌ " + this.getAccountDisplayName() + "败失求请名签 ".split("").reverse().join("")); return null; } } if (!signResponse) { if (attempt < maxRetries) continue;else { console.log("❌ " + this.getAccountDisplayName() + "空为应响名签 ".split("").reverse().join("")); return null; } } if (signResponse && signResponse.status) { var _0xe2ea = 10; let resultData = signResponse.data; _0xe2ea = 5; if (typeof resultData === "gnirts".split("").reverse().join("")) { try { resultData = JSON.parse(resultData); } catch (error) { if (attempt < maxRetries) continue;else { console.log("❌ " + this.getAccountDisplayName() + " 解析签名数据失败"); return null; } } } return resultData; } else { if (attempt >= maxRetries) { console.log("❌ " + this.getAccountDisplayName() + " :误错回返务服名签 ".split("").reverse().join("") + (signResponse?.message || "未知错误")); } if (attempt < maxRetries) continue;else return null; } } catch (error) { if (attempt >= maxRetries) { console.log("❌ " + this.getAccountDisplayName() + " :常异求请名签 ".split("").reverse().join("") + error.message); } if (attempt < maxRetries) continue;else return null; } if (attempt < maxRetries) { await new Promise(resolve => setTimeout(resolve, 2000)); } } console.log("❌ " + this.getAccountDisplayName() + "数次试重大最达已,败失取获名签 ".split("").reverse().join("")); return null; } async requestSignService(requestData, operationDescription) { const maxRetries = 3; for (let attempt = 1; attempt <= maxRetries; attempt++) { try { const deviceId = getOrCreateDeviceId(); const requestPayload = JSON.stringify({ "type": "nssig", "path": requestData.urlpath, "data": requestData.reqdata, "salt": requestData.api_client_salt, "ud": this.userId || "", "script_version": SCRIPT_VERSION, "device_id": deviceId }); const { "response": response, "body": signResponse } = await sendRequest({ "method": "POST", "url": "https://ks.yubin8.dpdns.org" + "gissn/".split("").reverse().join(""), "headers": { "Content-Type": "application/json", "User-Agent": "Mozilla/5.0" }, "body": requestPayload, "timeout": 15000 }, this.proxyUrl, operationDescription + "(签名服务)"); if (!signResponse) { if (attempt < maxRetries) continue;else { console.log(" ❌".split("").reverse().join("") + this.getAccountDisplayName() + " " + operationDescription + " 签名响应为空"); return null; } } if (signResponse && signResponse.status) { let resultData = signResponse.data; if (typeof resultData === "gnirts".split("").reverse().join("")) { try { resultData = JSON.parse(resultData); } catch (error) { if (attempt < maxRetries) continue;else { console.log(" ❌".split("").reverse().join("") + this.getAccountDisplayName() + " " + operationDescription + "败失据数名签析解 ".split("").reverse().join("")); return null; } } } var _0xc374b = 3; let finalResult = resultData; _0xc374b = 13; if (resultData.data && typeof resultData.data === "object") { finalResult = resultData.data; } var _0x6139e; let sig3 = finalResult.nssig3 || finalResult.__NS_sig3; _0x6139e = 1; let tokensig = finalResult.nstokensig || finalResult.__NStokensig; let xfalcon = finalResult.xfalcon || finalResult.nssig4 || finalResult.__NS_xfalcon || ""; var _0x271ab = 12; let sig = finalResult.sig; _0x271ab = "gibeei"; return { "__NS_sig3": sig3, "__NStokensig": tokensig, "sig": sig, "__NS_xfalcon": xfalcon }; } if (attempt >= maxRetries) { console.log("❌ " + this.getAccountDisplayName() + " " + operationDescription + "败失名签 ".split("").reverse().join("")); } if (attempt < maxRetries) continue;else return null; } catch (error) { if (attempt >= maxRetries) { console.log("❌ " + this.getAccountDisplayName() + " " + operationDescription + " :常异名签 ".split("").reverse().join("") + error.message); } if (attempt < maxRetries) continue;else return null; } } console.log("❌ " + this.getAccountDisplayName() + " " + operationDescription + "数次试重大最达已,败失名签 ".split("").reverse().join("")); return null; } async executeTask(taskType) { if (!this.tasksToExecute.includes(taskType)) return false; const taskConfig = this.taskConfigs[taskType]; if (!taskConfig) { console.log("❌ " + this.getAccountDisplayName() + " :务任知未 ".split("").reverse().join("") + taskType); return false; } if (this.taskLimitReached[taskType]) return false; try { const initialInfo = await getAccountBasicInfo(this.getCookieWithCurrentDid(), this.proxyUrl, this.index); const initialCoins = initialInfo?.totalCoin || 0; var _0x16a49g = 7; let adInfo; _0x16a49g = 0; let retryCount = 0; var _0xa_0xf0g; const maxAdRetries = 3; _0xa_0xf0g = 9; while (retryCount < maxAdRetries) { const adResult = await this.getAdInfo(taskConfig); if (adResult && adResult.needsNewDid) { this.needsNewDid = true; retryCount++; console.log(" \uDD04\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + " 正在更新设备ID并重试获取广告 (" + retryCount + "/" + maxAdRetries + ")"); continue; } else if (adResult) { adInfo = adResult; break; } else { retryCount++; if (retryCount >= maxAdRetries) { console.log("❌ " + this.getAccountDisplayName() + "取获 ".split("").reverse().join("") + taskConfig.name + "败失息信".split("").reverse().join("")); this.taskStats[taskType].failed++; return false; } await new Promise(resolve => setTimeout(resolve, 2000)); } } if (!adInfo) { this.taskStats[taskType].failed++; return false; } const waitTime = Math.floor(Math.random() * (WATCH_AD_MAX - WATCH_AD_MIN + 1)) + WATCH_AD_MIN; console.log("⏱️ " + this.getAccountDisplayName() + " " + taskConfig.name + " 等待 " + waitTime + " 秒后继续"); await new Promise(resolve => setTimeout(resolve, waitTime * 1000)); const signature = await this.generateSignature(adInfo.cid, adInfo.llsid, taskType, taskConfig); if (!signature) { this.taskStats[taskType].failed++; console.log("❌ " + this.getAccountDisplayName() + " 生成签名失败,本次" + taskConfig.name + "励奖得获未".split("").reverse().join("")); return false; } var _0x7dec4d; let reportResult; _0x7dec4d = 2; var _0xdd_0x212 = 8; let reportAttempt = 0; _0xdd_0x212 = 11; while (reportAttempt < 3) { reportResult = await this.submitReport(signature.sig, signature.sig3, signature.sigtoken, signature.xfalcon || "", signature.post, taskType, taskConfig); if (reportResult?.success || !reportResult?.shouldRetry) { break; } reportAttempt++; if (reportResult.shouldRetry) { await new Promise(resolve => setTimeout(resolve, 30000)); console.log(" \uDD04\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + " 准备重试 (" + reportAttempt + "/3)"); } } if (reportResult?.success) { this.taskStats[taskType].success++; this.taskStats[taskType].totalReward += reportResult.reward || 0; const finalInfo = await getAccountBasicInfo(this.getCookieWithCurrentDid(), this.proxyUrl, this.index); var _0xbd3 = 12; const finalCoins = finalInfo?.totalCoin || initialCoins; _0xbd3 = "jeqojk"; var _0xec388c = 11; const reward = reportResult.reward || 0; _0xec388c = "elninj"; const remark = this.remark || this.nickname || "备注"; let taskDescription = "告广到取获".split("").reverse().join(""); let taskColor = colors.bright + colors.cyan; switch (taskType) { case "xobk".split("").reverse().join(""): taskDescription = "获取到宝箱"; taskColor = colors.bright + colors.magenta; break; case "xob".split("").reverse().join(""): taskDescription = "告广箱宝到取获".split("").reverse().join(""); taskColor = colors.bright + colors.blue; break; case "doof".split("").reverse().join(""): taskDescription = "告广补饭到取获".split("").reverse().join(""); taskColor = colors.bright + colors.green; break; case "wollof_kool".split("").reverse().join(""): taskDescription = "获取追加广告"; taskColor = colors.bright + colors.yellow; break; case "wollof_hcraes".split("").reverse().join(""): taskDescription = "获取到搜索追加广告"; taskColor = colors.bright + colors.yellow; break; case "look": taskDescription = "获取到广告"; taskColor = colors.bright + colors.cyan; break; case "search": taskDescription = "获取到搜索广告"; taskColor = colors.bright + colors.cyan; break; } var _0xb32e; const currentCount = this.taskStats[taskType].success; _0xb32e = "mhjilj"; var _0x5517ed = 1; const totalCount = this.getTaskTotalCount(taskType); _0x5517ed = 3; const rewardIndicator = reward >= 100 ? colors.bright + colors.red + "💰[高额奖励]" + colors.reset : colors.bright + colors.green + "💰[奖励]" + colors.reset; var _0x8_0x0b5; const remarkTag = formatTag(remark); _0x8_0x0b5 = 11; const taskDesc = colorText(taskDescription, taskColor); console.log(rewardIndicator + " " + remarkTag + " " + taskDesc + "第(".split("").reverse().join("") + currentCount + "/" + totalCount + ">==)次".split("").reverse().join("") + formatWarning(reward) + " 币金前当 —— 币金".split("").reverse().join("") + formatSuccess(finalCoins)); return true; } this.taskStats[taskType].failed++; if (this.taskLimitReached[taskType]) { console.log("⚠️ " + this.getAccountDisplayName() + " " + taskConfig.name + "励奖得获未次本,限上达已 ".split("").reverse().join("")); } else if (reportResult) { console.log(" ❌".split("").reverse().join("") + this.getAccountDisplayName() + " 提交" + taskConfig.name + "失败,本次未获得奖励"); } else { console.log(" ❌".split("").reverse().join("") + this.getAccountDisplayName() + " 提交" + taskConfig.name + "失败(网络或服务器异常),本次未获得奖励"); } return false; } catch (error) { this.taskStats[taskType].failed++; return false; } } async executeAllTasksByPriority() { console.log("🔀 " + this.getAccountDisplayName() + " 任务执行顺序: " + this.tasksToExecute.join(" → ")); for (const taskType of this.tasksToExecute) { if (this.stopAllTasks) { console.log("🛑 " + this.getAccountDisplayName() + " 已停止所有任务"); break; } if (this.taskLimitReached[taskType]) { console.log(" ️⏭".split("").reverse().join("") + this.getAccountDisplayName() + " " + this.taskConfigs[taskType]?.name + " 已达上限,跳过"); continue; } console.log("🚀 " + this.getAccountDisplayName() + " 开始执行: " + this.taskConfigs[taskType]?.name); switch (taskType) { case "kool".split("").reverse().join(""): await this.executeLookTasks(); break; case "hcraes".split("").reverse().join(""): await this.executeSearchTasks(); break; case "box": await this.executeBoxTasks(); break; case "doof".split("").reverse().join(""): await this.executeFoodTasks(); break; case "kbox": await this.executeKboxTasks(); break; case "look_follow": console.log(" ️ℹ".split("").reverse().join("") + this.getAccountDisplayName() + "行执动自后功成务任 kool 在将 wollof_kool ".split("").reverse().join("")); break; case "search_follow": console.log("ℹ️ " + this.getAccountDisplayName() + " search_follow 将在 search 任务成功后自动执行"); break; default: console.log("❌ " + this.getAccountDisplayName() + " 未知任务类型: " + taskType); } var _0xb9adg; const isLastTask = taskType === this.tasksToExecute[this.tasksToExecute.length - 1]; _0xb9adg = 9; if (!isLastTask && !this.stopAllTasks && !this.taskLimitReached[taskType]) { const switchDelay = (Math.floor(Math.random() * (TASK_SWITCH_MAX - TASK_SWITCH_MIN + 1)) + TASK_SWITCH_MIN) * 1000; console.log(" ⏱".split("").reverse().join("") + this.getAccountDisplayName() + " 任务切换 等待 " + Math.round(switchDelay / 1000) + " 秒"); await new Promise(resolve => setTimeout(resolve, switchDelay)); } } console.log("✅ " + this.getAccountDisplayName() + "成完行执务任有所 ".split("").reverse().join("")); return {}; } async executeLookTasks() { console.log(" \uDCFA\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + " 开始执行看广告任务,计划执行 " + LOOK_COUNT + "次 ".split("").reverse().join("")); for (let i = 0; i < LOOK_COUNT; i++) { if (this.stopAllTasks || this.taskLimitReached.look) { console.log(" \uDED1\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + "止停已务任告广看 ".split("").reverse().join("")); break; } var _0x0be = 8; const currentCount = i + 1; _0x0be = 7; console.log(" \uDD0D\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + "第 务任告广看 ".split("").reverse().join("") + currentCount + "/" + LOOK_COUNT + " 次"); const lookResult = await this.executeTask("kool".split("").reverse().join("")); if (lookResult && this.tasksToExecute.includes("wollof_kool".split("").reverse().join("")) && !this.stopAllTasks && !this.taskLimitReached.look_follow && FOLLOW_COUNT > 0) { const followDelay = (Math.floor(Math.random() * (PRE_LOOK_FOLLOW_MAX - PRE_LOOK_FOLLOW_MIN + 1)) + PRE_LOOK_FOLLOW_MIN) * 1000; console.log(" ⏱".split("").reverse().join("") + this.getAccountDisplayName() + " 待等 wollof_kool→kool ".split("").reverse().join("") + Math.round(followDelay / 1000) + " 秒"); await new Promise(resolve => setTimeout(resolve, followDelay)); console.log(" \uDD04\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + " 开始执行追加看广告任务,计划执行 " + FOLLOW_COUNT + "次 ".split("").reverse().join("")); for (let j = 0; j < FOLLOW_COUNT; j++) { if (this.stopAllTasks || this.taskLimitReached.look_follow) { console.log(" \uDED1\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + "止停已务任告广看加追 ".split("").reverse().join("")); break; } var _0xa19a4e; const followCount = j + 1; _0xa19a4e = 8; console.log(" \uDCF1\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + " 追加看广告 第" + followCount + "/" + FOLLOW_COUNT + "次 ".split("").reverse().join("")); await this.executeTask("wollof_kool".split("").reverse().join("")); if (j < FOLLOW_COUNT - 1 && !this.stopAllTasks && !this.taskLimitReached.look_follow) { var _0xa128b; const betweenDelay = (Math.floor(Math.random() * (BETWEEN_LOOK_FOLLOW_MAX - BETWEEN_LOOK_FOLLOW_MIN + 1)) + BETWEEN_LOOK_FOLLOW_MIN) * 1000; _0xa128b = 16; console.log(" ⏱".split("").reverse().join("") + this.getAccountDisplayName() + " 待等 隔间 wollof_kool ".split("").reverse().join("") + Math.round(betweenDelay / 1000) + " 秒"); await new Promise(resolve => setTimeout(resolve, betweenDelay)); } } } if (i < LOOK_COUNT - 1 && !this.stopAllTasks && !this.taskLimitReached.look) { var _0x371bf; const roundDelay = (Math.floor(Math.random() * (ROUND_END_MAX - ROUND_END_MIN + 1)) + ROUND_END_MIN) * 1000; _0x371bf = 4; console.log(" ⏱".split("").reverse().join("") + this.getAccountDisplayName() + " 待等 隔间 kool ".split("").reverse().join("") + Math.round(roundDelay / 1000) + "秒 ".split("").reverse().join("")); await new Promise(resolve => setTimeout(resolve, roundDelay)); } } console.log("✅ " + this.getAccountDisplayName() + "成完行执务任告广看 ".split("").reverse().join("")); } async executeSearchTasks() { console.log(" \uDD0E\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + " 开始执行搜索任务,计划执行 " + SEARCH_COUNT + " 次"); for (let i = 0; i < SEARCH_COUNT; i++) { if (this.stopAllTasks || this.taskLimitReached.search) { console.log(" \uDED1\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + " 搜索任务已停止"); break; } const currentCount = i + 1; console.log("🔍 " + this.getAccountDisplayName() + "第 务任索搜 ".split("").reverse().join("") + currentCount + "/" + SEARCH_COUNT + "次 ".split("").reverse().join("")); var _0xd17f1e; const searchResult = await this.executeTask("hcraes".split("").reverse().join("")); _0xd17f1e = 7; if (searchResult && this.tasksToExecute.includes("search_follow") && !this.stopAllTasks && !this.taskLimitReached.search_follow && SEARCH_FOLLOW_COUNT > 0) { var _0x7d_0x127; const followDelay = (Math.floor(Math.random() * (PRE_SEARCH_FOLLOW_MAX - PRE_SEARCH_FOLLOW_MIN + 1)) + PRE_SEARCH_FOLLOW_MIN) * 1000; _0x7d_0x127 = 1; console.log("⏱ " + this.getAccountDisplayName() + " 待等 wollof_hcraes→hcraes ".split("").reverse().join("") + Math.round(followDelay / 1000) + " 秒"); await new Promise(resolve => setTimeout(resolve, followDelay)); console.log("🔄 " + this.getAccountDisplayName() + " 开始执行搜索追加任务,计划执行 " + SEARCH_FOLLOW_COUNT + "次 ".split("").reverse().join("")); for (let j = 0; j < SEARCH_FOLLOW_COUNT; j++) { if (this.stopAllTasks || this.taskLimitReached.search_follow) { console.log(" \uDED1\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + "止停已务任加追索搜 ".split("").reverse().join("")); break; } const followCount = j + 1; console.log("📱 " + this.getAccountDisplayName() + " 搜索追加 第" + followCount + "/" + SEARCH_FOLLOW_COUNT + " 次"); this.adAdditionalNum++; await this.executeTask("wollof_hcraes".split("").reverse().join("")); this.adAdditionalNum = 0; if (j < SEARCH_FOLLOW_COUNT - 1 && !this.stopAllTasks && !this.taskLimitReached.search_follow) { var _0xaefecf; const betweenDelay = (Math.floor(Math.random() * (BETWEEN_SEARCH_FOLLOW_MAX - BETWEEN_SEARCH_FOLLOW_MIN + 1)) + BETWEEN_SEARCH_FOLLOW_MIN) * 1000; _0xaefecf = 8; console.log(" ⏱".split("").reverse().join("") + this.getAccountDisplayName() + " search_follow 间隔 等待 " + Math.round(betweenDelay / 1000) + "秒 ".split("").reverse().join("")); await new Promise(resolve => setTimeout(resolve, betweenDelay)); } } } if (i < SEARCH_COUNT - 1 && !this.stopAllTasks && !this.taskLimitReached.search) { var _0x48914d; const roundDelay = (Math.floor(Math.random() * (ROUND_END_MAX - ROUND_END_MIN + 1)) + ROUND_END_MIN) * 1000; _0x48914d = 1; console.log("⏱ " + this.getAccountDisplayName() + " search 间隔 等待 " + Math.round(roundDelay / 1000) + " 秒"); await new Promise(resolve => setTimeout(resolve, roundDelay)); } } console.log("✅ " + this.getAccountDisplayName() + "成完行执务任索搜 ".split("").reverse().join("")); } async executeBoxTasks() { console.log(" \uDF81\uD83C".split("").reverse().join("") + this.getAccountDisplayName() + " 行执划计,务任箱宝行执始开 ".split("").reverse().join("") + BOX_COUNT + " 次"); for (let i = 0; i < BOX_COUNT; i++) { if (this.stopAllTasks || this.taskLimitReached.box) { console.log(" \uDED1\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + " 宝箱任务已停止"); break; } var _0x3545ca; const currentCount = i + 1; _0x3545ca = 18; console.log(" \uDD0D\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + "第 务任箱宝 ".split("").reverse().join("") + currentCount + "/" + BOX_COUNT + "次 ".split("").reverse().join("")); await this.executeTask("xob".split("").reverse().join("")); if (i < BOX_COUNT - 1 && !this.stopAllTasks && !this.taskLimitReached.box) { var _0x4fe8bb = 7; const switchDelay = (Math.floor(Math.random() * (TASK_SWITCH_MAX - TASK_SWITCH_MIN + 1)) + TASK_SWITCH_MIN) * 1000; _0x4fe8bb = 1; console.log("⏱ " + this.getAccountDisplayName() + " 待等 隔间 xob ".split("").reverse().join("") + Math.round(switchDelay / 1000) + "秒 ".split("").reverse().join("")); await new Promise(resolve => setTimeout(resolve, switchDelay)); } } console.log("✅ " + this.getAccountDisplayName() + " 宝箱任务执行完成"); } async executeFoodTasks() { console.log("🍚 " + this.getAccountDisplayName() + " 行执划计,务任补饭行执始开 ".split("").reverse().join("") + FOOD_COUNT + " 次"); for (let i = 0; i < FOOD_COUNT; i++) { if (this.stopAllTasks || this.taskLimitReached.food) { console.log("🛑 " + this.getAccountDisplayName() + " 饭补任务已停止"); break; } var _0x5fee = 16; const currentCount = i + 1; _0x5fee = "kbmihh"; console.log("🔍 " + this.getAccountDisplayName() + " 饭补任务 第" + currentCount + "/" + FOOD_COUNT + " 次"); await this.executeTask("food"); if (i < FOOD_COUNT - 1 && !this.stopAllTasks && !this.taskLimitReached.food) { var _0x31b; const switchDelay = (Math.floor(Math.random() * (TASK_SWITCH_MAX - TASK_SWITCH_MIN + 1)) + TASK_SWITCH_MIN) * 1000; _0x31b = 9; console.log("⏱ " + this.getAccountDisplayName() + " food 间隔 等待 " + Math.round(switchDelay / 1000) + " 秒"); await new Promise(resolve => setTimeout(resolve, switchDelay)); } } console.log("✅ " + this.getAccountDisplayName() + "成完行执务任补饭 ".split("").reverse().join("")); } async executeKboxTasks() { console.log(" \uDCE6\uD83D".split("").reverse().join("") + this.getAccountDisplayName() + " 开始执行开宝箱任务,计划执行 " + KBOX_COUNT + "次 ".split("").reverse().join("")); for (let i = 0; i < KBOX_COUNT; i++) { if (this.stopAllTasks || this.taskLimitReached.kbox) { console.log("🛑 " + this.getAccountDisplayName() + " 开宝箱任务已停止"); break; } var _0xd4e7fb; const currentCount = i + 1; _0xd4e7fb = 4; console.log("🔍 " + this.getAccountDisplayName() + " 开宝箱任务 第" + currentCount + "/" + KBOX_COUNT + "次 ".split("").reverse().join("")); await this.executeTask("kbox"); if (i < KBOX_COUNT - 1 && !this.stopAllTasks && !this.taskLimitReached.kbox) { var _0x76833a; const switchDelay = (Math.floor(Math.random() * (TASK_SWITCH_MAX - TASK_SWITCH_MIN + 1)) + TASK_SWITCH_MIN) * 1000; _0x76833a = "jomdcn".split("").reverse().join(""); console.log("⏱ " + this.getAccountDisplayName() + " kbox 间隔 等待 " + Math.round(switchDelay / 1000) + "秒 ".split("").reverse().join("")); await new Promise(resolve => setTimeout(resolve, switchDelay)); } } console.log("✅ " + this.getAccountDisplayName() + " 开宝箱任务执行完成"); } } function parseAccountString(accountStr, _0x1a9df, _0xc7755a, _0x18a74d) { const _0x9aacc = String(accountStr || "").trim(); if (!_0x9aacc) { return null; } _0x1a9df = ""; _0xc7755a = ""; var _0x8cf4f; _0x18a74d = ""; _0x8cf4f = 1; let _0xe7eeg = null; if (_0x9aacc.includes("#")) { var _0xa4adae = 8; const _0xg5ffc = _0x9aacc.split("#"); _0xa4adae = 5; if (_0xg5ffc.length === 2) { _0x18a74d = _0xg5ffc[0]; _0xc7755a = _0xg5ffc[1]; } else if (_0xg5ffc.length === 3) { if (new RegExp("^socks5:\\/\\/", "i").test(_0xg5ffc[2]) || _0xg5ffc[2].includes("|")) { _0x18a74d = _0xg5ffc[0]; _0xc7755a = _0xg5ffc[1]; _0xe7eeg = _0xg5ffc[2]; } else { _0x1a9df = _0xg5ffc[0]; _0x18a74d = _0xg5ffc[1]; _0xc7755a = _0xg5ffc[2]; } } else if (_0xg5ffc.length >= 4) { _0x1a9df = _0xg5ffc[0]; _0x18a74d = _0xg5ffc[1]; _0xc7755a = _0xg5ffc.slice(2, _0xg5ffc.length - 1).join("#"); _0xe7eeg = _0xg5ffc[_0xg5ffc.length - 1]; } } else { _0x18a74d = _0x9aacc; _0xc7755a = ""; } if (_0xe7eeg) { if (_0xe7eeg === "0" || _0xe7eeg.toLowerCase() === "none") { _0xe7eeg = null; } else if (_0xe7eeg.includes("|")) { const _0x3d1e = _0xe7eeg.split("|"); if (_0x3d1e.length >= 2) { const [ip, port, username = "", password = ""] = _0x3d1e.map(part => String(part || "").trim()); if (ip && port) { const _0x2g38eb = username || password ? encodeURIComponent(username) + ":" + encodeURIComponent(password) + "@" : ""; _0xe7eeg = "//:5skcos".split("").reverse().join("") + _0x2g38eb + ip + ":" + port; } else { _0xe7eeg = null; } } else { _0xe7eeg = null; } } } return { "remark": _0x1a9df || "", "salt": _0xc7755a, "cookie": _0x18a74d, "proxyUrl": _0xe7eeg }; } function getAllAccountConfigs() { const _0xg8ec = parseAccountsFromEnv(); var _0x98ed7g; const _0x59c2g = []; _0x98ed7g = "ejaffd".split("").reverse().join(""); for (const _0x13_0x145 of _0xg8ec) { const _0x56a68a = parseAccountString(_0x13_0x145); if (_0x56a68a) { _0x59c2g.push(_0x56a68a); } else { console.log(":误错式格号账".split("").reverse().join("") + _0x13_0x145); } } _0x59c2g.forEach((config, index) => { config.index = index + 1; }); return _0x59c2g; } async function executeConcurrently(items, concurrency, processor, _0x48d90d) { var _0x1c6ce; const _0x87c6c = new Array(items.length); _0x1c6ce = 12; _0x48d90d = 0; async function _0x9bf2b() { while (true) { var _0x5eec; const _0xdca62d = _0x48d90d++; _0x5eec = 4; if (_0xdca62d >= items.length) { return; } var _0x0e7edc = 17; const _0xd696df = items[_0xdca62d]; _0x0e7edc = 8; try { _0x87c6c[_0xdca62d] = await processor(_0xd696df, _0xdca62d); } catch (error) { console.log("=xedni(常异行执发并".split("").reverse().join("") + (_0xdca62d + 1) + "):" + error.message); _0x87c6c[_0xdca62d] = null; } } } var _0x35c4e = 8; const _0x84f86e = Array.from({ "length": Math.min(concurrency, items.length) }, _0x9bf2b); _0x35c4e = 2; await Promise.all(_0x84f86e); return _0x87c6c; } function formatAccountDisplay(index, nickname, remark) { var _0xb566c = 11; const _0x2a905b = "账号[" + (nickname || index) + "]" + (remark ? "(" + remark + ")" : ""); _0xb566c = 0; return colors.bright + colors.cyan + _0x2a905b + colors.reset; } async function processAccount(accountConfig) { if (accountConfig.proxyUrl) { var _0x47a82d; const accountDisplay = formatAccountDisplay(accountConfig.index, null, accountConfig.remark); _0x47a82d = 9; var _0xa2_0x4f0; const _0x3d61f = await testProxyConnectivity(accountConfig.proxyUrl, accountDisplay); _0xa2_0x4f0 = 6; console.log(" - " + (_0x3d61f.ok ? "过通证验理代 ✅".split("").reverse().join("") : "败失证验理代 ❌".split("").reverse().join("")) + " :".split("").reverse().join("") + _0x3d61f.msg); if (_0x3d61f.ok && _0x3d61f.ip && _0x3d61f.ip !== "localhost") { if (usedProxyIPs.has(_0x3d61f.ip)) { console.log("⚠️ 存在相同代理IP(" + _0x3d61f.ip + "),继续执行其余账号..."); } else { usedProxyIPs.add(_0x3d61f.ip); } console.log(" \uDF10\uD83C".split("").reverse().join("") + accountDisplay + " 使用代理: " + accountConfig.proxyUrl); } else if (!_0x3d61f.ok) { console.log("❌ " + accountDisplay + "号账该过跳,败失试测理代 ".split("").reverse().join("")); return { "index": accountConfig.index, "remark": accountConfig.remark || "无备注", "nickname": "号账".split("").reverse().join("") + accountConfig.index, "initialCoin": 0, "finalCoin": 0, "coinChange": 0, "initialCash": 0, "finalCash": 0, "cashChange": 0, "error": "代理测试失败: " + _0x3d61f.msg, "skipped": true }; } } else { const accountDisplay = formatAccountDisplay(accountConfig.index, null, accountConfig.remark); console.log("🌐 " + accountDisplay + " 未配置代理,走直连"); } var _0xd463c = 11; const accountDisplay = formatAccountDisplay(accountConfig.index, null, accountConfig.remark); _0xd463c = "bjhdio".split("").reverse().join(""); console.log("🔍 " + accountDisplay + "...中息信号账取获 ".split("").reverse().join("")); var _0x57b; let _0xbe_0x102 = await getAccountBasicInfo(accountConfig.cookie, accountConfig.proxyUrl, accountConfig.index); _0x57b = "nhnlbn".split("").reverse().join(""); var _0xf2f = 13; let _0x91aa = _0xbe_0x102?.nickname || "号账".split("").reverse().join("") + accountConfig.index; _0xf2f = 9; if (_0xbe_0x102) { var _0xd4afff; const _0x57b3b = _0xbe_0x102.totalCoin != null ? _0xbe_0x102.totalCoin : "未知"; _0xd4afff = 10; var _0x1bcf = 7; const _0xba9be = _0xbe_0x102.allCash != null ? _0xbe_0x102.allCash : "未知"; _0x1bcf = 9; const fullDisplay = formatAccountDisplay(accountConfig.index, _0x91aa, accountConfig.remark); var _0x38ce6d = 5; const _0x5cg86a = _0xbe_0x102.ud ? ",UD: " + _0xbe_0x102.ud : ""; _0x38ce6d = 1; if (enableColors) { console.log("✅ " + fullDisplay + " :币金前当 \uDCB0\uD83D,功成录登 ".split("").reverse().join("") + formatSuccess(_0x57b3b) + " :额余前当 \uDCB8\uD83D,".split("").reverse().join("") + colorText(_0xba9be, colors.bright + colors.yellow) + _0x5cg86a); } else { console.log(" ✅".split("").reverse().join("") + fullDisplay + " :币金前当 \uDCB0\uD83D,功成录登 ".split("").reverse().join("") + _0x57b3b + " :额余前当 \uDCB8\uD83D,".split("").reverse().join("") + _0xba9be + _0x5cg86a); } } else { const fullDisplay = formatAccountDisplay(accountConfig.index, _0x91aa, accountConfig.remark); console.log("❌ " + fullDisplay + " 基本信息获取失败,但仍继续执行任务"); } const _0x1dd8da = _0xbe_0x102?.ud || null; var _0x6a7d5b; const _0xc2abe = new KuaishouAccount({ ...accountConfig, "nickname": _0x91aa, "tasksToExecute": tasksToExecute, "udFromLogin": _0x1dd8da }); _0x6a7d5b = 4; if (_0xbe_0x102) { await _0xc2abe.checkCoinLimit(); if (_0xc2abe.coinExceeded) { console.log("⚠️ " + _0xc2abe.getAccountDisplayName() + " 初始金币已超过阈值,不执行任务"); const finalInfo = await getAccountBasicInfo(_0xc2abe.getCookieWithCurrentDid(), accountConfig.proxyUrl, accountConfig.index); var _0x18fg; const initialCoins = _0xbe_0x102?.totalCoin || 0; _0x18fg = 9; const finalCoins = finalInfo?.totalCoin || 0; const coinChange = finalCoins - initialCoins; var _0xc2136c; const initialCash = _0xbe_0x102?.allCash || 0; _0xc2136c = 14; var _0xa9bdc = 15; const finalCash = finalInfo?.allCash || 0; _0xa9bdc = "fhfbgq".split("").reverse().join(""); var _0x6abeeb = 11; const cashChange = finalCash - initialCash; _0x6abeeb = "opmqlm"; return { "index": accountConfig.index, "remark": accountConfig.remark || "无备注", "nickname": _0x91aa, "initialCoin": initialCoins, "finalCoin": finalCoins, "coinChange": coinChange, "initialCash": initialCash, "finalCash": finalCash, "cashChange": cashChange, "stats": _0xc2abe.getTaskStats(), "coinLimitExceeded": true }; } } await _0xc2abe.executeAllTasksByPriority(); var _0xacgcc = 14; const finalInfo = await getAccountBasicInfo(_0xc2abe.getCookieWithCurrentDid(), accountConfig.proxyUrl, accountConfig.index); _0xacgcc = 10; const initialCoins = _0xbe_0x102?.totalCoin || 0; var _0x7d477d; const finalCoins = finalInfo?.totalCoin || 0; _0x7d477d = 7; var _0x66ba = 11; const coinChange = finalCoins - initialCoins; _0x66ba = "kbfgoc".split("").reverse().join(""); var _0xb_0x2d2 = 6; const initialCash = _0xbe_0x102?.allCash || 0; _0xb_0x2d2 = "jhnlcp".split("").reverse().join(""); const finalCash = finalInfo?.allCash || 0; var _0xbac4ed = 5; const cashChange = finalCash - initialCash; _0xbac4ed = "defgne".split("").reverse().join(""); _0xc2abe.printTaskStats(); return { "index": accountConfig.index, "remark": accountConfig.remark || "无备注", "nickname": _0x91aa, "initialCoin": initialCoins, "finalCoin": finalCoins, "coinChange": coinChange, "initialCash": initialCash, "finalCash": finalCash, "cashChange": cashChange, "stats": _0xc2abe.getTaskStats(), "coinLimitExceeded": _0xc2abe.coinExceeded, "infoFetchFailed": !_0xbe_0x102 }; } function displayResultsTable(results, _0x59dc9e, _0x5a_0x8da, _0x265a6b, _0x540f4g, _0x87gfba) { if (!results.length) { console.log("\n没有可显示的账号信息。"); return; } var _0x41a1d = 8; const _0xd49c6g = results.reduce((sum, account) => sum + (parseInt(account.initialCoin) || 0), 0); _0x41a1d = 4; const _0x6c56c = results.reduce((sum, account) => sum + (parseInt(account.finalCoin) || 0), 0); const _0x89dc = _0x6c56c - _0xd49c6g; var _0xed3a; const _0xf_0x7e3 = results.reduce((sum, account) => sum + (parseFloat(account.initialCash) || 0), 0); _0xed3a = 6; const _0x7f8cf = results.reduce((sum, account) => sum + (parseFloat(account.finalCash) || 0), 0); const _0x5f78df = _0x7f8cf - _0xf_0x7e3; _0x59dc9e = 0; var _0xdb31c; _0x5a_0x8da = 0; _0xdb31c = 4; _0x265a6b = 0; results.forEach(account => { if (account.stats) { Object.values(account.stats).forEach(taskStats => { _0x59dc9e += taskStats.success + taskStats.failed; _0x5a_0x8da += taskStats.success; _0x265a6b += taskStats.totalReward; }); } }); var _0x44d5ee = 10; const _0x24bd1f = _0x59dc9e > 0 ? (_0x5a_0x8da / _0x59dc9e * 100).toFixed(1) : "0.0".split("").reverse().join(""); _0x44d5ee = 2; var _0x9_0xg59; const _0xcacf1d = results.filter(account => account.coinLimitExceeded).length; _0x9_0xg59 = 2; const _0x39d2d = results.filter(account => account.skipped).length; const _0xc4628e = results.filter(account => account.infoFetchFailed).length; console.log("\n\n" + "=".repeat(80)); console.log("|" + centerText(" 快手极速版自动化任务执行结果汇总表 ", 78) + "|"); console.log("=".repeat(80)); console.log("|" + (" :数号账总".split("").reverse().join("") + results.length).padEnd(22) + (" :号账过跳".split("").reverse().join("") + _0x39d2d).padEnd(22) + ("总任务数: " + _0x59dc9e).padEnd(22) + (" :率功成务任".split("").reverse().join("") + _0x24bd1f + "%").padEnd(10) + "|"); console.log("|" + ("总金币变化: " + _0x89dc).padEnd(26) + (" :励奖币金总".split("").reverse().join("") + _0x265a6b).padEnd(26) + ("总余额变化: " + _0x5f78df.toFixed(2)).padEnd(24) + "|"); console.log("-".repeat(80)); var _0x73d8g = 7; const _0x6aa9ed = ["序号", "备注", "称昵号账".split("").reverse().join(""), "初始金币", "币金终最".split("").reverse().join(""), "化变币金".split("").reverse().join(""), "初始余额", "额余终最".split("").reverse().join(""), "余额变化", "态状".split("").reverse().join("")]; _0x73d8g = 6; const _0xab7f = [6, 16, 16, 12, 12, 12, 12, 12, 12, 10]; _0x540f4g = "|"; _0x6aa9ed.forEach((header, index) => { _0x540f4g += centerText(header, _0xab7f[index]) + "|"; }); console.log(_0x540f4g); _0x87gfba = "|"; _0xab7f.forEach(width => { _0x87gfba += "-".repeat(width) + "|"; }); console.log(_0x87gfba); results.forEach(account => { let _0x3cc4d = "|"; _0x3cc4d += centerText(account.index, _0xab7f[0]) + "|"; _0x3cc4d += centerText(account.remark, _0xab7f[1]) + "|"; let _0xfb21gd = account.nickname || "-"; if (account.skipped) _0xfb21gd += "❌ ".split("").reverse().join("");else if (account.coinLimitExceeded) _0xfb21gd += "️⚠ ".split("").reverse().join("");else if (account.infoFetchFailed) _0xfb21gd += "\uDD36\uD83D ".split("").reverse().join(""); _0x3cc4d += centerText(_0xfb21gd.substring(0, _0xab7f[2] - 2), _0xab7f[2]) + "|"; _0x3cc4d += centerText(account.initialCoin, _0xab7f[3]) + "|"; _0x3cc4d += centerText(account.finalCoin, _0xab7f[4]) + "|"; var _0x098bf = 10; const _0x5g9c = account.coinChange >= 0 ? "+" + account.coinChange : account.coinChange; _0x098bf = 15; _0x3cc4d += centerText(_0x5g9c, _0xab7f[5]) + "|"; _0x3cc4d += centerText(account.initialCash, _0xab7f[6]) + "|"; _0x3cc4d += centerText(account.finalCash, _0xab7f[7]) + "|"; var _0x99522d = 10; const _0x82f = account.cashChange >= 0 ? "+" + account.cashChange.toFixed(2) : account.cashChange.toFixed(2); _0x99522d = 5; _0x3cc4d += centerText(_0x82f, _0xab7f[8]) + "|"; let _0x584d = "成完".split("").reverse().join(""); if (account.skipped) _0x584d = "跳过";else if (account.coinLimitExceeded) _0x584d = "限超".split("").reverse().join("");else if (account.infoFetchFailed) _0x584d = "息信无".split("").reverse().join(""); _0x3cc4d += centerText(_0x584d, _0xab7f[9]) + "|"; console.log(_0x3cc4d); }); console.log("=".repeat(80)); console.log("|" + centerText(" 任务执行完成,请查看详细结果 ", 78) + "|"); console.log("=".repeat(80)); } async function testSignService() { try { var _0x5ca3c = 12; const _0xba8c4a = { "type": "encsign", "data": "dGVzdF9kYXRh", "ud": "test_user", "script_version": SCRIPT_VERSION }; _0x5ca3c = 7; const { "response": response, "body": body } = await sendRequest({ "method": "POST", "url": "https://ks.yubin8.dpdns.org/encsign", "body": JSON.stringify(_0xba8c4a), "headers": { "Content-Type": "application/json" }, "timeout": 10000 }, null, "encsign签名服务测试"); if (!response) { console.log("应响无 :败失试测务服名签ngiscne ❌".split("").reverse().join("")); return false; } if (body && body.status) { console.log("功成试测务服名签ngiscne ✅".split("").reverse().join("")); return true; } else { console.log(" :败失试测务服名签ngiscne ❌".split("").reverse().join("") + (body?.message || "未知错误")); return false; } } catch (error) { console.log("❌ encsign签名服务测试异常: " + error.message); return false; } } async function testNssigService() { try { const _0x16_0x4a4 = getOrCreateDeviceId(); var _0xa01efd; const _0x792gfa = { "type": "nssig", "path": "/rest/e/reward/mixed/ad", "data": "test=data&salt=test_salt", "salt": "test_salt", "ud": "test_user", "script_version": SCRIPT_VERSION, "device_id": _0x16_0x4a4 }; _0xa01efd = 14; const { "response": response, "body": body } = await sendRequest({ "method": "POST", "url": "https://ks.yubin8.dpdns.org/nssig", "body": JSON.stringify(_0x792gfa), "headers": { "Content-Type": "application/json" }, "timeout": 10000 }, null, "试测务服名签gissn".split("").reverse().join("")); if (!response) { console.log("❌ nssig签名服务测试失败: 无响应"); return false; } if (body && body.status) { console.log("✅ nssig签名服务测试成功"); return true; } else { console.log("❌ nssig签名服务测试失败: " + (body?.message || "未知错误")); return false; } } catch (error) { console.log(" :常异试测务服名签gissn ❌".split("").reverse().join("") + error.message); return false; } } (async () => { console.log("证验密卡需无,本版费免友妖 ✅".split("").reverse().join("")); const deviceId = getOrCreateDeviceId(); console.log(" :DI备设 \uDCF1\uD83D".split("").reverse().join("") + deviceId); var _0x46c4d = 14; const encsignTest = await testSignService(); _0x46c4d = 1; const nssigTest = await testNssigService(); if (!encsignTest || !nssigTest) { console.log("\n❌ 签名服务测试失败,脚本终止执行"); console.log("💡 请检查以下问题:"); console.log(" 1. 网络连接是否正常"); console.log(" 2. 签名服务地址是否正确: https://ks.yubin8.dpdns.org"); console.log(" 3. 服务是否可用"); console.log(" 4. 防火墙或代理设置"); process.exit(1); } var _0x6c5acd; const accountConfigs = getAllAccountConfigs(); _0x6c5acd = 7; if (!accountConfigs.length) { console.error("息信号账置配未 :误错 ❌\n".split("").reverse().join("")); console.log("\n💡 请设置环境变量 ksck 或 ksck1, ksck2... 来配置账号"); process.exit(1); } console.log("═══════════════════════════════════════════════════════════════".split("").reverse().join("")); console.log(":息信置配前当 \uDCCB\uD83D".split("").reverse().join("")); console.log(" 金币上限 (KSCOIN_LIMIT): " + COIN_LIMIT); console.log(" :)DLOHSERHT_DRAWER_WOLSK( 值阈励奖低 ".split("").reverse().join("") + LOW_REWARD_THRESHOLD); console.log(" :)TIMIL_DRAWER_WOLSK( 限上励奖低续连 ".split("").reverse().join("") + LOW_REWARD_LIMIT); console.log(" 并发策略: 每个账号同时进行 (" + accountCount + " 并发)"); console.log(" 跳过直播广告 (SKIP_LIVE_ADS): " + (SKIP_LIVE_ADS ? "启用,重试" + SKIP_LIVE_MAX_RETRIES + "次" : "用禁".split("").reverse().join(""))); console.log(" :)ksaT( 务任行执 ".split("").reverse().join("") + tasksToExecute.join(" ,".split("").reverse().join(""))); if (tasksToExecute.includes("kool".split("").reverse().join(""))) { console.log(" :)TNUOC_KOOLSK( 数次行执总 kool ".split("").reverse().join("") + LOOK_COUNT); } if (tasksToExecute.includes("box")) { console.log(" :)TNUOC_XOBSK( 数次行执总 xob ".split("").reverse().join("") + BOX_COUNT); } if (tasksToExecute.includes("food")) { console.log(" :)TNUOC_DOOFSK( 数次行执总 doof ".split("").reverse().join("") + FOOD_COUNT); } if (tasksToExecute.includes("kbox")) { console.log(" kbox 总执行次数 (KSKBOX_COUNT): " + KBOX_COUNT); } if (tasksToExecute.includes("hcraes".split("").reverse().join(""))) { console.log(" :)TNUOC_HCRAESSK( 数次行执总 hcraes ".split("").reverse().join("") + SEARCH_COUNT); } if (tasksToExecute.includes("look_follow")) { console.log(" 每次 look 成功追加 look_follow 次数 (KSFOLLOW_COUNT): " + FOLLOW_COUNT); } if (tasksToExecute.includes("search_follow")) { console.log(" :)TNUOC_WOLLOFHCRAESSK( 数次 wollof_hcraes 加追功成 hcraes 次每 ".split("").reverse().join("") + SEARCH_FOLLOW_COUNT); } console.log("公益接口,撑不住就进群提醒我修复 1029832220"); console.log("═══════════════════════════════════════════════════════════════\n"); console.log(" 共,务任行执始开 \uDE80\uD83D".split("").reverse().join("") + accountConfigs.length + "\n...号账个 ".split("").reverse().join("")); const results = []; const concurrency = Math.max(1, Math.min(MAX_CONCURRENCY, accountConfigs.length)); await executeConcurrently(accountConfigs, concurrency, async accountConfig => { try { var _0x1eab9a = 10; const accountResult = await processAccount(accountConfig); _0x1eab9a = 1; results.push({ "index": accountConfig.index, "remark": accountConfig.remark || "无备注", "nickname": accountResult?.nickname || "账号" + accountConfig.index, "initialCoin": accountResult?.initialCoin || 0, "finalCoin": accountResult?.finalCoin || 0, "coinChange": accountResult?.coinChange || 0, "initialCash": accountResult?.initialCash || 0, "finalCash": accountResult?.finalCash || 0, "cashChange": accountResult?.cashChange || 0, "stats": accountResult?.stats || {}, "coinLimitExceeded": accountResult?.coinLimitExceeded || false, "skipped": accountResult?.skipped || false, "infoFetchFailed": accountResult?.infoFetchFailed || false, "error": accountResult?.error || null }); } catch (error) { console.log("账号[" + accountConfig.index + "]" + (accountConfig.remark ? "(" + accountConfig.remark + ")" : "") + " ❌ 执行异常:" + error.message); results.push({ "index": accountConfig.index, "remark": accountConfig.remark || "注备无".split("").reverse().join(""), "nickname": "账号" + accountConfig.index, "initialCoin": 0, "finalCoin": 0, "coinChange": 0, "initialCash": 0, "finalCash": 0, "cashChange": 0, "error": error.message, "skipped": true }); } }); results.sort((a, b) => a.index - b.index); console.log("\n全部完成。", "✅"); console.log("\n---------------------------------------------- 账号信息汇总 ----------------------------------------------"); displayResultsTable(results); })();