From e2d43bd1a0dca492d5cd2c227f025aeec526b161 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 15 Jul 2021 21:43:31 -0400 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=8E=2007-15=2021:43?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TS_USER_AGENTS.js | 143 +++++++++++- jd_cfd.js | 545 ++++++++++++++++++++++++++++------------------ 2 files changed, 469 insertions(+), 219 deletions(-) diff --git a/TS_USER_AGENTS.js b/TS_USER_AGENTS.js index 3ddcc83..3125257 100755 --- a/TS_USER_AGENTS.js +++ b/TS_USER_AGENTS.js @@ -1,5 +1,43 @@ "use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; exports.__esModule = true; +exports.getFarmShareCode = exports.getBeanShareCode = exports.TotalBean = void 0; +var axios_1 = require("axios"); var USER_AGENTS = [ "jdapp;android;10.0.2;10;network/wifi;Mozilla/5.0 (Linux; Android 10; ONEPLUS A5010 Build/QKQ1.191014.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045230 Mobile Safari/537.36", "jdapp;iPhone;10.0.2;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", @@ -38,15 +76,100 @@ var USER_AGENTS = [ "jdapp;android;10.0.2;10;network/wifi;Mozilla/5.0 (Linux; Android 10; MI 8 Build/QKQ1.190828.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045227 Mobile Safari/537.36", "jdapp;iPhone;10.0.2;14.1;network/wifi;Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1", ]; -/** - * 生成随机数字 - * @param {number} min 最小值(包含) - * @param {number} max 最大值(不包含) - */ -function randomNumber(min, max) { - if (min === void 0) { min = 0; } - if (max === void 0) { max = 100; } - return Math.min(Math.floor(min + Math.random() * (max - min)), max); +function getRandomNumberByRange(start, end) { + return Math.floor(Math.random() * (end - start) + start); } -var USER_AGENT = USER_AGENTS[randomNumber(0, USER_AGENTS.length)]; +var USER_AGENT = USER_AGENTS[getRandomNumberByRange(0, USER_AGENTS.length)]; +function getBeanShareCode(cookie) { + var _a, _b; + return __awaiter(this, void 0, void 0, function () { + var data; + return __generator(this, function (_c) { + switch (_c.label) { + case 0: return [4 /*yield*/, axios_1["default"].post('https://api.m.jd.com/client.action', "functionId=plantBeanIndex&body=" + escape(JSON.stringify({ version: "9.0.0.1", "monitor_source": "plant_app_plant_index", "monitor_refer": "" })) + "&appid=ld&client=apple&area=5_274_49707_49973&build=167283&clientVersion=9.1.0", { + headers: { + Cookie: cookie, + Host: "api.m.jd.com", + Accept: "*/*", + Connection: "keep-alive", + "User-Agent": USER_AGENT + } + })]; + case 1: + data = (_c.sent()).data; + if ((_b = (_a = data.data) === null || _a === void 0 ? void 0 : _a.jwordShareInfo) === null || _b === void 0 ? void 0 : _b.shareUrl) + return [2 /*return*/, data.data.jwordShareInfo.shareUrl.split('Uuid=')[1]]; + else + return [2 /*return*/, '']; + return [2 /*return*/]; + } + }); + }); +} +exports.getBeanShareCode = getBeanShareCode; +function getFarmShareCode(cookie) { + return __awaiter(this, void 0, void 0, function () { + var data; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, axios_1["default"].post('https://api.m.jd.com/client.action?functionId=initForFarm', "body=" + escape(JSON.stringify({ "version": 4 })) + "&appid=wh5&clientVersion=9.1.0", { + headers: { + "cookie": cookie, + "origin": "https://home.m.jd.com", + "referer": "https://home.m.jd.com/myJd/newhome.action", + "User-Agent": USER_AGENT, + "Content-Type": "application/x-www-form-urlencoded" + } + })]; + case 1: + data = (_a.sent()).data; + if (data.farmUserPro) + return [2 /*return*/, data.farmUserPro.shareCode]; + else + return [2 /*return*/, '']; + return [2 /*return*/]; + } + }); + }); +} +exports.getFarmShareCode = getFarmShareCode; +function TotalBean(cookie) { + var totalBean = { + isLogin: true, + nickName: '' + }; + return new Promise(function (resolve) { + axios_1["default"].get('https://me-api.jd.com/user_new/info/GetJDUserInfoUnion', { + headers: { + Host: "me-api.jd.com", + Connection: "keep-alive", + Cookie: cookie, + "User-Agent": USER_AGENT, + "Accept-Language": "zh-cn", + "Referer": "https://home.m.jd.com/myJd/newhome.action?sceneval=2&ufc=&", + "Accept-Encoding": "gzip, deflate, br" + } + }).then(function (res) { + if (res.data) { + var data = res.data; + if (data['retcode'] === "1001") { + totalBean.isLogin = false; //cookie过期 + } + if (data['retcode'] === "0" && data['data'] && data.data.hasOwnProperty("userInfo")) { + totalBean.isLogin = true; + totalBean.nickName = data.data.userInfo.baseInfo.nickname; + } + resolve(totalBean); + } + else { + console.log('京东服务器返回空数据'); + resolve(totalBean); + } + })["catch"](function (e) { + console.log('Error:', e); + resolve(totalBean); + }); + }); +} +exports.TotalBean = TotalBean; exports["default"] = USER_AGENT; \ No newline at end of file diff --git a/jd_cfd.js b/jd_cfd.js index f819205..86a183f 100755 --- a/jd_cfd.js +++ b/jd_cfd.js @@ -4,8 +4,8 @@ * 包含雇佣导游,建议每小时1次 * * 此版本暂定默认帮助HelloWorld,帮助助力池 - * export CFD_HELP_HW = true // 帮助HelloWorld - * export CFD_HELP_POOL = true // 帮助助力池 + * export HELP_HW = true // 帮助HelloWorld + * export HELP_POOL = true // 帮助助力池 * * 使用jd_env_copy.js同步js环境变量到ts * 使用jd_ts_test.ts测试环境变量 @@ -58,81 +58,197 @@ var TS_USER_AGENTS_1 = require("./TS_USER_AGENTS"); var ts_md5_1 = require("ts-md5"); var dotenv = require("dotenv"); var CryptoJS = require('crypto-js'); +var notify = require('./sendNotify'); dotenv.config(); -var appId = 10028, fingerprint, token, enCryptMethodJD; +var appId = 10028, fingerprint, token = '', enCryptMethodJD; var cookie = '', cookiesArr = [], res = '', shareCodes = []; -var CFD_HELP_HW = process.env.CFD_HELP_HW ? process.env.CFD_HELP_HW : "true"; -console.log('帮助HelloWorld:', CFD_HELP_HW); -var CFD_HELP_POOL = process.env.CFD_HELP_POOL ? process.env.CFD_HELP_POOL : "true"; -console.log('帮助助力池:', CFD_HELP_POOL); -var UserName, index, isLogin, nickName; +var HELP_HW = process.env.HELP_HW ? process.env.HELP_HW : "true"; +console.log('帮助HelloWorld:', HELP_HW); +var HELP_POOL = process.env.HELP_POOL ? process.env.HELP_POOL : "true"; +console.log('帮助助力池:', HELP_POOL); +var UserName, index; !(function () { return __awaiter(void 0, void 0, void 0, function () { - var i, e_1, dwUserId, bags, _i, _a, s, strTypeCnt, n, tasks, _b, _c, t, _d, _e, e, employ, _f, _g, t, _h, _j, b, data, e_2, data, e_3, i, j; - return __generator(this, function (_k) { - switch (_k.label) { + var i, _a, isLogin, nickName, e_1, strDT, strMyShareId, i_1, RealTmReport, j, _i, _b, stage, awardRes, employee, _c, employee_1, emp, empRes, _d, _e, sign, shipRes, bags, _f, _g, s, strTypeCnt, n, tasks, _h, _j, t, _k, _l, e, employ, _m, _o, t, _p, _q, b, data, e_2, data, e_3, i, j; + return __generator(this, function (_r) { + switch (_r.label) { case 0: return [4 /*yield*/, requestAlgo()]; case 1: - _k.sent(); + _r.sent(); return [4 /*yield*/, requireConfig()]; case 2: - _k.sent(); + _r.sent(); i = 0; - _k.label = 3; + _r.label = 3; case 3: - if (!(i < cookiesArr.length)) return [3 /*break*/, 48]; + if (!(i < cookiesArr.length)) return [3 /*break*/, 81]; cookie = cookiesArr[i]; UserName = decodeURIComponent(cookie.match(/pt_pin=([^;]*)/)[1]); index = i + 1; - isLogin = true; - nickName = ''; - console.log("\n\u5F00\u59CB\u3010\u4EAC\u4E1C\u8D26\u53F7" + index + "\u3011" + (nickName || UserName) + "\n"); - _k.label = 4; + return [4 /*yield*/, TS_USER_AGENTS_1.TotalBean(cookie)]; case 4: - _k.trys.push([4, 6, , 7]); - return [4 /*yield*/, makeShareCodes()]; + _a = _r.sent(), isLogin = _a.isLogin, nickName = _a.nickName; + if (!isLogin) { + notify.sendNotify(__filename.split('/').pop(), "cookie\u5DF2\u5931\u6548\n\u4EAC\u4E1C\u8D26\u53F7" + index + "\uFF1A" + (nickName || UserName)); + return [3 /*break*/, 80]; + } + console.log("\n\u5F00\u59CB\u3010\u4EAC\u4E1C\u8D26\u53F7" + index + "\u3011" + (nickName || UserName) + "\n"); + _r.label = 5; case 5: - _k.sent(); - return [3 /*break*/, 7]; + _r.trys.push([5, 7, , 8]); + return [4 /*yield*/, makeShareCodes()]; case 6: - e_1 = _k.sent(); - console.log(e_1); - return [3 /*break*/, 7]; - case 7: - dwUserId = 1; - _k.label = 8; - case 8: - if (!1) return [3 /*break*/, 11]; - return [4 /*yield*/, api('story/helpdraw', '_cfd_t,bizCode,dwEnv,dwUserId,ptag,source,strZone', { dwUserId: dwUserId })]; - case 9: - res = _k.sent(); - dwUserId++; - if (res.iRet === 0) { - console.log('助力奖励领取成功', res.Data.ddwCoin); - } - else if (res.iRet === 1000) - return [3 /*break*/, 11]; - else { - console.log('助力奖励领取其他错误:', res); - return [3 /*break*/, 11]; - } - return [4 /*yield*/, wait(2000)]; - case 10: - _k.sent(); + _r.sent(); return [3 /*break*/, 8]; - case 11: return [4 /*yield*/, api('story/querystorageroom', '_cfd_t,bizCode,dwEnv,ptag,source,strZone')]; + case 7: + e_1 = _r.sent(); + console.log(e_1); + return [3 /*break*/, 8]; + case 8: return [4 /*yield*/, api('user/ComposeGameState', '', { dwFirst: 1 })]; + case 9: + // 珍珠 + res = _r.sent(); + strDT = res.strDT, strMyShareId = res.strMyShareId; + console.log("\u5DF2\u5408\u6210" + res.dwCurProgress + "\u4E2A\u73CD\u73E0"); + i_1 = 0; + _r.label = 10; + case 10: + if (!(i_1 < 8 - res.dwCurProgress)) return [3 /*break*/, 19]; + console.log('继续合成'); + RealTmReport = getRandomNumberByRange(10, 20); + console.log('本次合成需要上报:', RealTmReport); + j = 0; + _r.label = 11; + case 11: + if (!(j < RealTmReport)) return [3 /*break*/, 15]; + return [4 /*yield*/, api('user/RealTmReport', '', { dwIdentityType: 0, strBussKey: 'composegame', strMyShareId: strMyShareId, ddwCount: 5 })]; case 12: + res = _r.sent(); + if (res.iRet === 0) + console.log("\u6E38\u620F\u4E2D\u9014\u4E0A\u62A5" + (j + 1) + "\uFF1AOK"); + return [4 /*yield*/, wait(5000)]; + case 13: + _r.sent(); + _r.label = 14; + case 14: + j++; + return [3 /*break*/, 11]; + case 15: return [4 /*yield*/, api('user/ComposeGameAddProcess', '__t,strBT,strZone', { __t: Date.now(), strBT: strDT })]; + case 16: + res = _r.sent(); + console.log('游戏完成,已合成', res.dwCurProgress); + console.log('游戏完成,等待3s'); + return [4 /*yield*/, wait(3000)]; + case 17: + _r.sent(); + _r.label = 18; + case 18: + i_1++; + return [3 /*break*/, 10]; + case 19: return [4 /*yield*/, api('user/ComposeGameState', '', { dwFirst: 1 })]; + case 20: + // 珍珠领奖 + res = _r.sent(); + _i = 0, _b = res.stagelist; + _r.label = 21; + case 21: + if (!(_i < _b.length)) return [3 /*break*/, 25]; + stage = _b[_i]; + if (!(res.dwCurProgress >= stage.dwCurStageEndCnt && stage.dwIsAward === 0)) return [3 /*break*/, 24]; + return [4 /*yield*/, api('user/ComposeGameAward', '__t,dwCurStageEndCnt,strZone', { __t: Date.now(), dwCurStageEndCnt: stage.dwCurStageEndCnt })]; + case 22: + awardRes = _r.sent(); + console.log('珍珠领奖:', awardRes.ddwCoin); + return [4 /*yield*/, wait(3000)]; + case 23: + _r.sent(); + _r.label = 24; + case 24: + _i++; + return [3 /*break*/, 21]; + case 25: return [4 /*yield*/, api('story/GetTakeAggrPage', '_cfd_t,bizCode,dwEnv,ptag,source,strZone')]; + case 26: + // 签到 助力奖励 + res = _r.sent(); + employee = res.Data.Employee.EmployeeList.filter(function (e) { + return e.dwStatus === 0; + }); + _c = 0, employee_1 = employee; + _r.label = 27; + case 27: + if (!(_c < employee_1.length)) return [3 /*break*/, 31]; + emp = employee_1[_c]; + return [4 /*yield*/, api('story/helpdraw', '_cfd_t,bizCode,dwEnv,dwUserId,ptag,source,strZone', { dwUserId: emp.dwId })]; + case 28: + empRes = _r.sent(); + if (empRes.iRet === 0) + console.log('助力奖励领取成功:', empRes.Data.ddwCoin); + return [4 /*yield*/, wait(1000)]; + case 29: + _r.sent(); + _r.label = 30; + case 30: + _c++; + return [3 /*break*/, 27]; + case 31: + if (!(res.Data.Sign.dwTodayStatus === 0)) return [3 /*break*/, 35]; + _d = 0, _e = res.Data.Sign.SignList; + _r.label = 32; + case 32: + if (!(_d < _e.length)) return [3 /*break*/, 35]; + sign = _e[_d]; + if (!(sign.dwDayId === res.Data.Sign.dwTodayId)) return [3 /*break*/, 34]; + return [4 /*yield*/, api('story/RewardSign', '_cfd_t,bizCode,ddwCoin,ddwMoney,dwEnv,dwPrizeLv,dwPrizeType,ptag,source,strPrizePool,strZone', { ddwCoin: sign.ddwCoin, ddwMoney: sign.ddwMoney, dwPrizeLv: sign.dwBingoLevel, dwPrizeType: sign.dwPrizeType, strPrizePool: sign.strPrizePool })]; + case 33: + res = _r.sent(); + if (res.iRet === 0) + console.log('签到成功:', res.Data.ddwCoin, res.Data.ddwMoney, res.Data.strPrizePool); + return [3 /*break*/, 35]; + case 34: + _d++; + return [3 /*break*/, 32]; + case 35: return [4 /*yield*/, api('user/QueryUserInfo', '_cfd_t,bizCode,ddwTaskId,dwEnv,ptag,source,strShareId,strZone', { ddwTaskId: '', strShareId: '', strMarkList: 'undefined' })]; + case 36: + // 船来了 + res = _r.sent(); + if (!res.StoryInfo.StoryList) return [3 /*break*/, 41]; + console.log(JSON.stringify(res)); + if (!res.StoryInfo.StoryList[0].Special) return [3 /*break*/, 40]; + console.log("\u8239\u6765\u4E86\uFF0C\u4E58\u5BA2\u662F" + res.StoryInfo.StoryList[0].Special.strName); + return [4 /*yield*/, api('story/SpecialUserOper', '_cfd_t,bizCode,ddwTriggerDay,dwEnv,dwType,ptag,source,strStoryId,strZone,triggerType', { strStoryId: res.StoryInfo.StoryList[0].strStoryId, dwType: '2', triggerType: 0, ddwTriggerDay: res.StoryInfo.StoryList[0].ddwTriggerDay })]; + case 37: + shipRes = _r.sent(); + console.log(shipRes); + console.log('正在下船,等待30s'); + return [4 /*yield*/, wait(30000)]; + case 38: + _r.sent(); + return [4 /*yield*/, api('story/SpecialUserOper', '_cfd_t,bizCode,ddwTriggerDay,dwEnv,dwType,ptag,source,strStoryId,strZone,triggerType', { strStoryId: res.StoryInfo.StoryList[0].strStoryId, dwType: '3', triggerType: 0, ddwTriggerDay: res.StoryInfo.StoryList[0].ddwTriggerDay })]; + case 39: + shipRes = _r.sent(); + if (shipRes.iRet === 0) + console.log('船客接待成功'); + else + console.log('船客接待失败', shipRes); + _r.label = 40; + case 40: + if (res.StoryInfo.StoryList[0].Collector) { + console.log('收藏家出现'); + } + _r.label = 41; + case 41: return [4 /*yield*/, api('story/querystorageroom', '_cfd_t,bizCode,dwEnv,ptag,source,strZone')]; + case 42: // 清空背包 - res = _k.sent(); + res = _r.sent(); bags = []; - for (_i = 0, _a = res.Data.Office; _i < _a.length; _i++) { - s = _a[_i]; + for (_f = 0, _g = res.Data.Office; _f < _g.length; _f++) { + s = _g[_f]; console.log(s.dwCount, s.dwType); bags.push(s.dwType); bags.push(s.dwCount); } return [4 /*yield*/, wait(1000)]; - case 13: - _k.sent(); + case 43: + _r.sent(); strTypeCnt = ''; for (n = 0; n < bags.length; n++) { if (n % 2 === 0) @@ -140,198 +256,210 @@ var UserName, index, isLogin, nickName; else strTypeCnt += bags[n] + "|"; } - if (!(bags.length !== 0)) return [3 /*break*/, 15]; + if (!(bags.length !== 0)) return [3 /*break*/, 45]; return [4 /*yield*/, api('story/sellgoods', '_cfd_t,bizCode,dwEnv,dwSceneId,ptag,source,strTypeCnt,strZone', { dwSceneId: '1', strTypeCnt: strTypeCnt })]; - case 14: - res = _k.sent(); + case 44: + res = _r.sent(); console.log('卖贝壳收入:', res.Data.ddwCoin, res.Data.ddwMoney); - _k.label = 15; - case 15: + _r.label = 45; + case 45: return [4 /*yield*/, api('story/QueryRubbishInfo', '_cfd_t,bizCode,dwEnv,ptag,source,strZone')]; + case 46: + // 垃圾🚮 + res = _r.sent(); + if (!(res.Data.StoryInfo.StoryList.length !== 0)) return [3 /*break*/, 48]; + return [4 /*yield*/, api('story/RubbishOper', '')]; + case 47: + _r.sent(); + _r.label = 48; + case 48: tasks = void 0; return [4 /*yield*/, api('story/GetActTask', '_cfd_t,bizCode,dwEnv,ptag,source,strZone')]; - case 16: - tasks = _k.sent(); - _b = 0, _c = tasks.Data.TaskList; - _k.label = 17; - case 17: - if (!(_b < _c.length)) return [3 /*break*/, 21]; - t = _c[_b]; - if (!(t.dwCompleteNum === t.dwTargetNum && t.dwAwardStatus === 2)) return [3 /*break*/, 20]; + case 49: + tasks = _r.sent(); + _h = 0, _j = tasks.Data.TaskList; + _r.label = 50; + case 50: + if (!(_h < _j.length)) return [3 /*break*/, 54]; + t = _j[_h]; + if (!(t.dwCompleteNum === t.dwTargetNum && t.dwAwardStatus === 2)) return [3 /*break*/, 53]; return [4 /*yield*/, api('Award', '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', { taskId: t.ddwTaskId })]; - case 18: - res = _k.sent(); + case 51: + res = _r.sent(); if (res.ret === 0) { console.log(t.strTaskName + "\u9886\u5956\u6210\u529F:", res.data.prizeInfo); } return [4 /*yield*/, wait(1000)]; - case 19: - _k.sent(); - _k.label = 20; - case 20: - _b++; - return [3 /*break*/, 17]; - case 21: return [4 /*yield*/, api('user/EmployTourGuideInfo', '_cfd_t,bizCode,dwEnv,ptag,source,strZone')]; - case 22: + case 52: + _r.sent(); + _r.label = 53; + case 53: + _h++; + return [3 /*break*/, 50]; + case 54: return [4 /*yield*/, api('user/EmployTourGuideInfo', '_cfd_t,bizCode,dwEnv,ptag,source,strZone')]; + case 55: // 导游 - res = _k.sent(); - if (!!res.TourGuideList) return [3 /*break*/, 23]; + res = _r.sent(); + if (!!res.TourGuideList) return [3 /*break*/, 56]; console.log('手动雇佣4个试用导游'); - return [3 /*break*/, 28]; - case 23: - _d = 0, _e = res.TourGuideList; - _k.label = 24; - case 24: - if (!(_d < _e.length)) return [3 /*break*/, 28]; - e = _e[_d]; - if (!(e.strBuildIndex !== 'food' && e.ddwRemainTm === 0)) return [3 /*break*/, 27]; + return [3 /*break*/, 61]; + case 56: + _k = 0, _l = res.TourGuideList; + _r.label = 57; + case 57: + if (!(_k < _l.length)) return [3 /*break*/, 61]; + e = _l[_k]; + if (!(e.strBuildIndex !== 'food' && e.ddwRemainTm === 0)) return [3 /*break*/, 60]; return [4 /*yield*/, api('user/EmployTourGuide', '_cfd_t,bizCode,ddwConsumeCoin,dwEnv,dwIsFree,ptag,source,strBuildIndex,strZone', { ddwConsumeCoin: e.ddwCostCoin, dwIsFree: 0, strBuildIndex: e.strBuildIndex })]; - case 25: - employ = _k.sent(); - console.log(employ); - return [4 /*yield*/, wait(3000)]; - case 26: - _k.sent(); - _k.label = 27; - case 27: - _d++; - return [3 /*break*/, 24]; - case 28: return [4 /*yield*/, mainTask('GetUserTaskStatusList', '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', { taskId: 0 })]; - case 29: + case 58: + employ = _r.sent(); + if (employ.iRet === 0) + console.log("\u96C7\u4F63" + e.strBuildIndex + "\u5BFC\u6E38\u6210\u529F"); + if (employ.iRet === 2003) + return [3 /*break*/, 61]; + return [4 /*yield*/, wait(1000)]; + case 59: + _r.sent(); + _r.label = 60; + case 60: + _k++; + return [3 /*break*/, 57]; + case 61: return [4 /*yield*/, mainTask('GetUserTaskStatusList', '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', { taskId: 0 })]; + case 62: // 任务⬇️ - tasks = _k.sent(); - _f = 0, _g = tasks.data.userTaskStatusList; - _k.label = 30; - case 30: - if (!(_f < _g.length)) return [3 /*break*/, 37]; - t = _g[_f]; - if (!(t.dateType === 2)) return [3 /*break*/, 36]; - if (!(t.awardStatus === 2 && t.completedTimes === t.targetTimes)) return [3 /*break*/, 33]; + tasks = _r.sent(); + _m = 0, _o = tasks.data.userTaskStatusList; + _r.label = 63; + case 63: + if (!(_m < _o.length)) return [3 /*break*/, 70]; + t = _o[_m]; + if (!(t.dateType === 2)) return [3 /*break*/, 69]; + if (!(t.awardStatus === 2 && t.completedTimes === t.targetTimes)) return [3 /*break*/, 66]; console.log(1, t.taskName); return [4 /*yield*/, mainTask('Award', '_cfd_t,bizCode,dwEnv,ptag,source,strZone,taskId', { taskId: t.taskId })]; - case 31: - res = _k.sent(); + case 64: + res = _r.sent(); console.log(res); if (res.ret === 0) { console.log(t.taskName + "\u9886\u5956\u6210\u529F:", res.data.prizeInfo); } return [4 /*yield*/, wait(2000)]; - case 32: - _k.sent(); - return [3 /*break*/, 36]; - case 33: - if (!(t.awardStatus === 2 && t.completedTimes < t.targetTimes && ([1, 2, 3, 4].includes(t.orderId)))) return [3 /*break*/, 36]; + case 65: + _r.sent(); + return [3 /*break*/, 69]; + case 66: + if (!(t.awardStatus === 2 && t.completedTimes < t.targetTimes && ([1, 2, 3, 4].includes(t.orderId)))) return [3 /*break*/, 69]; console.log('做任务:', t.taskId, t.taskName, t.completedTimes, t.targetTimes); return [4 /*yield*/, mainTask('DoTask', '_cfd_t,bizCode,configExtra,dwEnv,ptag,source,strZone,taskId', { taskId: t.taskId, configExtra: '' })]; - case 34: - res = _k.sent(); + case 67: + res = _r.sent(); console.log('做任务:', res); return [4 /*yield*/, wait(5000)]; - case 35: - _k.sent(); - _k.label = 36; - case 36: - _f++; - return [3 /*break*/, 30]; - case 37: - _h = 0, _j = ['food', 'fun', 'shop', 'sea']; - _k.label = 38; - case 38: - if (!(_h < _j.length)) return [3 /*break*/, 47]; - b = _j[_h]; + case 68: + _r.sent(); + _r.label = 69; + case 69: + _m++; + return [3 /*break*/, 63]; + case 70: + _p = 0, _q = ['food', 'fun', 'shop', 'sea']; + _r.label = 71; + case 71: + if (!(_p < _q.length)) return [3 /*break*/, 80]; + b = _q[_p]; return [4 /*yield*/, api('user/GetBuildInfo', '_cfd_t,bizCode,dwEnv,dwType,ptag,source,strBuildIndex,strZone', { strBuildIndex: b })]; - case 39: - res = _k.sent(); + case 72: + res = _r.sent(); console.log(b + "\u5347\u7EA7\u9700\u8981:", res.ddwNextLvlCostCoin); return [4 /*yield*/, wait(1000)]; - case 40: - _k.sent(); - if (!(res.dwCanLvlUp === 1)) return [3 /*break*/, 43]; + case 73: + _r.sent(); + if (!(res.dwCanLvlUp === 1)) return [3 /*break*/, 76]; return [4 /*yield*/, api('user/BuildLvlUp', '_cfd_t,bizCode,ddwCostCoin,dwEnv,ptag,source,strBuildIndex,strZone', { ddwCostCoin: res.ddwNextLvlCostCoin, strBuildIndex: b })]; - case 41: - res = _k.sent(); - if (!(res.iRet === 0)) return [3 /*break*/, 43]; + case 74: + res = _r.sent(); + if (!(res.iRet === 0)) return [3 /*break*/, 76]; console.log("\u5347\u7EA7\u6210\u529F"); return [4 /*yield*/, wait(2000)]; - case 42: - _k.sent(); - _k.label = 43; - case 43: return [4 /*yield*/, api('user/CollectCoin', '_cfd_t,bizCode,dwEnv,dwType,ptag,source,strBuildIndex,strZone', { strBuildIndex: b, dwType: '1' })]; - case 44: - res = _k.sent(); + case 75: + _r.sent(); + _r.label = 76; + case 76: return [4 /*yield*/, api('user/CollectCoin', '_cfd_t,bizCode,dwEnv,dwType,ptag,source,strBuildIndex,strZone', { strBuildIndex: b, dwType: '1' })]; + case 77: + res = _r.sent(); console.log(b + "\u6536\u91D1\u5E01:", res.ddwCoin); return [4 /*yield*/, wait(1000)]; - case 45: - _k.sent(); - _k.label = 46; - case 46: - _h++; - return [3 /*break*/, 38]; - case 47: + case 78: + _r.sent(); + _r.label = 79; + case 79: + _p++; + return [3 /*break*/, 71]; + case 80: i++; return [3 /*break*/, 3]; - case 48: - if (!(CFD_HELP_HW === 'true')) return [3 /*break*/, 52]; - _k.label = 49; - case 49: - _k.trys.push([49, 51, , 52]); + case 81: + if (!(HELP_HW === 'true')) return [3 /*break*/, 85]; + _r.label = 82; + case 82: + _r.trys.push([82, 84, , 85]); return [4 /*yield*/, axios_1["default"].get("https://api.sharecode.ga/api/HW_CODES")]; - case 50: - data = (_k.sent()).data; + case 83: + data = (_r.sent()).data; shareCodes = __spreadArray(__spreadArray([], shareCodes), data.jxcfd); console.log('获取HelloWorld助力码成功'); - return [3 /*break*/, 52]; - case 51: - e_2 = _k.sent(); + return [3 /*break*/, 85]; + case 84: + e_2 = _r.sent(); console.log('获取HelloWorld助力码出错'); - return [3 /*break*/, 52]; - case 52: - if (!(CFD_HELP_POOL === 'true')) return [3 /*break*/, 57]; - _k.label = 53; - case 53: - _k.trys.push([53, 55, , 56]); + return [3 /*break*/, 85]; + case 85: + if (!(HELP_POOL === 'true')) return [3 /*break*/, 90]; + _r.label = 86; + case 86: + _r.trys.push([86, 88, , 89]); return [4 /*yield*/, axios_1["default"].get('https://api.sharecode.ga/api/jxcfd/20')]; - case 54: - data = (_k.sent()).data; + case 87: + data = (_r.sent()).data; console.log('获取到20个随机助力码:', data.data); shareCodes = __spreadArray(__spreadArray([], shareCodes), data.data); - return [3 /*break*/, 56]; - case 55: - e_3 = _k.sent(); + return [3 /*break*/, 89]; + case 88: + e_3 = _r.sent(); console.log('获取助力池失败'); - return [3 /*break*/, 56]; - case 56: return [3 /*break*/, 58]; - case 57: - console.log('你的设置是不帮助助力池!'); - _k.label = 58; - case 58: + return [3 /*break*/, 89]; + case 89: return [3 /*break*/, 91]; + case 90: + console.log('你的设置是不帮助助力池'); + _r.label = 91; + case 91: i = 0; - _k.label = 59; - case 59: - if (!(i < cookiesArr.length)) return [3 /*break*/, 65]; + _r.label = 92; + case 92: + if (!(i < cookiesArr.length)) return [3 /*break*/, 98]; j = 0; - _k.label = 60; - case 60: - if (!(j < shareCodes.length)) return [3 /*break*/, 64]; + _r.label = 93; + case 93: + if (!(j < shareCodes.length)) return [3 /*break*/, 97]; cookie = cookiesArr[i]; - console.log('去助力:', shareCodes[j]); + console.log("\u8D26\u53F7" + (i + 1) + "\u53BB\u52A9\u529B:", shareCodes[j]); return [4 /*yield*/, api('story/helpbystage', '_cfd_t,bizCode,dwEnv,ptag,source,strShareId,strZone', { strShareId: shareCodes[j] })]; - case 61: - res = _k.sent(); + case 94: + res = _r.sent(); console.log('助力:', res); if (res.iRet === 2232 || res.sErrMsg === '今日助力次数达到上限,明天再来帮忙吧~') { - return [3 /*break*/, 64]; + return [3 /*break*/, 97]; } return [4 /*yield*/, wait(3000)]; - case 62: - _k.sent(); - _k.label = 63; - case 63: + case 95: + _r.sent(); + _r.label = 96; + case 96: j++; - return [3 /*break*/, 60]; - case 64: + return [3 /*break*/, 93]; + case 97: i++; - return [3 /*break*/, 59]; - case 65: return [2 /*return*/]; + return [3 /*break*/, 92]; + case 98: return [2 /*return*/]; } }); }); })(); @@ -409,36 +537,31 @@ function mainTask(fn, stk, params) { function makeShareCodes() { var _this = this; return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () { - var data, farm, pin; + var bean, farm, pin; return __generator(this, function (_a) { switch (_a.label) { - case 0: return [4 /*yield*/, axios_1["default"].post('https://api.m.jd.com/client.action?functionId=initForFarm', "body=" + escape(JSON.stringify({ "version": 4 })) + "&appid=wh5&clientVersion=9.1.0", { - headers: { - "cookie": cookie, - "origin": "https://home.m.jd.com", - "referer": "https://home.m.jd.com/myJd/newhome.action", - "User-Agent": TS_USER_AGENTS_1["default"], - "Content-Type": "application/x-www-form-urlencoded" - } - })]; + case 0: return [4 /*yield*/, TS_USER_AGENTS_1.getBeanShareCode(cookie)]; case 1: - data = (_a.sent()).data; - farm = data.farmUserPro.shareCode; - return [4 /*yield*/, api('user/QueryUserInfo', '_cfd_t,bizCode,ddwTaskId,dwEnv,ptag,source,strShareId,strZone', { ddwTaskId: '', strShareId: '', strMarkList: 'undefined' })]; + bean = _a.sent(); + return [4 /*yield*/, TS_USER_AGENTS_1.getFarmShareCode(cookie)]; case 2: + farm = _a.sent(); + return [4 /*yield*/, api('user/QueryUserInfo', '_cfd_t,bizCode,ddwTaskId,dwEnv,ptag,source,strShareId,strZone', { ddwTaskId: '', strShareId: '', strMarkList: 'undefined' })]; + case 3: res = _a.sent(); console.log('助力码:', res.strMyShareId); shareCodes.push(res.strMyShareId); pin = cookie.match(/pt_pin=([^;]*)/)[1]; pin = ts_md5_1.Md5.hashStr(pin); - axios_1["default"].get("https://api.sharecode.ga/api/jxcfd/insert?code=" + res.strMyShareId + "&farm=" + farm + "&pin=" + pin) + axios_1["default"].get("https://api.sharecode.ga/api/autoInsert?db=jxcfd&code=" + res.strMyShareId + "&bean=" + bean + "&farm=" + farm + "&pin=" + pin) .then(function (res) { if (res.data.code === 200) console.log('已自动提交助力码'); else - console.log('提交失败!已提交farm的cookie才可提交cfd'); + console.log('提交失败!已提交farm和bean的cookie才可提交cfd'); resolve(); })["catch"](function (e) { + console.log(e); reject('访问助力池出错'); }); return [2 /*return*/]; @@ -485,6 +608,7 @@ function requestAlgo() { data = (_a.sent()).data; if (data['status'] === 200) { token = data.data.result.tk; + console.log('token:', token); enCryptMethodJDString = data.data.result.algo; if (enCryptMethodJDString) enCryptMethodJD = new Function("return " + enCryptMethodJDString)(); @@ -493,7 +617,7 @@ function requestAlgo() { console.log("fp: " + fingerprint); console.log('request_algo 签名参数API请求失败:'); } - resolve(200); + resolve(); return [2 /*return*/]; } }); @@ -557,4 +681,7 @@ function wait(t) { resolve(); }, t); }); +} +function getRandomNumberByRange(start, end) { + return Math.floor(Math.random() * (end - start) + start); } \ No newline at end of file