From 191ff4e18bf59288946efdf62387c6ba4d3e7faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E5=BF=97=E5=86=9B?= Date: Fri, 12 Nov 2021 23:53:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/filter.txt | 13 + src/main/resources/pay_filter.txt | 11 + src/main/resources/test_bean.js | 180 +- src/main/resources/test_fruit.js | 2586 ++++++++++++++------------ src/main/resources/test_trytryOne.js | 23 +- 5 files changed, 1484 insertions(+), 1329 deletions(-) create mode 100644 src/main/resources/pay_filter.txt diff --git a/src/main/resources/filter.txt b/src/main/resources/filter.txt index 22c3bfe..5e3d584 100644 --- a/src/main/resources/filter.txt +++ b/src/main/resources/filter.txt @@ -52,6 +52,7 @@ windows 九九乘法 九九乘除 书包 +书法 乳液 乳腺 交换 @@ -79,6 +80,7 @@ windows 保护壳 保护套 保护膜 +保护贴膜 保护镜 保暖女裤 保暖裤 @@ -122,18 +124,21 @@ windows 儿童雨伞 充电头 充电桩 +先徽葱油 光和青春 光驱 免钉胶水 八倍镜 公主项链 公文包 +养生茶 养芝堂 内胆包 内衣 内裤 冰箱贴 冰袋 +决明子 决明子茶 冷兵器 冷凝胶 @@ -233,6 +238,7 @@ windows 咖啡豆 咬钩 咽炎 +品雅有机茶 哑光 哨 哺乳 @@ -388,6 +394,7 @@ windows 彩带 彩铅 德尔地板 +德生源氨基酸洗发水 徽墨 快递纸箱 思维棋 @@ -529,6 +536,7 @@ windows 染发剂 柔肤水 柜吸 +栀子茶 栅网 标志牌 标签纸 @@ -685,8 +693,10 @@ windows 猫粮 猫罐头 玉米粉 +玉米须 玛咖片 玩具女孩 +玫瑰花茶 玻尿酸 玻珠 玻珠幕 @@ -951,6 +961,7 @@ windows 贴纸 贴膜 贺卡 +赛柏瑞斯 赠品 起雾棒 超比乐 @@ -1064,6 +1075,7 @@ windows 雨刮 雨披 雨衣 +雷气日式 露指 青春痘 青汁 @@ -1118,6 +1130,7 @@ windows 黑头 黑沙 黑色水笔 +黑芝麻丸 鼠标垫 鼠标手 鼻头 diff --git a/src/main/resources/pay_filter.txt b/src/main/resources/pay_filter.txt new file mode 100644 index 0000000..909608e --- /dev/null +++ b/src/main/resources/pay_filter.txt @@ -0,0 +1,11 @@ +[九江馆]溢流香蛋黄莲蓉月饼中秋节广式散装多口味月饼散称整箱迷你小月饼 月饼多口味混合装16枚 +真正香辣牛板筋麻辣零食正宗内蒙古特产独立小包装爱食宠高端牛肉小吃下酒菜追剧小零食 精品100g香辣味 +海尔(haier)便携剃须刀全身水洗迷你电动胡须刀出差旅行配备USB充电式刮胡刀 HSQ1-2217升级版 2022款 +舟山带鱼段 冷冻带鱼 中段去头去尾 海鲜带鱼纯中段刀鱼 海鲜 生鲜 大段2500g +正宗舟山银鲳鱼 白鲳鱼扁平鱼 新鲜冷冻批发海鲜水产 6斤银鲳鱼(每斤6-8条) +老北京炸酱面杂酱面休闲食品韩国拌面方便面速食特产网红面条102g/包 3包尝鲜装 +3份起正宗武汉热干面过早速食拌面碱水面带调料酱包方便面条湖北 6包 +老北京炸酱面杂酱面休闲食品韩国拌面方便面速食特产网红面条102g/包 10包 +北海牧场 小鲜酪蓝莓味风味发酵乳100g*3杯 0蔗糖酸奶 风味发酵乳 低温酸奶酸牛奶 +火山石烤肠纯肉肠地道肠烧烤食材早餐肉食类零食小吃热狗香肠批发 10根1斤原味 +秋梅食小粿特产梅干菜扣肉饼香辣酥饼薄烤饼锅盔小吃零食 秋梅干菜饼原味100g*3只 \ No newline at end of file diff --git a/src/main/resources/test_bean.js b/src/main/resources/test_bean.js index a2edc2e..f25ab34 100644 --- a/src/main/resources/test_bean.js +++ b/src/main/resources/test_bean.js @@ -26,8 +26,24 @@ const $ = new Env('动动种豆得豆'); //Node.js用户请在jdCookie.js处填写动动ck; //ios等软件用户直接用NobyDa的jd cookie let jdNotify = true;//是否开启静默运行。默认true开启 -let cookiesArr = [], cookie = '', jdPlantBeanShareArr = [], isBox = false, notify, newShareCodes, option,subTitle; +let postTime = 11 +let postDay = 1 +let cookiesArr = [], cookie = '', jdPlantBeanShareArr = [], isBox = false, notify, newShareCodes, option, subTitle; let message = "" +let dingtalk1 = "https://oapi.dingtalk.com/robot/send?access_token=18444b555747aad3381bc1d1e3dea72b03158e152a846f818d82a1ca946bd430" +let dingtalk2 = "https://oapi.dingtalk.com/robot/send?access_token=04ab95f07aa0397e7167c6ea3a331bc7fcddbc4cda4a482b1e7e76755f97f6a0" +let roleMap = { + "jd_4521b375ebb5d": "锟子怪", + "jd_542c10c0222bc": "康子怪", + "jd_66dcb31363ef6": "涛子怪", + "jd_66ea783827d30": "跑腿小怪A", + "jd_4311ac0ff4456": "跑腿小怪B", + "jd_45d917547c763": "跑腿小怪C", + "417040678_m": "斌子怪", + "jd_73d88459d908e": "杰杰子", + "381550701lol": "漪漪子", + "jd_4333d5dc1ac5f": "舒楠子", +} //动动接口地址 const JD_API_HOST = 'https://api.m.jd.com/client.action'; //助力好友分享码(最多3个,否则后面的助力失败) @@ -42,15 +58,15 @@ let awardState = '';//上期活动的豆豆是否收取 let randomCount = $.isNode() ? 20 : 5; let num; !(async () => { - message += "[通知] 种豆得豆 \n\n --- \n\n" + message += "[通知] 种豆得豆 \n\n --- \n\n" await requireConfig(); if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取动动账号一cookie\n直接使用NobyDa的动动签到获取', 'https://bean.m.jd.com/bean/signIndex.action', {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + $.msg($.name, '【提示】请先获取动动账号一cookie\n直接使用NobyDa的动动签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); return; } for (let i = 0; i < cookiesArr.length; i++) { if (cookiesArr[i]) { - await $.wait(Math.floor(Math.random() * (175000) + 5000)); + await $.wait(Math.floor(Math.random() * (175000) + 5000)); cookie = cookiesArr[i]; $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) $.index = i + 1; @@ -58,24 +74,17 @@ let num; $.nickName = ''; username = $.UserName - if ($.UserName == "jd_66ea783827d30"){ - username = "跑腿小弟" + if (roleMap[username] != undefined) { + username = roleMap[username] } - if ($.UserName == "jd_4521b375ebb5d"){ - username = "锟锟" - } - if ($.UserName == "jd_542c10c0222bc"){ - username = "康康" - } - - - //加上名称 - message = message + "【羊毛姐妹】" + username + " \n\n " + + //加上名称 + message = message + "【羊毛姐妹】" + username + " \n\n " await TotalBean(); console.log(`\n开始【动动账号${$.index}】${$.nickName || $.UserName}\n`); if (!$.isLogin) { - $.msg($.name, `【提示】cookie已失效`, `动动账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, {"open-url": "https://bean.m.jd.com/bean/signIndex.action"}); + $.msg($.name, `【提示】cookie已失效`, `动动账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); if ($.isNode()) { await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `动动账号${$.index} ${$.UserName}\n请重新登录获取cookie`); @@ -89,7 +98,7 @@ let num; await showMsg(); } - message += "----\n\n" + message += "----\n\n" } that.log(message) @@ -97,12 +106,16 @@ let num; await notify.sendNotify(`${$.name}`, `${allMessage}`) } })().catch((e) => { - message += " " + `❌ ${$.name}, 失败! 原因: ${e}!` + "\n\n" + message += " " + `❌ ${$.name}, 失败! 原因: ${e}!` + "\n\n" $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') }).finally(() => { - // message += getPic() - that.log(message) - postToDingTalk(message) + that.log(message) + postToDingTalk(message,dingtalk1) + date = new Date() + if (date.getDay() == postDay && date.getHours() == postTime) { + postToDingTalk(message,dingtalk2) + } + $.done(); }) @@ -127,8 +140,8 @@ async function jdPlantBean() { awardState = roundList[num - 1].awardState; $.taskList = $.plantBeanIndexResult.data.taskList; subTitle = `【动动昵称】${$.plantBeanIndexResult.data.plantUserInfo.plantNickName}`; - message += " " + `【上期时间】${roundList[num - 1].dateDesc.replace('上期 ', '')}\n` + "\n\n"; - message += " " + `【上期成长值】${roundList[num - 1].growth}\n` + "\n\n"; + // message += " " + `【上期时间】${roundList[num - 1].dateDesc.replace('上期 ', '')}\n` + "\n\n"; + message += " " + `【上期成长值】${roundList[num - 1].growth}\n` + "\n\n"; await receiveNutrients();//定时领取营养液 await doHelp();//助力 await doTask();//做日常任务 @@ -152,14 +165,14 @@ async function doGetReward() { console.log(`【上轮豆豆】${awardState === '4' ? '采摘中' : awardState === '5' ? '可收获了' : '已领取'}`); if (awardState === '4') { //豆豆采摘中... - message += "" + `【上期状态】${roundList[num - 1].tipBeanEndTitle}\n` + "\n\n"; + message += "" + `【上期状态】${roundList[num - 1].tipBeanEndTitle}\n` + "\n\n"; } else if (awardState === '5') { //收获 await getReward(); console.log('开始领取豆豆'); if ($.getReward && $.getReward.code === '0') { console.log('豆豆领取成功'); - message += "" + `【上期兑换豆豆】${$.getReward.data.awardBean}个\n` + "\n\n"; + message += "" + `【上期兑换豆豆】${$.getReward.data.awardBean}个\n` + "\n\n"; $.msg($.name, subTitle, message); allMessage += `动动账号${$.index} ${$.nickName}\n${message}${$.index !== cookiesArr.length ? '\n\n' : ''}` // if ($.isNode()) { @@ -170,12 +183,12 @@ async function doGetReward() { } } else if (awardState === '6') { //豆豆已领取 - message += "" + `【上期兑换豆豆】${roundList[num - 1].awardBeans}个\n` + "\n\n"; + message += "" + `【上期兑换豆豆】${roundList[num - 1].awardBeans}个\n` + "\n\n"; } if (roundList[num].dateDesc.indexOf('本期 ') > -1) { roundList[num].dateDesc = roundList[num].dateDesc.substr(roundList[num].dateDesc.indexOf('本期 ') + 3, roundList[num].dateDesc.length); } - message += "" + `【本期时间】${roundList[num].dateDesc}\n` + "\n\n"; + // message += "" + `【本期时间】${roundList[num].dateDesc}\n` + "\n\n"; message += "" + `【本期成长值】${roundList[num].growth}\n` + "\n\n"; } async function doCultureBean() { @@ -203,7 +216,7 @@ async function stealFriendWater() { return } if ($.stealFriendList.data && $.stealFriendList.data.friendInfoList && $.stealFriendList.data.friendInfoList.length > 0) { - let nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset()*60*1000 + 8*60*60*1000); + let nowTimes = new Date(new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000); for (let item of $.stealFriendList.data.friendInfoList) { if (new Date(nowTimes).getHours() === 20) { if (item.nutrCount >= 2) { @@ -302,7 +315,7 @@ async function doTask() { console.log(`shopRes结果:${JSON.stringify(shopRes)}`); if (shopRes && shopRes.code === '0') { if (shopRes.data && shopRes.data.nutrState && shopRes.data.nutrState === '1') { - unFinishedShopNum --; + unFinishedShopNum--; } } if (unFinishedShopNum <= 0) { @@ -324,7 +337,7 @@ async function doTask() { let productListARR = [], productList = []; const { productInfoList } = data; for (let i = 0; i < productInfoList.length; i++) { - for (let j = 0; j < productInfoList[i].length; j++){ + for (let j = 0; j < productInfoList[i].length; j++) { productListARR.push(productInfoList[i][j]); } } @@ -345,7 +358,7 @@ async function doTask() { // console.log('nutrState', productRes) //这里添加多重判断,有时候会出现活动太火爆的问题,导致nutrState没有 if (productRes.data && productRes.data.nutrState && productRes.data.nutrState === '1') { - unFinishedProductNum --; + unFinishedProductNum--; } } if (unFinishedProductNum <= 0) { @@ -388,7 +401,7 @@ async function doTask() { console.log(`channelRes结果:${JSON.stringify(channelRes)}`); if (channelRes && channelRes.code === '0') { if (channelRes.data && channelRes.data.nutrState && channelRes.data.nutrState === '1') { - unFinishedChannelNum --; + unFinishedChannelNum--; } } if (unFinishedChannelNum <= 0) { @@ -490,7 +503,7 @@ async function collectUserNutr(paradiseUuid) { $.stealFriendRes = await request(functionId, body); } async function receiveNutrients() { - $.receiveNutrientsRes = await request('receiveNutrients', {"roundId": currentRoundId, "monitor_refer": "plant_receiveNutrients"}) + $.receiveNutrientsRes = await request('receiveNutrients', { "roundId": currentRoundId, "monitor_refer": "plant_receiveNutrients" }) // console.log(`定时领取营养液结果:${JSON.stringify($.receiveNutrientsRes)}`) } async function plantEggDoLottery() { @@ -502,7 +515,7 @@ async function egg() { } async function productTaskList() { let functionId = arguments.callee.name.toString(); - $.productTaskList = await requestGet(functionId, {"monitor_refer": "plant_productTaskList"}); + $.productTaskList = await requestGet(functionId, { "monitor_refer": "plant_productTaskList" }); } async function plantChannelTaskList() { let functionId = arguments.callee.name.toString(); @@ -511,7 +524,7 @@ async function plantChannelTaskList() { } async function shopTaskList() { let functionId = arguments.callee.name.toString(); - $.shopTaskListRes = await requestGet(functionId, {"monitor_refer": "plant_receiveNutrients"}); + $.shopTaskListRes = await requestGet(functionId, { "monitor_refer": "plant_receiveNutrients" }); // console.log('$.shopTaskListRes', $.shopTaskListRes) } async function receiveNutrientsTask(awardType) { @@ -523,7 +536,7 @@ async function receiveNutrientsTask(awardType) { $.receiveNutrientsTaskRes = await requestGet(functionId, body); } async function plantShareSupportList() { - $.shareSupportList = await requestGet('plantShareSupportList', {"roundId": ""}); + $.shareSupportList = await requestGet('plantShareSupportList', { "roundId": "" }); if ($.shareSupportList && $.shareSupportList.code === '0') { const { data } = $.shareSupportList; //当日北京时间0点时间戳 @@ -558,7 +571,7 @@ async function plantBeanIndex() { } function readShareCode() { return new Promise(async resolve => { - $.get({url: ``, timeout: 10000}, (err, resp, data) => { + $.get({ url: ``, timeout: 10000 }, (err, resp, data) => { try { if (err) { //console.log(`${JSON.stringify(err)}`) @@ -613,7 +626,7 @@ function requireConfig() { cookiesArr.push(jdCookieNode[item]) } }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => {}; + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; } else { cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); } @@ -717,7 +730,7 @@ function TotalBean() { }) }) } -function request(function_id, body = {}){ +function request(function_id, body = {}) { return new Promise(async resolve => { await $.wait(2000); $.post(taskUrl(function_id, body), (err, resp, data) => { @@ -775,66 +788,55 @@ function jsonParse(str) { } } // prettier-ignore -function Env(t,e){"undefined"!=typeof process&&JSON.stringify(process.env).indexOf("GITHUB")>-1&&process.exit(0);class s{constructor(t){this.env=t}send(t,e="GET"){t="string"==typeof t?{url:t}:t;let s=this.get;return"POST"===e&&(s=this.post),new Promise((e,i)=>{s.call(this,t,(t,s,r)=>{t?i(t):e(s)})})}get(t){return this.send.call(this.env,t)}post(t){return this.send.call(this.env,t,"POST")}}return new class{constructor(t,e){this.name=t,this.http=new s(this),this.data=null,this.dataFile="box.dat",this.logs=[],this.isMute=!1,this.isNeedRewrite=!1,this.logSeparator="\n",this.startTime=(new Date).getTime(),Object.assign(this,e),this.log("",`🔔${this.name}, 开始!`)}isNode(){return"undefined"!=typeof module&&!!module.exports}isQuanX(){return"undefined"!=typeof $task}isSurge(){return"undefined"!=typeof $httpClient&&"undefined"==typeof $loon}isLoon(){return"undefined"!=typeof $loon}toObj(t,e=null){try{return JSON.parse(t)}catch{return e}}toStr(t,e=null){try{return JSON.stringify(t)}catch{return e}}getjson(t,e){let s=e;const i=this.getdata(t);if(i)try{s=JSON.parse(this.getdata(t))}catch{}return s}setjson(t,e){try{return this.setdata(JSON.stringify(t),e)}catch{return!1}}getScript(t){return new Promise(e=>{this.get({url:t},(t,s,i)=>e(i))})}runScript(t,e){return new Promise(s=>{let i=this.getdata("@chavy_boxjs_userCfgs.httpapi");i=i?i.replace(/\n/g,"").trim():i;let r=this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");r=r?1*r:20,r=e&&e.timeout?e.timeout:r;const[o,h]=i.split("@"),n={url:`http://${h}/v1/scripting/evaluate`,body:{script_text:t,mock_type:"cron",timeout:r},headers:{"X-Key":o,Accept:"*/*"}};this.post(n,(t,e,i)=>s(i))}).catch(t=>this.logErr(t))}loaddata(){if(!this.isNode())return{};{this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e);if(!s&&!i)return{};{const i=s?t:e;try{return JSON.parse(this.fs.readFileSync(i))}catch(t){return{}}}}}writedata(){if(this.isNode()){this.fs=this.fs?this.fs:require("fs"),this.path=this.path?this.path:require("path");const t=this.path.resolve(this.dataFile),e=this.path.resolve(process.cwd(),this.dataFile),s=this.fs.existsSync(t),i=!s&&this.fs.existsSync(e),r=JSON.stringify(this.data);s?this.fs.writeFileSync(t,r):i?this.fs.writeFileSync(e,r):this.fs.writeFileSync(t,r)}}lodash_get(t,e,s){const i=e.replace(/\[(\d+)\]/g,".$1").split(".");let r=t;for(const t of i)if(r=Object(r)[t],void 0===r)return s;return r}lodash_set(t,e,s){return Object(t)!==t?t:(Array.isArray(e)||(e=e.toString().match(/[^.[\]]+/g)||[]),e.slice(0,-1).reduce((t,s,i)=>Object(t[s])===t[s]?t[s]:t[s]=Math.abs(e[i+1])>>0==+e[i+1]?[]:{},t)[e[e.length-1]]=s,t)}getdata(t){let e=this.getval(t);if(/^@/.test(t)){const[,s,i]=/^@(.*?)\.(.*?)$/.exec(t),r=s?this.getval(s):"";if(r)try{const t=JSON.parse(r);e=t?this.lodash_get(t,i,""):e}catch(t){e=""}}return e}setdata(t,e){let s=!1;if(/^@/.test(e)){const[,i,r]=/^@(.*?)\.(.*?)$/.exec(e),o=this.getval(i),h=i?"null"===o?null:o||"{}":"{}";try{const e=JSON.parse(h);this.lodash_set(e,r,t),s=this.setval(JSON.stringify(e),i)}catch(e){const o={};this.lodash_set(o,r,t),s=this.setval(JSON.stringify(o),i)}}else s=this.setval(t,e);return s}getval(t){return this.isSurge()||this.isLoon()?$persistentStore.read(t):this.isQuanX()?$prefs.valueForKey(t):this.isNode()?(this.data=this.loaddata(),this.data[t]):this.data&&this.data[t]||null}setval(t,e){return this.isSurge()||this.isLoon()?$persistentStore.write(t,e):this.isQuanX()?$prefs.setValueForKey(t,e):this.isNode()?(this.data=this.loaddata(),this.data[e]=t,this.writedata(),!0):this.data&&this.data[e]||null}initGotEnv(t){this.got=this.got?this.got:require("got"),this.cktough=this.cktough?this.cktough:require("tough-cookie"),this.ckjar=this.ckjar?this.ckjar:new this.cktough.CookieJar,t&&(t.headers=t.headers?t.headers:{},void 0===t.headers.Cookie&&void 0===t.cookieJar&&(t.cookieJar=this.ckjar))}get(t,e=(()=>{})){t.headers&&(delete t.headers["Content-Type"],delete t.headers["Content-Length"]),this.isSurge()||this.isLoon()?(this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.get(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)})):this.isQuanX()?(this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t))):this.isNode()&&(this.initGotEnv(t),this.got(t).on("redirect",(t,e)=>{try{if(t.headers["set-cookie"]){const s=t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();s&&this.ckjar.setCookieSync(s,null),e.cookieJar=this.ckjar}}catch(t){this.logErr(t)}}).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)}))}post(t,e=(()=>{})){if(t.body&&t.headers&&!t.headers["Content-Type"]&&(t.headers["Content-Type"]="application/x-www-form-urlencoded"),t.headers&&delete t.headers["Content-Length"],this.isSurge()||this.isLoon())this.isSurge()&&this.isNeedRewrite&&(t.headers=t.headers||{},Object.assign(t.headers,{"X-Surge-Skip-Scripting":!1})),$httpClient.post(t,(t,s,i)=>{!t&&s&&(s.body=i,s.statusCode=s.status),e(t,s,i)});else if(this.isQuanX())t.method="POST",this.isNeedRewrite&&(t.opts=t.opts||{},Object.assign(t.opts,{hints:!1})),$task.fetch(t).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>e(t));else if(this.isNode()){this.initGotEnv(t);const{url:s,...i}=t;this.got.post(s,i).then(t=>{const{statusCode:s,statusCode:i,headers:r,body:o}=t;e(null,{status:s,statusCode:i,headers:r,body:o},o)},t=>{const{message:s,response:i}=t;e(s,i,i&&i.body)})}}time(t,e=null){const s=e?new Date(e):new Date;let i={"M+":s.getMonth()+1,"d+":s.getDate(),"H+":s.getHours(),"m+":s.getMinutes(),"s+":s.getSeconds(),"q+":Math.floor((s.getMonth()+3)/3),S:s.getMilliseconds()};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(s.getFullYear()+"").substr(4-RegExp.$1.length)));for(let e in i)new RegExp("("+e+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?i[e]:("00"+i[e]).substr((""+i[e]).length)));return t}msg(e=t,s="",i="",r){const o=t=>{if(!t)return t;if("string"==typeof t)return this.isLoon()?t:this.isQuanX()?{"open-url":t}:this.isSurge()?{url:t}:void 0;if("object"==typeof t){if(this.isLoon()){let e=t.openUrl||t.url||t["open-url"],s=t.mediaUrl||t["media-url"];return{openUrl:e,mediaUrl:s}}if(this.isQuanX()){let e=t["open-url"]||t.url||t.openUrl,s=t["media-url"]||t.mediaUrl;return{"open-url":e,"media-url":s}}if(this.isSurge()){let e=t.url||t.openUrl||t["open-url"];return{url:e}}}};if(this.isMute||(this.isSurge()||this.isLoon()?$notification.post(e,s,i,o(r)):this.isQuanX()&&$notify(e,s,i,o(r))),!this.isMuteLog){let t=["","==============📣系统通知📣=============="];t.push(e),s&&t.push(s),i&&t.push(i),console.log(t.join("\n")),this.logs=this.logs.concat(t)}}log(...t){t.length>0&&(this.logs=[...this.logs,...t]),console.log(t.join(this.logSeparator))}logErr(t,e){const s=!this.isSurge()&&!this.isQuanX()&&!this.isLoon();s?this.log("",`❗️${this.name}, 错误!`,t.stack):this.log("",`❗️${this.name}, 错误!`,t)}wait(t){return new Promise(e=>setTimeout(e,t))}done(t={}){const e=(new Date).getTime(),s=(e-this.startTime)/1e3;this.log("",`🔔${this.name}, 结束! 🕛 ${s} 秒`),this.log(),(this.isSurge()||this.isQuanX()||this.isLoon())&&$done(t)}}(t,e)} +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } //我加的函数 -function postToDingTalk(messgae) { - const dingtalk = "https://oapi.dingtalk.com/robot/send?access_token=18444b555747aad3381bc1d1e3dea72b03158e152a846f818d82a1ca946bd430" +function postToDingTalk(messgae,dingtalk) { + const message1 = "" + messgae + that.log(messgae) - const message1 = "" + messgae - that.log(messgae) - - const body = { - "msgtype": "markdown", - "markdown": { - "title":"种豆得豆", - "text": message1 - }, - "at": { - "atMobiles": [], - "isAtAll": false - } + const body = { + "msgtype": "markdown", + "markdown": { + "title": "种豆得豆", + "text": message1 + }, + "at": { + "atMobiles": [], + "isAtAll": false } + } - $.post(toDingtalk(dingtalk,JSON.stringify(body)), (data,status,xhr)=>{ - try { - that.log(resp) - that.log(data) - if (err) { - that.log(JSON.stringify(err)); - $.logErr(err); - } else { - if (safeGet(data)) { - $.duckRes = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); + $.post(toDingtalk(dingtalk , JSON.stringify(body)), (data, status, xhr) => { + try { + that.log(resp) + that.log(data) + if (err) { + that.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + $.duckRes = JSON.parse(data); } - },"json") + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }, "json") } function toDingtalk(urlmain, bodyMain) { - return { - url: urlmain, - body:bodyMain, - headers: { 'Content-Type': 'application/json;charset=utf-8' }, - timeout: 10000, - } -} - -// function getPic(){ -// let code = ["1.gif","2.png","3.png","4.png","5.gif","6.gif","7.gif","8.gif","9.gif","10.png","11.png"] -// let address = "\n\n ![screenshot](https://cdn.jsdelivr.net/gh/selfImprHuang/Go-Tool@v1.2/test/emptyDirTest/3/" - -// pos = parseInt(11*Math.random()) -// address = address + code[pos] + ")" -// return address -// } \ No newline at end of file + return { + url: urlmain, + body: bodyMain, + headers: { 'Content-Type': 'application/json;charset=utf-8' }, + timeout: 10000, + } +} \ No newline at end of file diff --git a/src/main/resources/test_fruit.js b/src/main/resources/test_fruit.js index 555dec8..d15f11b 100644 --- a/src/main/resources/test_fruit.js +++ b/src/main/resources/test_fruit.js @@ -1,1034 +1,1115 @@ -let cookiesArr = [], cookie = '', jdFruitShareArr = [], isBox = false, notify, newShareCodes; -//助力好友分享码(最多4个,否则后面的助力失败),原因:动动农场每人每天只有四次助力机会 -//此此内容是IOS用户下载脚本到本地使用,填写互助码的地方,同一动动账号的好友互助码请使用@符号隔开。 -//下面给出两个账号的填写示例(iOS只支持2个动动账号) -let shareCodes = - [ // 这个列表填入你要助力的好友的shareCode - ] -let message = '', subTitle = '', option = {}, isFruitFinished = false; +/* +东东水果:脚本更新地址 jd_fruit.js +更新时间:2021-11-09 +活动入口:京东APP我的-更多工具-东东农场 +东东农场活动链接:https://h5.m.jd.com/babelDiy/Zeus/3KSjXqQabiTuD1cJ28QskrpWoBKT/index.html +已支持IOS双京东账号,Node.js支持N个京东账号 +脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js +互助码shareCode请先手动运行脚本查看打印可看到 +一天只能帮助3个人。多出的助力码无效 +==========================Quantumultx========================= +[task_local] +#jd免费水果 +5 6-18/6 * * * jd_fruit.js, tag=东东农场, img-url=https://raw.githubusercontent.com/58xinian/icon/master/jdnc.png, enabled=true +=========================Loon============================= +[Script] +cron "5 6-18/6 * * *" script-path=jd_fruit.js,tag=东东农场 +=========================Surge============================ +东东农场 = type=cron,cronexp="5 6-18/6 * * *",wake-system=1,timeout=3600,script-path=jd_fruit.js +=========================小火箭=========================== +东东农场 = type=cron,script-path=jd_fruit.js, cronexpr="5 6-18/6 * * *", timeout=3600, enable=true +jd免费水果 搬的https://github.com/liuxiaoyucc/jd-helper/blob/a6f275d9785748014fc6cca821e58427162e9336/fruit/fruit.js +export DO_TEN_WATER_AGAIN="" 默认再次浇水 +*/ +const $ = new Env('东东农场'); +let cookiesArr = [], cookie = '', jdFruitShareArr = [], isBox = false, notify, newShareCodes, allMessage = ''; +//助力好友分享码(最多3个,否则后面的助力失败),原因:京东农场每人每天只有3次助力机会 +//此此内容是IOS用户下载脚本到本地使用,填写互助码的地方,同一京东账号的好友互助码请使用@符号隔开。 +//下面给出两个账号的填写示例(iOS只支持2个京东账号) +let shareCodes = [ +] let dingtalk = "https://oapi.dingtalk.com/robot/send?access_token=d2b6042cb38f0df63e20797c002208d2710104750c18a1dc84d54106a859a3f0" +let dingtalk2 = "https://oapi.dingtalk.com/robot/send?access_token=1832f969da101ef8273e8ba2258f06f15ec34bc22282066b28ab617042a7a9b6"; +let getManName = "" +let roleMap = { + "jd_4521b375ebb5d": "锟子怪", + "jd_542c10c0222bc": "康子怪", + "jd_66dcb31363ef6": "涛子怪", + "jd_45d917547c763": "跑腿小怪", + "417040678_m": "斌子怪", + "jd_73d88459d908e": "杰杰子", + "381550701lol": "漪漪子", + "jd_4333d5dc1ac5f": "舒楠子", + "jd_66ea783827d30": "军子", + "jd_4311ac0ff4456": "居子" +} +//目前改成先号内互助 有多余次数互助池子 +let message = '', subTitle = '', option = {}, isFruitFinished = false; const retainWater = 100;//保留水滴大于多少g,默认100g; let jdNotify = false;//是否关闭通知,false打开通知推送,true关闭通知推送 let jdFruitBeanCard = false;//农场使用水滴换豆卡(如果出现限时活动时100g水换20豆,此时比浇水划算,推荐换豆),true表示换豆(不浇水),false表示不换豆(继续浇水),脚本默认是浇水 -let randomCount = $.isNode() ? 0 : 0; +let randomCount = $.isNode() ? 20 : 5; const JD_API_HOST = 'https://api.m.jd.com/client.action'; const urlSchema = `openjd://virtual?params=%7B%20%22category%22:%20%22jump%22,%20%22des%22:%20%22m%22,%20%22url%22:%20%22https://h5.m.jd.com/babelDiy/Zeus/3KSjXqQabiTuD1cJ28QskrpWoBKT/index.html%22%20%7D`; !(async () => { - await requireConfig(); - message += "[通知] 动动农场 \n\n --- \n\n" - if (!cookiesArr[0]) { - $.msg($.name, '【提示】请先获取动动账号一cookie\n直接使用NobyDa的动动签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - return; - } - for (let i = 0; i < cookiesArr.length; i++) { - if (cookiesArr[i]) { - await $.wait(Math.floor(Math.random() * (175000) + 5000)); - cookie = cookiesArr[i]; - $.UserName = decodeURIComponent(cookie.match(/pt_pin=(.+?);/) && cookie.match(/pt_pin=(.+?);/)[1]) - $.index = i + 1; - $.isLogin = true; - $.nickName = ''; - await TotalBean(); - username = $.UserName - if ($.UserName == "jd_66ea783827d30") { - username = "跑腿小弟" - } - if ($.UserName == "jd_4521b375ebb5d") { - username = "锟锟" - } - if ($.UserName == "jd_542c10c0222bc") { - username = "康康" - } - - - //加上名称 - message = message + "【羊毛姐妹】" + username + " \n\n " - that.log(`\n开始【动动账号${$.index}】${$.nickName || $.UserName}\n`); - if (!$.isLogin) { - $.msg($.name, `【提示】cookie已失效`, `动动账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); - - if ($.isNode()) { - await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `动动账号${$.index} ${$.UserName}\n请重新登录获取cookie`); - } - continue - } - subTitle = ''; - option = {}; - await shareCodesFormat(); - await jdFruit(); + await requireConfig(); + if (!cookiesArr[0]) { + $.msg($.name, '【提示】请先获取京东账号一cookie\n直接使用NobyDa的京东签到获取', 'https://bean.m.jd.com/bean/signIndex.action', { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + return; } - message += "----\n\n" - } + newShareCodes = []; + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + username = $.UserName + if (roleMap[username] != undefined) { + username = roleMap[username] + } + getManName = username - that.log(message) + //加上名称 + message = message + "【羊毛姐妹】" + username + " \n\n " + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + subTitle = ''; + option = {}; + //await shareCodesFormat(); + await jdFruit(); + } + message += "----\n\n" + that.log(message) + } + for (let i = 0; i < cookiesArr.length; i++) { + if (cookiesArr[i]) { + cookie = cookiesArr[i]; + $.UserName = decodeURIComponent(cookie.match(/pt_pin=([^; ]+)(?=;?)/) && cookie.match(/pt_pin=([^; ]+)(?=;?)/)[1]) + $.index = i + 1; + $.isLogin = true; + $.nickName = ''; + await TotalBean(); + console.log(`\n开始【京东账号${$.index}】${$.nickName || $.UserName}\n`); + if (!$.isLogin) { + $.msg($.name, `【提示】cookie已失效`, `京东账号${$.index} ${$.nickName || $.UserName}\n请重新登录获取\nhttps://bean.m.jd.com/bean/signIndex.action`, { "open-url": "https://bean.m.jd.com/bean/signIndex.action" }); + + if ($.isNode()) { + await notify.sendNotify(`${$.name}cookie已失效 - ${$.UserName}`, `京东账号${$.index} ${$.UserName}\n请重新登录获取cookie`); + } + continue + } + await masterHelpShare();//助力好友 + //互助 账号内部互助 + } + } + if ($.isNode() && allMessage && $.ctrTemp) { + await notify.sendNotify(`${$.name}`, `${allMessage}`) + } })() - .catch((e) => { - $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') - }) - .finally(() => { - that.log(message) - message = message + getPic() - postToDingTalk(message) - $.done(); - }) + .catch((e) => { + $.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '') + }) + .finally(() => { + that.log(message) + postToDingTalk(message) + $.done(); + }) async function jdFruit() { - subTitle = `【动动账号${$.index}】${$.nickName}`; - try { - await initForFarm(); - if ($.farmInfo.farmUserPro) { - // option['media-url'] = $.farmInfo.farmUserPro.goodsImage; - message = message + "【水果名称】 " + `${$.farmInfo.farmUserPro.name}` + "\n\n"; - message += "【已兑换水果】" + `${$.farmInfo.farmUserPro.winTimes}` + "次\n\n"; - that.log(`\n【动动账号${$.index}(${$.nickName || $.UserName})的${$.name}好友互助码】${$.farmInfo.farmUserPro.shareCode}\n`); - that.log(`\n【已成功兑换水果】${$.farmInfo.farmUserPro.winTimes}次\n`); - await getHelp(); - await masterHelpShare();//助力好友 - await setHelp(); - if ($.farmInfo.treeState === 2 || $.farmInfo.treeState === 3) { - option['open-url'] = urlSchema; - message = message + " " + $.UserName + "\n【提醒⏰】" + fruitName + "已可领取\n请去动动APP或微信小程序查看\n点击弹窗即达" - $.msg($.name, ``, `【动动账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去动动APP或微信小程序查看\n点击弹窗即达`, option); - if ($.isNode()) { - await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}水果已可领取`, `【动动账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去动动APP或微信小程序查看`); + subTitle = `【京东账号${$.index}】${$.nickName || $.UserName}`; + try { + await initForFarm(); + if ($.farmInfo.farmUserPro) { + // option['media-url'] = $.farmInfo.farmUserPro.goodsImage; + message = message + "【水果名称】 " + `${$.farmInfo.farmUserPro.name}` + "\n\n"; + message += "【已兑换水果】" + `${$.farmInfo.farmUserPro.winTimes}` + "次\n\n"; + console.log(`\n【京东账号${$.index}(${$.UserName})的${$.name}好友互助码】${$.farmInfo.farmUserPro.shareCode}\n`); + console.log(`\n【已成功兑换水果】${$.farmInfo.farmUserPro.winTimes}次\n`); + newShareCodes.push($.farmInfo.farmUserPro.shareCode); + await setHelp(); + //await masterHelpShare();//助力好友 + if ($.farmInfo.treeState === 2 || $.farmInfo.treeState === 3) { + option['open-url'] = urlSchema; + $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); + mes = " " + getManName + ",你好\n\n【提醒⏰】" + fruitName + "已可领取\n请去动动APP或微信小程序查看\n点击弹窗即达" + postToDingTalk2(mes) + if ($.isNode()) { + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}水果已可领取`, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看`); + } + return + } else if ($.farmInfo.treeState === 1) { + console.log(`\n${$.farmInfo.farmUserPro.name}种植中...\n`) + } else if ($.farmInfo.treeState === 0) { + //已下单购买, 但未开始种植新的水果 + option['open-url'] = urlSchema; + $.msg($.name, ``, `【京东账号${$.index}】 ${$.nickName || $.UserName}\n【提醒⏰】您忘了种植新的水果\n请去京东APP或微信小程序选购并种植新的水果\n点击弹窗即达`, option); + if ($.isNode()) { + mes = " " + getManName + ",你好\n\n【提醒⏰】您忘了种植新的水果\n请去京东APP或微信小程序选购并种植新的水果" + postToDingTalk2(mes) + await notify.sendNotify(`${$.name} - 您忘了种植新的水果`, `京东账号${$.index} ${$.nickName || $.UserName}\n【提醒⏰】您忘了种植新的水果\n请去京东APP或微信小程序选购并种植新的水果`); + } + return + } + await doDailyTask(); + await doTenWater();//浇水十次 + await getFirstWaterAward();//领取首次浇水奖励 + await getTenWaterAward();//领取10浇水奖励 + await getWaterFriendGotAward();//领取为2好友浇水奖励 + await duck(); + if (!process.env.DO_TEN_WATER_AGAIN) { + console.log('执行再次浇水') + await doTenWaterAgain();//再次浇水 + } else { + console.log('不执行再次浇水,攒水滴') + } + await predictionFruit();//预测水果成熟时间 + message = message + "----\n\n" + } else { + console.log(`初始化农场数据异常, 请登录京东 app查看农场0元水果功能是否正常,农场初始化数据: ${JSON.stringify($.farmInfo)}`); + message = message + " " + `初始化农场数据异常, 请登录动动 app查看农场0元水果功能是否正常,农场初始化数据: ${JSON.stringify($.farmInfo)}` + "\n\n"; } - return - } else if ($.farmInfo.treeState === 1) { - that.log(`\n${$.farmInfo.farmUserPro.name}种植中...\n`) - } else if ($.farmInfo.treeState === 0) { - //已下单购买, 但未开始种植新的水果 - option['open-url'] = urlSchema; - $.msg($.name, ``, `【动动账号${$.index}】 ${$.nickName || $.UserName}\n【提醒⏰】您忘了种植新的水果\n请去动动APP或微信小程序选购并种植新的水果\n点击弹窗即达`, option); - message = message + " " + $.UserName + " \n【提醒⏰】您忘了种植新的水果\n请去动动APP或微信小程序选购并种植新的水果\n点击弹窗即达" + "" - if ($.isNode()) { - await notify.sendNotify(`${$.name} - 您忘了种植新的水果`, `动动账号${$.index} ${$.nickName}\n【提醒⏰】您忘了种植新的水果\n请去动动APP或微信小程序选购并种植新的水果`); - } - return - } - await doDailyTask(); - await doTenWater();//浇水十次 - await getFirstWaterAward();//领取首次浇水奖励 - await getTenWaterAward();//领取10浇水奖励 - await getWaterFriendGotAward();//领取为2好友浇水奖励 - await duck(); - await doTenWaterAgain();//再次浇水 - await predictionFruit();//预测水果成熟时间 - message = message + "----\n\n" - } else { - that.log(`初始化农场数据异常, 请登录动动 app查看农场0元水果功能是否正常,农场初始化数据: ${JSON.stringify($.farmInfo)}`); - message = message + " " + `初始化农场数据异常, 请登录动动 app查看农场0元水果功能是否正常,农场初始化数据: ${JSON.stringify($.farmInfo)}` + "\n\n"; + } catch (e) { + console.log(`任务执行异常,请检查执行日志 ‼️‼️`); + $.logErr(e); + message = message + " " + `任务执行异常,请检查执行日志 ‼️‼️` + e + "\n\n"; + const errMsg = `京东账号${$.index} ${$.nickName || $.UserName}\n任务执行异常,请检查执行日志 ‼️‼️`; + if ($.isNode()) await notify.sendNotify(`${$.name}`, errMsg); + $.msg($.name, '', `${errMsg}`) } - } catch (e) { - that.log(`任务执行异常,请检查执行日志 ‼️‼️`); - message = message + " " + `任务执行异常,请检查执行日志 ‼️‼️` + e + "\n\n"; - $.logErr(e); - } - await showMsg(); + await showMsg(); } async function doDailyTask() { - await taskInitForFarm(); - that.log(`开始签到`); - if (!$.farmTask.signInit.todaySigned) { - await signForFarm(); //签到 - if ($.signResult.code === "0") { - that.log(`【签到成功】获得${$.signResult.amount}g💧\\n`) - //message += `【签到成功】获得${$.signResult.amount}g💧\n`//连续签到${signResult.signDay}天 - } else { - // message += `签到失败,详询日志\n`; - that.log(`签到结果: ${JSON.stringify($.signResult)}`); - } - } else { - that.log(`今天已签到,连续签到${$.farmTask.signInit.totalSigned},下次签到可得${$.farmTask.signInit.signEnergyEachAmount}g\n`); - } - // 被水滴砸中 - that.log(`被水滴砸中: ${$.farmInfo.todayGotWaterGoalTask.canPop ? '是' : '否'}`); - if ($.farmInfo.todayGotWaterGoalTask.canPop) { - await gotWaterGoalTaskForFarm(); - if ($.goalResult.code === '0') { - that.log(`【被水滴砸中】获得${$.goalResult.addEnergy}g💧\\n`); - // message += `【被水滴砸中】获得${$.goalResult.addEnergy}g💧\n` - } - } - that.log(`签到结束,开始广告浏览任务`); - if (!$.farmTask.gotBrowseTaskAdInit.f) { - let adverts = $.farmTask.gotBrowseTaskAdInit.userBrowseTaskAds - let browseReward = 0 - let browseSuccess = 0 - let browseFail = 0 - for (let advert of adverts) { //开始浏览广告 - if (advert.limit <= advert.hadFinishedTimes) { - // browseReward+=advert.reward - that.log(`${advert.mainTitle}+ ' 已完成`);//,获得${advert.reward}g - continue; - } - that.log('正在进行广告浏览任务: ' + advert.mainTitle); - await browseAdTaskForFarm(advert.advertId, 0); - if ($.browseResult.code === '0') { - that.log(`${advert.mainTitle}浏览任务完成`); - //领取奖励 - await browseAdTaskForFarm(advert.advertId, 1); - if ($.browseRwardResult.code === '0') { - that.log(`领取浏览${advert.mainTitle}广告奖励成功,获得${$.browseRwardResult.amount}g`) - browseReward += $.browseRwardResult.amount - browseSuccess++ + await taskInitForFarm(); + console.log(`开始签到`); + if (!$.farmTask.signInit.todaySigned) { + await signForFarm(); //签到 + if ($.signResult.code === "0") { + console.log(`【签到成功】获得${$.signResult.amount}g💧\\n`) + //message += `【签到成功】获得${$.signResult.amount}g💧\n`//连续签到${signResult.signDay}天 } else { - browseFail++ - that.log(`领取浏览广告奖励结果: ${JSON.stringify($.browseRwardResult)}`) + // message += `签到失败,详询日志\n`; + console.log(`签到结果: ${JSON.stringify($.signResult)}`); } - } else { - browseFail++ - that.log(`广告浏览任务结果: ${JSON.stringify($.browseResult)}`); - } - } - if (browseFail > 0) { - that.log(`【广告浏览】完成${browseSuccess}个,失败${browseFail},获得${browseReward}g💧\\n`); - // message += `【广告浏览】完成${browseSuccess}个,失败${browseFail},获得${browseReward}g💧\n`; } else { - that.log(`【广告浏览】完成${browseSuccess}个,获得${browseReward}g💧\n`); - // message += `【广告浏览】完成${browseSuccess}个,获得${browseReward}g💧\n`; + console.log(`今天已签到,连续签到${$.farmTask.signInit.totalSigned},下次签到可得${$.farmTask.signInit.signEnergyEachAmount}g\n`); } - } else { - that.log(`今天已经做过浏览广告任务\n`); - } - //定时领水 - if (!$.farmTask.gotThreeMealInit.f) { - // - await gotThreeMealForFarm(); - if ($.threeMeal.code === "0") { - that.log(`【定时领水】获得${$.threeMeal.amount}g💧\n`); - // message += `【定时领水】获得${$.threeMeal.amount}g💧\n`; + // 被水滴砸中 + console.log(`被水滴砸中: ${$.farmInfo.todayGotWaterGoalTask.canPop ? '是' : '否'}`); + if ($.farmInfo.todayGotWaterGoalTask.canPop) { + await gotWaterGoalTaskForFarm(); + if ($.goalResult.code === '0') { + console.log(`【被水滴砸中】获得${$.goalResult.addEnergy}g💧\\n`); + // message += `【被水滴砸中】获得${$.goalResult.addEnergy}g💧\n` + } + } + console.log(`签到结束,开始广告浏览任务`); + if (!$.farmTask.gotBrowseTaskAdInit.f) { + let adverts = $.farmTask.gotBrowseTaskAdInit.userBrowseTaskAds + let browseReward = 0 + let browseSuccess = 0 + let browseFail = 0 + for (let advert of adverts) { //开始浏览广告 + if (advert.limit <= advert.hadFinishedTimes) { + // browseReward+=advert.reward + console.log(`${advert.mainTitle}+ ' 已完成`);//,获得${advert.reward}g + continue; + } + console.log('正在进行广告浏览任务: ' + advert.mainTitle); + await browseAdTaskForFarm(advert.advertId, 0); + if ($.browseResult.code === '0') { + console.log(`${advert.mainTitle}浏览任务完成`); + //领取奖励 + await browseAdTaskForFarm(advert.advertId, 1); + if ($.browseRwardResult.code === '0') { + console.log(`领取浏览${advert.mainTitle}广告奖励成功,获得${$.browseRwardResult.amount}g`) + browseReward += $.browseRwardResult.amount + browseSuccess++ + } else { + browseFail++ + console.log(`领取浏览广告奖励结果: ${JSON.stringify($.browseRwardResult)}`) + } + } else { + browseFail++ + console.log(`广告浏览任务结果: ${JSON.stringify($.browseResult)}`); + } + } + if (browseFail > 0) { + console.log(`【广告浏览】完成${browseSuccess}个,失败${browseFail},获得${browseReward}g💧\\n`); + // message += `【广告浏览】完成${browseSuccess}个,失败${browseFail},获得${browseReward}g💧\n`; + } else { + console.log(`【广告浏览】完成${browseSuccess}个,获得${browseReward}g💧\n`); + // message += `【广告浏览】完成${browseSuccess}个,获得${browseReward}g💧\n`; + } } else { - // message += `【定时领水】失败,详询日志\n`; - that.log(`定时领水成功结果: ${JSON.stringify($.threeMeal)}`); + console.log(`今天已经做过浏览广告任务\n`); } - } else { - that.log('当前不在定时领水时间断或者已经领过\n') - } - //给好友浇水 - if (!$.farmTask.waterFriendTaskInit.f) { - if ($.farmTask.waterFriendTaskInit.waterFriendCountKey < $.farmTask.waterFriendTaskInit.waterFriendMax) { - await doFriendsWater(); + //定时领水 + if (!$.farmTask.gotThreeMealInit.f) { + // + await gotThreeMealForFarm(); + if ($.threeMeal.code === "0") { + console.log(`【定时领水】获得${$.threeMeal.amount}g💧\n`); + // message += `【定时领水】获得${$.threeMeal.amount}g💧\n`; + } else { + // message += `【定时领水】失败,详询日志\n`; + console.log(`定时领水成功结果: ${JSON.stringify($.threeMeal)}`); + } + } else { + console.log('当前不在定时领水时间断或者已经领过\n') } - } else { - that.log(`给${$.farmTask.waterFriendTaskInit.waterFriendMax}个好友浇水任务已完成\n`) - } - // await Promise.all([ - // clockInIn(),//打卡领水 - // executeWaterRains(),//水滴雨 - // masterHelpShare(),//助力好友 - // getExtraAward(),//领取额外水滴奖励 - // turntableFarm()//天天抽奖得好礼 - // ]) - // await getAwardInviteFriend(); - await clockInIn();//打卡领水 - await executeWaterRains();//水滴雨 - await getExtraAward();//领取额外水滴奖励 - await turntableFarm()//天天抽奖得好礼 + //给好友浇水 + if (!$.farmTask.waterFriendTaskInit.f) { + if ($.farmTask.waterFriendTaskInit.waterFriendCountKey < $.farmTask.waterFriendTaskInit.waterFriendMax) { + await doFriendsWater(); + } + } else { + console.log(`给${$.farmTask.waterFriendTaskInit.waterFriendMax}个好友浇水任务已完成\n`) + } + // await Promise.all([ + // clockInIn(),//打卡领水 + // executeWaterRains(),//水滴雨 + // masterHelpShare(),//助力好友 + // getExtraAward(),//领取额外水滴奖励 + // turntableFarm()//天天抽奖得好礼 + // ]) + await getAwardInviteFriend(); + await clockInIn();//打卡领水 + await executeWaterRains();//水滴雨 + await getExtraAward();//领取额外水滴奖励 + await turntableFarm()//天天抽奖得好礼 } async function predictionFruit() { - that.log('开始预测水果成熟时间\n'); - await initForFarm(); - await taskInitForFarm(); - let waterEveryDayT = $.farmTask.totalWaterTaskInit.totalWaterTaskTimes;//今天到到目前为止,浇了多少次水 - message += "【今日共浇水】" + `${waterEveryDayT}` + "次 \n\n" - message += "【剩余 水滴】" + `${$.farmInfo.farmUserPro.totalEnergy}` + "g💧 \n\n" - message += "【水果🍉进度】" + `${(($.farmInfo.farmUserPro.treeEnergy / - $.farmInfo.farmUserPro.treeTotalEnergy) * 100).toFixed(2)}` + "%,已浇水" + `${$.farmInfo.farmUserPro.treeEnergy / 10}` + "次,还需" + `${($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy) / 10}` + "次 \n\n" - if ($.farmInfo.toFlowTimes > ($.farmInfo.farmUserPro.treeEnergy / 10)) { - message += "【水果🍉进度】" + `【开花进度】再浇水${$.farmInfo.toFlowTimes - $.farmInfo.farmUserPro.treeEnergy / 10}次开花\n\n` + "\n\n" - } else if ($.farmInfo.toFruitTimes > ($.farmInfo.farmUserPro.treeEnergy / 10)) { - message += "【水果🍉进度】" + `【结果进度】再浇水${$.farmInfo.toFruitTimes - $.farmInfo.farmUserPro.treeEnergy / 10}次结果\n\n` + "\n\n" - } - // 预测n天后水果课可兑换功能 - let waterTotalT = ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy - $.farmInfo.farmUserPro.totalEnergy) / 10;//一共还需浇多少次水 + console.log('开始预测水果成熟时间\n'); + await initForFarm(); + await taskInitForFarm(); + let waterEveryDayT = $.farmTask.totalWaterTaskInit.totalWaterTaskTimes;//今天到到目前为止,浇了多少次水 + message += "【今日共浇水】" + `${waterEveryDayT}` + "次 \n\n" + message += "【剩余 水滴】" + `${$.farmInfo.farmUserPro.totalEnergy}` + "g💧 \n\n" + message += "【水果🍉进度】" + `${(($.farmInfo.farmUserPro.treeEnergy / + $.farmInfo.farmUserPro.treeTotalEnergy) * 100).toFixed(2)}` + "%,已浇水" + `${$.farmInfo.farmUserPro.treeEnergy / 10}` + "次,还需" + `${($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy) / 10}` + "次 \n\n" - let waterD = Math.ceil(waterTotalT / waterEveryDayT); - message = message + "" + `【预测】${waterD === 1 ? '明天' : waterD === 2 ? '后天' : waterD + '天之后'}(${timeFormat(24 * 60 * 60 * 1000 * waterD + Date.now())}日)可兑换水果🍉` + "\n\n"; + if ($.farmInfo.toFlowTimes > ($.farmInfo.farmUserPro.treeEnergy / 10)) { + message += "【水果🍉进度】" + `【开花进度】再浇水${$.farmInfo.toFlowTimes - $.farmInfo.farmUserPro.treeEnergy / 10}次开花\n\n` + "\n\n" + } else if ($.farmInfo.toFruitTimes > ($.farmInfo.farmUserPro.treeEnergy / 10)) { + message += "【水果🍉进度】" + `【结果进度】再浇水${$.farmInfo.toFruitTimes - $.farmInfo.farmUserPro.treeEnergy / 10}次结果\n\n` + "\n\n" + } + // 预测n天后水果课可兑换功能 + let waterTotalT = ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy - $.farmInfo.farmUserPro.totalEnergy) / 10;//一共还需浇多少次水 + + let waterD = Math.ceil(waterTotalT / waterEveryDayT); + + message = message + "" + `【预测】${waterD === 1 ? '明天' : waterD === 2 ? '后天' : waterD + '天之后'}(${timeFormat(24 * 60 * 60 * 1000 * waterD + Date.now())}日)可兑换水果🍉` + "\n\n"; } //浇水十次 async function doTenWater() { - jdFruitBeanCard = $.getdata('jdFruitBeanCard') ? $.getdata('jdFruitBeanCard') : jdFruitBeanCard; - if ($.isNode() && process.env.FRUIT_BEAN_CARD) { - jdFruitBeanCard = process.env.FRUIT_BEAN_CARD; - } - await myCardInfoForFarm(); - const { fastCard, doubleCard, beanCard, signCard } = $.myCardInfoRes; - if (`${jdFruitBeanCard}` === 'true' && JSON.stringify($.myCardInfoRes).match(`限时翻倍`) && beanCard > 0) { - that.log(`您设置的是使用水滴换豆卡,且背包有水滴换豆卡${beanCard}张, 跳过10次浇水任务`) - return - } - if ($.farmTask.totalWaterTaskInit.totalWaterTaskTimes < $.farmTask.totalWaterTaskInit.totalWaterTaskLimit) { - that.log(`\n准备浇水十次`); - let waterCount = 0; - isFruitFinished = false; - for (; waterCount < $.farmTask.totalWaterTaskInit.totalWaterTaskLimit - $.farmTask.totalWaterTaskInit.totalWaterTaskTimes; waterCount++) { - that.log(`第${waterCount + 1}次浇水`); - await waterGoodForFarm(); - that.log(`本次浇水结果: ${JSON.stringify($.waterResult)}`); - if ($.waterResult.code === '0') { - that.log(`剩余水滴${$.waterResult.totalEnergy}g`); - if ($.waterResult.finished) { - // 已证实,waterResult.finished为true,表示水果可以去领取兑换了 - isFruitFinished = true; - break - } else { - if ($.waterResult.totalEnergy < 10) { - that.log(`水滴不够,结束浇水`) - break - } - await gotStageAward();//领取阶段性水滴奖励 + jdFruitBeanCard = $.getdata('jdFruitBeanCard') ? $.getdata('jdFruitBeanCard') : jdFruitBeanCard; + if ($.isNode() && process.env.FRUIT_BEAN_CARD) { + jdFruitBeanCard = process.env.FRUIT_BEAN_CARD; + } + await myCardInfoForFarm(); + const { fastCard, doubleCard, beanCard, signCard } = $.myCardInfoRes; + if (`${jdFruitBeanCard}` === 'true' && JSON.stringify($.myCardInfoRes).match(`限时翻倍`) && beanCard > 0) { + console.log(`您设置的是使用水滴换豆卡,且背包有水滴换豆卡${beanCard}张, 跳过10次浇水任务`) + return + } + if ($.farmTask.totalWaterTaskInit.totalWaterTaskTimes < $.farmTask.totalWaterTaskInit.totalWaterTaskLimit) { + console.log(`\n准备浇水十次`); + let waterCount = 0; + isFruitFinished = false; + for (; waterCount < $.farmTask.totalWaterTaskInit.totalWaterTaskLimit - $.farmTask.totalWaterTaskInit.totalWaterTaskTimes; waterCount++) { + console.log(`第${waterCount + 1}次浇水`); + await waterGoodForFarm(); + console.log(`本次浇水结果: ${JSON.stringify($.waterResult)}`); + if ($.waterResult.code === '0') { + console.log(`剩余水滴${$.waterResult.totalEnergy}g`); + if ($.waterResult.finished) { + // 已证实,waterResult.finished为true,表示水果可以去领取兑换了 + isFruitFinished = true; + break + } else { + if ($.waterResult.totalEnergy < 10) { + console.log(`水滴不够,结束浇水`) + break + } + await gotStageAward();//领取阶段性水滴奖励 + } + } else { + console.log('浇水出现失败异常,跳出不在继续浇水') + break; + } } - } else { - that.log('浇水出现失败异常,跳出不在继续浇水') - break; - } + if (isFruitFinished) { + option['open-url'] = urlSchema; + $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); + $.done(); + if ($.isNode()) { + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}水果已可领取`, `京东账号${$.index} ${$.nickName || $.UserName}\n${$.farmInfo.farmUserPro.name}已可领取`); + } + } + } else { + console.log('\n今日已完成10次浇水任务\n'); } - if (isFruitFinished) { - option['open-url'] = urlSchema; - $.msg($.name, ``, `【动动账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去动动APP或微信小程序查看\n点击弹窗即达`, option); - $.done(); - if ($.isNode()) { - await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}水果已可领取`, `动动账号${$.index} ${$.nickName}\n${$.farmInfo.farmUserPro.name}已可领取`); - } - } - } else { - that.log('\n今日已完成10次浇水任务\n'); - } } //领取首次浇水奖励 async function getFirstWaterAward() { - await taskInitForFarm(); - //领取首次浇水奖励 - if (!$.farmTask.firstWaterInit.f && $.farmTask.firstWaterInit.totalWaterTimes > 0) { - await firstWaterTaskForFarm(); - if ($.firstWaterReward.code === '0') { - that.log(`【首次浇水奖励】获得${$.firstWaterReward.amount}g💧\n`); - // message += `【首次浇水奖励】获得${$.firstWaterReward.amount}g💧\n`; + await taskInitForFarm(); + //领取首次浇水奖励 + if (!$.farmTask.firstWaterInit.f && $.farmTask.firstWaterInit.totalWaterTimes > 0) { + await firstWaterTaskForFarm(); + if ($.firstWaterReward.code === '0') { + console.log(`【首次浇水奖励】获得${$.firstWaterReward.amount}g💧\n`); + // message += `【首次浇水奖励】获得${$.firstWaterReward.amount}g💧\n`; + } else { + // message += '【首次浇水奖励】领取奖励失败,详询日志\n'; + console.log(`领取首次浇水奖励结果: ${JSON.stringify($.firstWaterReward)}`); + } } else { - // message += '【首次浇水奖励】领取奖励失败,详询日志\n'; - that.log(`领取首次浇水奖励结果: ${JSON.stringify($.firstWaterReward)}`); + console.log('首次浇水奖励已领取\n') } - } else { - that.log('首次浇水奖励已领取\n') - } } //领取十次浇水奖励 async function getTenWaterAward() { - //领取10次浇水奖励 - if (!$.farmTask.totalWaterTaskInit.f && $.farmTask.totalWaterTaskInit.totalWaterTaskTimes >= $.farmTask.totalWaterTaskInit.totalWaterTaskLimit) { - await totalWaterTaskForFarm(); - if ($.totalWaterReward.code === '0') { - that.log(`【十次浇水奖励】获得${$.totalWaterReward.totalWaterTaskEnergy}g💧\n`); - // message += `【十次浇水奖励】获得${$.totalWaterReward.totalWaterTaskEnergy}g💧\n`; - } else { - // message += '【十次浇水奖励】领取奖励失败,详询日志\n'; - that.log(`领取10次浇水奖励结果: ${JSON.stringify($.totalWaterReward)}`); + //领取10次浇水奖励 + if (!$.farmTask.totalWaterTaskInit.f && $.farmTask.totalWaterTaskInit.totalWaterTaskTimes >= $.farmTask.totalWaterTaskInit.totalWaterTaskLimit) { + await totalWaterTaskForFarm(); + if ($.totalWaterReward.code === '0') { + console.log(`【十次浇水奖励】获得${$.totalWaterReward.totalWaterTaskEnergy}g💧\n`); + // message += `【十次浇水奖励】获得${$.totalWaterReward.totalWaterTaskEnergy}g💧\n`; + } else { + // message += '【十次浇水奖励】领取奖励失败,详询日志\n'; + console.log(`领取10次浇水奖励结果: ${JSON.stringify($.totalWaterReward)}`); + } + } else if ($.farmTask.totalWaterTaskInit.totalWaterTaskTimes < $.farmTask.totalWaterTaskInit.totalWaterTaskLimit) { + // message += `【十次浇水奖励】任务未完成,今日浇水${$.farmTask.totalWaterTaskInit.totalWaterTaskTimes}次\n`; + console.log(`【十次浇水奖励】任务未完成,今日浇水${$.farmTask.totalWaterTaskInit.totalWaterTaskTimes}次\n`); } - } else if ($.farmTask.totalWaterTaskInit.totalWaterTaskTimes < $.farmTask.totalWaterTaskInit.totalWaterTaskLimit) { - // message += `【十次浇水奖励】任务未完成,今日浇水${$.farmTask.totalWaterTaskInit.totalWaterTaskTimes}次\n`; - that.log(`【十次浇水奖励】任务未完成,今日浇水${$.farmTask.totalWaterTaskInit.totalWaterTaskTimes}次\n`); - } - that.log('finished 水果任务完成!'); + console.log('finished 水果任务完成!'); } //再次浇水 async function doTenWaterAgain() { - that.log('开始检查剩余水滴能否再次浇水再次浇水\n'); - await initForFarm(); - let totalEnergy = $.farmInfo.farmUserPro.totalEnergy; - that.log(`剩余水滴${totalEnergy}g\n`); - await myCardInfoForFarm(); - const { fastCard, doubleCard, beanCard, signCard } = $.myCardInfoRes; - that.log(`背包已有道具:\n快速浇水卡:${fastCard === -1 ? '未解锁' : fastCard + '张'}\n水滴翻倍卡:${doubleCard === -1 ? '未解锁' : doubleCard + '张'}\n水滴换京豆卡:${beanCard === -1 ? '未解锁' : beanCard + '张'}\n加签卡:${signCard === -1 ? '未解锁' : signCard + '张'}\n`) - if (totalEnergy >= 100 && doubleCard > 0) { - //使用翻倍水滴卡 - for (let i = 0; i < new Array(doubleCard).fill('').length; i++) { - await userMyCardForFarm('doubleCard'); - that.log(`使用翻倍水滴卡结果:${JSON.stringify($.userMyCardRes)}`); - } + console.log('开始检查剩余水滴能否再次浇水再次浇水\n'); await initForFarm(); - totalEnergy = $.farmInfo.farmUserPro.totalEnergy; - } - if (signCard > 0) { - //使用加签卡 - for (let i = 0; i < new Array(signCard).fill('').length; i++) { - await userMyCardForFarm('signCard'); - that.log(`使用加签卡结果:${JSON.stringify($.userMyCardRes)}`); + let totalEnergy = $.farmInfo.farmUserPro.totalEnergy; + console.log(`剩余水滴${totalEnergy}g\n`); + await myCardInfoForFarm(); + const { fastCard, doubleCard, beanCard, signCard } = $.myCardInfoRes; + console.log(`背包已有道具:\n快速浇水卡:${fastCard === -1 ? '未解锁' : fastCard + '张'}\n水滴翻倍卡:${doubleCard === -1 ? '未解锁' : doubleCard + '张'}\n水滴换京豆卡:${beanCard === -1 ? '未解锁' : beanCard + '张'}\n加签卡:${signCard === -1 ? '未解锁' : signCard + '张'}\n`) + if (totalEnergy >= 100 && doubleCard > 0) { + //使用翻倍水滴卡 + for (let i = 0; i < new Array(doubleCard).fill('').length; i++) { + await userMyCardForFarm('doubleCard'); + console.log(`使用翻倍水滴卡结果:${JSON.stringify($.userMyCardRes)}`); + } + await initForFarm(); + totalEnergy = $.farmInfo.farmUserPro.totalEnergy; } - await initForFarm(); - totalEnergy = $.farmInfo.farmUserPro.totalEnergy; - } - jdFruitBeanCard = $.getdata('jdFruitBeanCard') ? $.getdata('jdFruitBeanCard') : jdFruitBeanCard; - if ($.isNode() && process.env.FRUIT_BEAN_CARD) { - jdFruitBeanCard = process.env.FRUIT_BEAN_CARD; - } - if (`${jdFruitBeanCard}` === 'true' && JSON.stringify($.myCardInfoRes).match('限时翻倍')) { - that.log(`\n您设置的是水滴换豆功能,现在为您换豆`); - if (totalEnergy >= 100 && $.myCardInfoRes.beanCard > 0) { - //使用水滴换豆卡 - await userMyCardForFarm('beanCard'); - that.log(`使用水滴换豆卡结果:${JSON.stringify($.userMyCardRes)}`); - if ($.userMyCardRes.code === '0') { - message += "【水果🍉进度】" + `【水滴换豆卡】获得${$.userMyCardRes.beanCount}个京豆\n` + "\n\n"; - return - } + if (signCard > 0) { + //使用加签卡 + for (let i = 0; i < new Array(signCard).fill('').length; i++) { + await userMyCardForFarm('signCard'); + console.log(`使用加签卡结果:${JSON.stringify($.userMyCardRes)}`); + } + await initForFarm(); + totalEnergy = $.farmInfo.farmUserPro.totalEnergy; + } + jdFruitBeanCard = $.getdata('jdFruitBeanCard') ? $.getdata('jdFruitBeanCard') : jdFruitBeanCard; + if ($.isNode() && process.env.FRUIT_BEAN_CARD) { + jdFruitBeanCard = process.env.FRUIT_BEAN_CARD; + } + if (`${jdFruitBeanCard}` === 'true' && JSON.stringify($.myCardInfoRes).match('限时翻倍')) { + console.log(`\n您设置的是水滴换豆功能,现在为您换豆`); + if (totalEnergy >= 100 && $.myCardInfoRes.beanCard > 0) { + //使用水滴换豆卡 + await userMyCardForFarm('beanCard'); + console.log(`使用水滴换豆卡结果:${JSON.stringify($.userMyCardRes)}`); + if ($.userMyCardRes.code === '0') { + message += `【水滴换豆卡】获得${$.userMyCardRes.beanCount}个京豆\n`; + return + } + } else { + console.log(`您目前水滴:${totalEnergy}g,水滴换豆卡${$.myCardInfoRes.beanCard}张,暂不满足水滴换豆的条件,为您继续浇水`) + } + } + // if (totalEnergy > 100 && $.myCardInfoRes.fastCard > 0) { + // //使用快速浇水卡 + // await userMyCardForFarm('fastCard'); + // console.log(`使用快速浇水卡结果:${JSON.stringify($.userMyCardRes)}`); + // if ($.userMyCardRes.code === '0') { + // console.log(`已使用快速浇水卡浇水${$.userMyCardRes.waterEnergy}g`); + // } + // await initForFarm(); + // totalEnergy = $.farmInfo.farmUserPro.totalEnergy; + // } + // 所有的浇水(10次浇水)任务,获取水滴任务完成后,如果剩余水滴大于等于60g,则继续浇水(保留部分水滴是用于完成第二天的浇水10次的任务) + let overageEnergy = totalEnergy - retainWater; + if (totalEnergy >= ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy)) { + //如果现有的水滴,大于水果可兑换所需的对滴(也就是把水滴浇完,水果就能兑换了) + isFruitFinished = false; + for (let i = 0; i < ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy) / 10; i++) { + await waterGoodForFarm(); + console.log(`本次浇水结果(水果马上就可兑换了): ${JSON.stringify($.waterResult)}`); + if ($.waterResult.code === '0') { + console.log('\n浇水10g成功\n'); + if ($.waterResult.finished) { + // 已证实,waterResult.finished为true,表示水果可以去领取兑换了 + isFruitFinished = true; + break + } else { + console.log(`目前水滴【${$.waterResult.totalEnergy}】g,继续浇水,水果马上就可以兑换了`) + } + } else { + console.log('浇水出现失败异常,跳出不在继续浇水') + break; + } + } + if (isFruitFinished) { + option['open-url'] = urlSchema; + $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); + $.done(); + if ($.isNode()) { + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}水果已可领取`, `京东账号${$.index} ${$.nickName || $.UserName}\n${$.farmInfo.farmUserPro.name}已可领取`); + } + } + } else if (overageEnergy >= 10) { + console.log("目前剩余水滴:【" + totalEnergy + "】g,可继续浇水"); + isFruitFinished = false; + for (let i = 0; i < parseInt(overageEnergy / 10); i++) { + await waterGoodForFarm(); + console.log(`本次浇水结果: ${JSON.stringify($.waterResult)}`); + if ($.waterResult.code === '0') { + console.log(`\n浇水10g成功,剩余${$.waterResult.totalEnergy}\n`) + if ($.waterResult.finished) { + // 已证实,waterResult.finished为true,表示水果可以去领取兑换了 + isFruitFinished = true; + break + } else { + await gotStageAward() + } + } else { + console.log('浇水出现失败异常,跳出不在继续浇水') + break; + } + } + if (isFruitFinished) { + option['open-url'] = urlSchema; + $.msg($.name, ``, `【京东账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去京东APP或微信小程序查看\n点击弹窗即达`, option); + $.done(); + if ($.isNode()) { + await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}水果已可领取`, `京东账号${$.index} ${$.nickName || $.UserName}\n${$.farmInfo.farmUserPro.name}已可领取`); + } + } } else { - that.log(`您目前水滴:${totalEnergy}g,水滴换豆卡${$.myCardInfoRes.beanCard}张,暂不满足水滴换豆的条件,为您继续浇水`) + console.log("目前剩余水滴:【" + totalEnergy + "】g,不再继续浇水,保留部分水滴用于完成第二天【十次浇水得水滴】任务") } - } - // if (totalEnergy > 100 && $.myCardInfoRes.fastCard > 0) { - // //使用快速浇水卡 - // await userMyCardForFarm('fastCard'); - // that.log(`使用快速浇水卡结果:${JSON.stringify($.userMyCardRes)}`); - // if ($.userMyCardRes.code === '0') { - // that.log(`已使用快速浇水卡浇水${$.userMyCardRes.waterEnergy}g`); - // } - // await initForFarm(); - // totalEnergy = $.farmInfo.farmUserPro.totalEnergy; - // } - // 所有的浇水(10次浇水)任务,获取水滴任务完成后,如果剩余水滴大于等于60g,则继续浇水(保留部分水滴是用于完成第二天的浇水10次的任务) - let overageEnergy = totalEnergy - retainWater; - if (totalEnergy >= ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy)) { - //如果现有的水滴,大于水果可兑换所需的对滴(也就是把水滴浇完,水果就能兑换了) - isFruitFinished = false; - for (let i = 0; i < ($.farmInfo.farmUserPro.treeTotalEnergy - $.farmInfo.farmUserPro.treeEnergy) / 10; i++) { - await waterGoodForFarm(); - that.log(`本次浇水结果(水果马上就可兑换了): ${JSON.stringify($.waterResult)}`); - if ($.waterResult.code === '0') { - that.log('\n浇水10g成功\n'); - if ($.waterResult.finished) { - // 已证实,waterResult.finished为true,表示水果可以去领取兑换了 - isFruitFinished = true; - break - } else { - that.log(`目前水滴【${$.waterResult.totalEnergy}】g,继续浇水,水果马上就可以兑换了`) - } - } else { - that.log('浇水出现失败异常,跳出不在继续浇水') - break; - } - } - if (isFruitFinished) { - option['open-url'] = urlSchema; - $.msg($.name, ``, `【动动账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去动动APP或微信小程序查看\n点击弹窗即达`, option); - $.done(); - if ($.isNode()) { - await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}水果已可领取`, `动动账号${$.index} ${$.nickName}\n${$.farmInfo.farmUserPro.name}已可领取`); - } - } - } else if (overageEnergy >= 10) { - that.log("目前剩余水滴:【" + totalEnergy + "】g,可继续浇水"); - isFruitFinished = false; - for (let i = 0; i < parseInt(overageEnergy / 10); i++) { - await waterGoodForFarm(); - that.log(`本次浇水结果: ${JSON.stringify($.waterResult)}`); - if ($.waterResult.code === '0') { - that.log(`\n浇水10g成功,剩余${$.waterResult.totalEnergy}\n`) - if ($.waterResult.finished) { - // 已证实,waterResult.finished为true,表示水果可以去领取兑换了 - isFruitFinished = true; - break - } else { - await gotStageAward() - } - } else { - that.log('浇水出现失败异常,跳出不在继续浇水') - break; - } - } - if (isFruitFinished) { - option['open-url'] = urlSchema; - $.msg($.name, ``, `【动动账号${$.index}】${$.nickName || $.UserName}\n【提醒⏰】${$.farmInfo.farmUserPro.name}已可领取\n请去动动APP或微信小程序查看\n点击弹窗即达`, option); - $.done(); - if ($.isNode()) { - await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}水果已可领取`, `动动账号${$.index} ${$.nickName}\n${$.farmInfo.farmUserPro.name}已可领取`); - } - } - } else { - that.log("目前剩余水滴:【" + totalEnergy + "】g,不再继续浇水,保留部分水滴用于完成第二天【十次浇水得水滴】任务") - } } //领取阶段性水滴奖励 function gotStageAward() { - return new Promise(async resolve => { - if ($.waterResult.waterStatus === 0 && $.waterResult.treeEnergy === 10) { - that.log('果树发芽了,奖励30g水滴'); - await gotStageAwardForFarm('1'); - that.log(`浇水阶段奖励1领取结果 ${JSON.stringify($.gotStageAwardForFarmRes)}`); - if ($.gotStageAwardForFarmRes.code === '0') { - // message += `【果树发芽了】奖励${$.gotStageAwardForFarmRes.addEnergy}\n`; - that.log(`【果树发芽了】奖励${$.gotStageAwardForFarmRes.addEnergy}\n`); - } - } else if ($.waterResult.waterStatus === 1) { - that.log('果树开花了,奖励40g水滴'); - await gotStageAwardForFarm('2'); - that.log(`浇水阶段奖励2领取结果 ${JSON.stringify($.gotStageAwardForFarmRes)}`); - if ($.gotStageAwardForFarmRes.code === '0') { - // message += `【果树开花了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`; - that.log(`【果树开花了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`); - } - } else if ($.waterResult.waterStatus === 2) { - that.log('果树长出小果子啦, 奖励50g水滴'); - await gotStageAwardForFarm('3'); - that.log(`浇水阶段奖励3领取结果 ${JSON.stringify($.gotStageAwardForFarmRes)}`) - if ($.gotStageAwardForFarmRes.code === '0') { - // message += `【果树结果了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`; - that.log(`【果树结果了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`); - } - } - resolve() - }) + return new Promise(async resolve => { + if ($.waterResult.waterStatus === 0 && $.waterResult.treeEnergy === 10) { + console.log('果树发芽了,奖励30g水滴'); + await gotStageAwardForFarm('1'); + console.log(`浇水阶段奖励1领取结果 ${JSON.stringify($.gotStageAwardForFarmRes)}`); + if ($.gotStageAwardForFarmRes.code === '0') { + // message += `【果树发芽了】奖励${$.gotStageAwardForFarmRes.addEnergy}\n`; + console.log(`【果树发芽了】奖励${$.gotStageAwardForFarmRes.addEnergy}\n`); + } + } else if ($.waterResult.waterStatus === 1) { + console.log('果树开花了,奖励40g水滴'); + await gotStageAwardForFarm('2'); + console.log(`浇水阶段奖励2领取结果 ${JSON.stringify($.gotStageAwardForFarmRes)}`); + if ($.gotStageAwardForFarmRes.code === '0') { + // message += `【果树开花了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`; + console.log(`【果树开花了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`); + } + } else if ($.waterResult.waterStatus === 2) { + console.log('果树长出小果子啦, 奖励50g水滴'); + await gotStageAwardForFarm('3'); + console.log(`浇水阶段奖励3领取结果 ${JSON.stringify($.gotStageAwardForFarmRes)}`) + if ($.gotStageAwardForFarmRes.code === '0') { + // message += `【果树结果了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`; + console.log(`【果树结果了】奖励${$.gotStageAwardForFarmRes.addEnergy}g💧\n`); + } + } + resolve() + }) } //天天抽奖活动 async function turntableFarm() { - await initForTurntableFarm(); - if ($.initForTurntableFarmRes.code === '0') { - //领取定时奖励 //4小时一次 - let { timingIntervalHours, timingLastSysTime, sysTime, timingGotStatus, remainLotteryTimes, turntableInfos } = $.initForTurntableFarmRes; + await initForTurntableFarm(); + if ($.initForTurntableFarmRes.code === '0') { + //领取定时奖励 //4小时一次 + let { timingIntervalHours, timingLastSysTime, sysTime, timingGotStatus, remainLotteryTimes, turntableInfos } = $.initForTurntableFarmRes; - if (!timingGotStatus) { - that.log(`是否到了领取免费赠送的抽奖机会----${sysTime > (timingLastSysTime + 60 * 60 * timingIntervalHours * 1000)}`) - if (sysTime > (timingLastSysTime + 60 * 60 * timingIntervalHours * 1000)) { - await timingAwardForTurntableFarm(); - that.log(`领取定时奖励结果${JSON.stringify($.timingAwardRes)}`); - await initForTurntableFarm(); - remainLotteryTimes = $.initForTurntableFarmRes.remainLotteryTimes; - } else { - that.log(`免费赠送的抽奖机会未到时间`) - } - } else { - that.log('4小时候免费赠送的抽奖机会已领取') - } - if ($.initForTurntableFarmRes.turntableBrowserAds && $.initForTurntableFarmRes.turntableBrowserAds.length > 0) { - for (let index = 0; index < $.initForTurntableFarmRes.turntableBrowserAds.length; index++) { - if (!$.initForTurntableFarmRes.turntableBrowserAds[index].status) { - that.log(`开始浏览天天抽奖的第${index + 1}个逛会场任务`) - await browserForTurntableFarm(1, $.initForTurntableFarmRes.turntableBrowserAds[index].adId); - if ($.browserForTurntableFarmRes.code === '0' && $.browserForTurntableFarmRes.status) { - that.log(`第${index + 1}个逛会场任务完成,开始领取水滴奖励\n`) - await browserForTurntableFarm(2, $.initForTurntableFarmRes.turntableBrowserAds[index].adId); - if ($.browserForTurntableFarmRes.code === '0') { - that.log(`第${index + 1}个逛会场任务领取水滴奖励完成\n`) - await initForTurntableFarm(); - remainLotteryTimes = $.initForTurntableFarmRes.remainLotteryTimes; + if (!timingGotStatus) { + console.log(`是否到了领取免费赠送的抽奖机会----${sysTime > (timingLastSysTime + 60 * 60 * timingIntervalHours * 1000)}`) + if (sysTime > (timingLastSysTime + 60 * 60 * timingIntervalHours * 1000)) { + await timingAwardForTurntableFarm(); + console.log(`领取定时奖励结果${JSON.stringify($.timingAwardRes)}`); + await initForTurntableFarm(); + remainLotteryTimes = $.initForTurntableFarmRes.remainLotteryTimes; + } else { + console.log(`免费赠送的抽奖机会未到时间`) } - } } else { - that.log(`浏览天天抽奖的第${index + 1}个逛会场任务已完成`) + console.log('4小时候免费赠送的抽奖机会已领取') } - } - } - //天天抽奖助力 - that.log('开始天天抽奖--好友助力--每人每天只有三次助力机会.') - for (let code of newShareCodes) { - if (code === $.farmInfo.farmUserPro.shareCode) { - that.log('天天抽奖-不能自己给自己助力\n') - continue - } - await lotteryMasterHelp(code); - // that.log('天天抽奖助力结果',lotteryMasterHelpRes.helpResult) - if ($.lotteryMasterHelpRes.helpResult.code === '0') { - that.log(`天天抽奖-助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}成功\n`) - } else if ($.lotteryMasterHelpRes.helpResult.code === '11') { - that.log(`天天抽奖-不要重复助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}\n`) - } else if ($.lotteryMasterHelpRes.helpResult.code === '13') { - that.log(`天天抽奖-助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}失败,助力次数耗尽\n`); - break; - } - } - that.log(`---天天抽奖次数remainLotteryTimes----${remainLotteryTimes}次`) - //抽奖 - if (remainLotteryTimes > 0) { - that.log('开始抽奖') - let lotteryResult = ''; - for (let i = 0; i < new Array(remainLotteryTimes).fill('').length; i++) { - await lotteryForTurntableFarm() - that.log(`第${i + 1}次抽奖结果${JSON.stringify($.lotteryRes)}`); - if ($.lotteryRes.code === '0') { - turntableInfos.map((item) => { - if (item.type === $.lotteryRes.type) { - that.log(`lotteryRes.type${$.lotteryRes.type}`); - if ($.lotteryRes.type.match(/bean/g) && $.lotteryRes.type.match(/bean/g)[0] === 'bean') { - lotteryResult += `${item.name}个,`; - } else if ($.lotteryRes.type.match(/water/g) && $.lotteryRes.type.match(/water/g)[0] === 'water') { - lotteryResult += `${item.name},`; - } else { - lotteryResult += `${item.name},`; - } + if ($.initForTurntableFarmRes.turntableBrowserAds && $.initForTurntableFarmRes.turntableBrowserAds.length > 0) { + for (let index = 0; index < $.initForTurntableFarmRes.turntableBrowserAds.length; index++) { + if (!$.initForTurntableFarmRes.turntableBrowserAds[index].status) { + console.log(`开始浏览天天抽奖的第${index + 1}个逛会场任务`) + await browserForTurntableFarm(1, $.initForTurntableFarmRes.turntableBrowserAds[index].adId); + if ($.browserForTurntableFarmRes.code === '0' && $.browserForTurntableFarmRes.status) { + console.log(`第${index + 1}个逛会场任务完成,开始领取水滴奖励\n`) + await browserForTurntableFarm(2, $.initForTurntableFarmRes.turntableBrowserAds[index].adId); + if ($.browserForTurntableFarmRes.code === '0') { + console.log(`第${index + 1}个逛会场任务领取水滴奖励完成\n`) + await initForTurntableFarm(); + remainLotteryTimes = $.initForTurntableFarmRes.remainLotteryTimes; + } + } + } else { + console.log(`浏览天天抽奖的第${index + 1}个逛会场任务已完成`) + } } - }) - //没有次数了 - if ($.lotteryRes.remainLotteryTimes === 0) { - break - } } - } - if (lotteryResult) { - that.log(`【天天抽奖】${lotteryResult.substr(0, lotteryResult.length - 1)}\n`) - // message += `【天天抽奖】${lotteryResult.substr(0, lotteryResult.length - 1)}\n`; - } + //天天抽奖助力 + console.log('开始天天抽奖--好友助力--每人每天只有三次助力机会.') + for (let code of newShareCodes) { + if (code === $.farmInfo.farmUserPro.shareCode) { + console.log('天天抽奖-不能自己给自己助力\n') + continue + } + await lotteryMasterHelp(code); + // console.log('天天抽奖助力结果',lotteryMasterHelpRes.helpResult) + if ($.lotteryMasterHelpRes.helpResult.code === '0') { + console.log(`天天抽奖-助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}成功\n`) + } else if ($.lotteryMasterHelpRes.helpResult.code === '11') { + console.log(`天天抽奖-不要重复助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}\n`) + } else if ($.lotteryMasterHelpRes.helpResult.code === '13') { + console.log(`天天抽奖-助力${$.lotteryMasterHelpRes.helpResult.masterUserInfo.nickName}失败,助力次数耗尽\n`); + break; + } + } + console.log(`---天天抽奖次数remainLotteryTimes----${remainLotteryTimes}次`) + //抽奖 + if (remainLotteryTimes > 0) { + console.log('开始抽奖') + let lotteryResult = ''; + for (let i = 0; i < new Array(remainLotteryTimes).fill('').length; i++) { + await lotteryForTurntableFarm() + console.log(`第${i + 1}次抽奖结果${JSON.stringify($.lotteryRes)}`); + if ($.lotteryRes.code === '0') { + turntableInfos.map((item) => { + if (item.type === $.lotteryRes.type) { + console.log(`lotteryRes.type${$.lotteryRes.type}`); + if ($.lotteryRes.type.match(/bean/g) && $.lotteryRes.type.match(/bean/g)[0] === 'bean') { + lotteryResult += `${item.name}个,`; + } else if ($.lotteryRes.type.match(/water/g) && $.lotteryRes.type.match(/water/g)[0] === 'water') { + lotteryResult += `${item.name},`; + } else { + lotteryResult += `${item.name},`; + } + } + }) + //没有次数了 + if ($.lotteryRes.remainLotteryTimes === 0) { + break + } + } + } + if (lotteryResult) { + console.log(`【天天抽奖】${lotteryResult.substr(0, lotteryResult.length - 1)}\n`) + // message += `【天天抽奖】${lotteryResult.substr(0, lotteryResult.length - 1)}\n`; + } + } else { + console.log('天天抽奖--抽奖机会为0次') + } } else { - that.log('天天抽奖--抽奖机会为0次') + console.log('初始化天天抽奖得好礼失败') } - } else { - that.log('初始化天天抽奖得好礼失败') - } } //领取额外奖励水滴 async function getExtraAward() { - await masterHelpTaskInitForFarm(); - if ($.masterHelpResult.code === '0') { - if ($.masterHelpResult.masterHelpPeoples && $.masterHelpResult.masterHelpPeoples.length >= 5) { - // 已有五人助力。领取助力后的奖励 - if (!$.masterHelpResult.masterGotFinal) { - await masterGotFinishedTaskForFarm(); - if ($.masterGotFinished.code === '0') { - that.log(`已成功领取好友助力奖励:【${$.masterGotFinished.amount}】g水`); - message += "【额外奖励】" + `${$.masterGotFinished.amount}` + "g水领取成功\n\n"; - } - } else { - that.log("已经领取过5好友助力额外奖励"); - message += "【水果🍉进度】" + `【额外奖励】已被领取过\n` + "\n\n"; - } - } else { - that.log("助力好友未达到5个"); - message += "【额外奖励】领取失败,原因:给您助力的人未达5个\n\n"; - } - if ($.masterHelpResult.masterHelpPeoples && $.masterHelpResult.masterHelpPeoples.length > 0) { - let str = ''; - $.masterHelpResult.masterHelpPeoples.map((item, index) => { - if (index === ($.masterHelpResult.masterHelpPeoples.length - 1)) { - str += item.nickName || "匿名用户"; + await masterHelpTaskInitForFarm(); + if ($.masterHelpResult.code === '0') { + if ($.masterHelpResult.masterHelpPeoples && $.masterHelpResult.masterHelpPeoples.length >= 5) { + // 已有五人助力。领取助力后的奖励 + if (!$.masterHelpResult.masterGotFinal) { + await masterGotFinishedTaskForFarm(); + if ($.masterGotFinished.code === '0') { + console.log(`已成功领取好友助力奖励:【${$.masterGotFinished.amount}】g水`); + message += "【额外奖励】" + `${$.masterGotFinished.amount}` + "g水领取成功\n\n"; + } + } else { + console.log("已经领取过5好友助力额外奖励"); + message += "【水果🍉进度】" + `【额外奖励】已被领取过\n` + "\n\n"; + } } else { - str += (item.nickName || "匿名用户") + ','; + console.log("助力好友未达到5个"); + message += "【额外奖励】领取失败,原因:给您助力的人未达5个\n\n"; } - let date = new Date(item.time); - let time = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getMinutes(); - that.log(`\n动动昵称【${item.nickName || "匿名用户"}】 在 ${time} 给您助过力\n`); - }) - message += "【助力您的好友】 " + `${str}` + "\n\n" + if ($.masterHelpResult.masterHelpPeoples && $.masterHelpResult.masterHelpPeoples.length > 0) { + let str = ''; + $.masterHelpResult.masterHelpPeoples.map((item, index) => { + if (index === ($.masterHelpResult.masterHelpPeoples.length - 1)) { + str += item.nickName || "匿名用户"; + } else { + str += (item.nickName || "匿名用户") + ','; + } + let date = new Date(item.time); + let time = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getMinutes(); + console.log(`\n京东昵称【${item.nickName || "匿名用户"}】 在 ${time} 给您助过力\n`); + }) + message += "【助力您的好友】 " + `${str}` + "\n\n" + } + console.log('领取额外奖励水滴结束\n'); } - that.log('领取额外奖励水滴结束\n'); - } +} +//助力好友 +async function masterHelpShare() { + console.log('开始助力好友') + let salveHelpAddWater = 0; + let remainTimes = 3;//今日剩余助力次数,默认3次(京东农场每人每天3次助力机会)。 + let helpSuccessPeoples = '';//成功助力好友 + await getHelp(); + console.log(`格式化后的助力码::${JSON.stringify(newShareCodes)}\n`); + + for (let code of newShareCodes) { + console.log(`开始助力京东账号${$.index} - ${$.nickName || $.UserName}的好友: ${code}`); + if (!code) continue; + if (code === $.farmInfo.farmUserPro.shareCode) { + console.log('不能为自己助力哦,跳过自己的shareCode\n') + continue + } + await masterHelp(code); + if ($.helpResult.code === '0') { + if ($.helpResult.helpResult.code === '0') { + //助力成功 + salveHelpAddWater += $.helpResult.helpResult.salveHelpAddWater; + console.log(`【助力好友结果】: 已成功给【${$.helpResult.helpResult.masterUserInfo.nickName}】助力`); + console.log(`给好友【${$.helpResult.helpResult.masterUserInfo.nickName}】助力获得${$.helpResult.helpResult.salveHelpAddWater}g水滴`) + helpSuccessPeoples += ($.helpResult.helpResult.masterUserInfo.nickName || '匿名用户') + ','; + } else if ($.helpResult.helpResult.code === '8') { + console.log(`【助力好友结果】: 助力【${$.helpResult.helpResult.masterUserInfo.nickName}】失败,您今天助力次数已耗尽`); + } else if ($.helpResult.helpResult.code === '9') { + console.log(`【助力好友结果】: 之前给【${$.helpResult.helpResult.masterUserInfo.nickName}】助力过了`); + } else if ($.helpResult.helpResult.code === '10') { + console.log(`【助力好友结果】: 好友【${$.helpResult.helpResult.masterUserInfo.nickName}】已满五人助力`); + } else { + console.log(`助力其他情况:${JSON.stringify($.helpResult.helpResult)}`); + } + console.log(`【今日助力次数还剩】${$.helpResult.helpResult.remainTimes}次\n`); + remainTimes = $.helpResult.helpResult.remainTimes; + if ($.helpResult.helpResult.remainTimes === 0) { + console.log(`您当前助力次数已耗尽,跳出助力`); + break + } + } else { + console.log(`助力失败::${JSON.stringify($.helpResult)}`); + } + } + // if ($.isLoon() || $.isQuanX() || $.isSurge()) { + // let helpSuccessPeoplesKey = timeFormat() + $.farmInfo.farmUserPro.shareCode; + // if (!$.getdata(helpSuccessPeoplesKey)) { + // //把前一天的清除 + // $.setdata('', timeFormat(Date.now() - 24 * 60 * 60 * 1000) + $.farmInfo.farmUserPro.shareCode); + // $.setdata('', helpSuccessPeoplesKey); + // } + // if (helpSuccessPeoples) { + // if ($.getdata(helpSuccessPeoplesKey)) { + // $.setdata($.getdata(helpSuccessPeoplesKey) + ',' + helpSuccessPeoples, helpSuccessPeoplesKey); + // } else { + // $.setdata(helpSuccessPeoples, helpSuccessPeoplesKey); + // } + // } + // helpSuccessPeoples = $.getdata(helpSuccessPeoplesKey); + // } + if (helpSuccessPeoples && helpSuccessPeoples.length > 0) { + message += " " + `【您助力的好友👬】${helpSuccessPeoples.substr(0, helpSuccessPeoples.length - 1)}\n` + "\n\n"; + } + if (salveHelpAddWater > 0) { + // message += `【助力好友👬】获得${salveHelpAddWater}g💧\n`; + console.log(`【助力好友👬】获得${salveHelpAddWater}g💧\n`); + } + message += "" + `【今日剩余助力👬】${remainTimes}次\n` + "\n\n"; + console.log('助力好友结束,即将开始领取额外水滴奖励\n'); } + function getHelp() { - newShareCodes = []; - return new Promise(resolve => { - $.get({ - url: "http://api.tyh52.com/act/get/jd_fruit/3" - }, (err, resp, data) => { - try { - if (data) { - data = JSON.parse(data); - if (data.code == 1) { - let list = data.data; - if (!(list instanceof Array)) { - list = JSON.parse(list); + //newShareCodes = []; + return new Promise(resolve => { + $.get({ + url: "http://api.tyh52.com/act/get/jd_fruit/3" + }, (err, resp, data) => { + try { + if (data) { + data = JSON.parse(data); + if (data.code == 1) { + let list = data.data; + if (!(list instanceof Array)) { + list = JSON.parse(list); + } + if (list.length > 0) { + for (var i in list) { + newShareCodes.push(list[i]); + } + } + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); } - if (list.length > 0) { - for (var i in list) { - newShareCodes.push(list[i]); - } - } - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }); + }) + }); } function setHelp() { - return new Promise(resolve => { - if ($.farmInfo.farmUserPro.shareCode) { - $.get({ - url: "http://api.tyh52.com/act/set/jd_fruit/" + $.farmInfo.farmUserPro.shareCode - }, (err, resp, data) => { - try { - if (data) { - data = JSON.parse(data); - if (data.code == 1) { - that.log("提交自己的邀請碼成功"); - } else { - that.log("提交邀请码失败," + data.message); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); + return new Promise(resolve => { + if ($.farmInfo.farmUserPro.shareCode) { + $.get({ + url: "http://api.tyh52.com/act/set/jd_fruit/" + $.farmInfo.farmUserPro.shareCode + }, (err, resp, data) => { + try { + if (data) { + data = JSON.parse(data); + if (data.code == 1) { + that.log("提交自己的邀請碼成功"); + } else { + that.log("提交邀请码失败," + data.message); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + } else { + resolve(); } - }) - } else { - resolve(); - } - }); + }); } -//助力好友 -async function masterHelpShare() { - that.log('开始助力好友') - let salveHelpAddWater = 0; - let remainTimes = 4;//今日剩余助力次数,默认4次(动动农场每人每天4次助力机会)。 - let helpSuccessPeoples = '';//成功助力好友 - that.log(`格式化后的助力码::${JSON.stringify(newShareCodes)}\n`); - - for (let code of newShareCodes) { - that.log(`开始助力动动账号${$.index} - ${$.nickName}的好友: ${code}`); - if (!code) continue; - if (code === $.farmInfo.farmUserPro.shareCode) { - that.log('不能为自己助力哦,跳过自己的shareCode\n') - continue - } - await masterHelp(code); - if ($.helpResult.code === '0') { - if ($.helpResult.helpResult.code === '0') { - //助力成功 - salveHelpAddWater += $.helpResult.helpResult.salveHelpAddWater; - that.log(`【助力好友结果】: 已成功给【${$.helpResult.helpResult.masterUserInfo.nickName}】助力`); - that.log(`给好友【${$.helpResult.helpResult.masterUserInfo.nickName}】助力获得${$.helpResult.helpResult.salveHelpAddWater}g水滴`) - helpSuccessPeoples += ($.helpResult.helpResult.masterUserInfo.nickName || '匿名用户') + ','; - } else if ($.helpResult.helpResult.code === '8') { - that.log(`【助力好友结果】: 助力【${$.helpResult.helpResult.masterUserInfo.nickName}】失败,您今天助力次数已耗尽`); - } else if ($.helpResult.helpResult.code === '9') { - that.log(`【助力好友结果】: 之前给【${$.helpResult.helpResult.masterUserInfo.nickName}】助力过了`); - } else if ($.helpResult.helpResult.code === '10') { - that.log(`【助力好友结果】: 好友【${$.helpResult.helpResult.masterUserInfo.nickName}】已满五人助力`); - } else { - that.log(`助力其他情况:${JSON.stringify($.helpResult.helpResult)}`); - } - that.log(`【今日助力次数还剩】${$.helpResult.helpResult.remainTimes}次\n`); - remainTimes = $.helpResult.helpResult.remainTimes; - if ($.helpResult.helpResult.remainTimes === 0) { - that.log(`您当前助力次数已耗尽,跳出助力`); - break - } - } else { - that.log(`助力失败::${JSON.stringify($.helpResult)}`); - } - } - if (helpSuccessPeoples && helpSuccessPeoples.length > 0) { - message += " " + `【您助力的好友👬】${helpSuccessPeoples.substr(0, helpSuccessPeoples.length - 1)}\n` + "\n\n"; - } - if (salveHelpAddWater > 0) { - // message += `【助力好友👬】获得${salveHelpAddWater}g💧\n`; - that.log(`【助力好友👬】获得${salveHelpAddWater}g💧\n`); - } - message += "" + `【今日剩余助力👬】${remainTimes}次\n` + "\n\n"; - that.log('助力好友结束,即将开始领取额外水滴奖励\n'); -} //水滴雨 async function executeWaterRains() { - let executeWaterRain = !$.farmTask.waterRainInit.f; - if (executeWaterRain) { - that.log(`水滴雨任务,每天两次,最多可得10g水滴`); - that.log(`两次水滴雨任务是否全部完成:${$.farmTask.waterRainInit.f ? '是' : '否'}`); - if ($.farmTask.waterRainInit.lastTime) { - if (Date.now() < ($.farmTask.waterRainInit.lastTime + 3 * 60 * 60 * 1000)) { - executeWaterRain = false; - // message += `【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】未到时间,请${new Date($.farmTask.waterRainInit.lastTime + 3 * 60 * 60 * 1000).toLocaleTimeString()}再试\n`; - that.log(`\`【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】未到时间,请${new Date($.farmTask.waterRainInit.lastTime + 3 * 60 * 60 * 1000).toLocaleTimeString()}再试\n`); - } - } + let executeWaterRain = !$.farmTask.waterRainInit.f; if (executeWaterRain) { - that.log(`开始水滴雨任务,这是第${$.farmTask.waterRainInit.winTimes + 1}次,剩余${2 - ($.farmTask.waterRainInit.winTimes + 1)}次`); - await waterRainForFarm(); - that.log('水滴雨waterRain'); - if ($.waterRain.code === '0') { - that.log('水滴雨任务执行成功,获得水滴:' + $.waterRain.addEnergy + 'g'); - that.log(`【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】获得${$.waterRain.addEnergy}g水滴\n`); - // message += `【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】获得${$.waterRain.addEnergy}g水滴\n`; - } + console.log(`水滴雨任务,每天两次,最多可得10g水滴`); + console.log(`两次水滴雨任务是否全部完成:${$.farmTask.waterRainInit.f ? '是' : '否'}`); + if ($.farmTask.waterRainInit.lastTime) { + if (Date.now() < ($.farmTask.waterRainInit.lastTime + 3 * 60 * 60 * 1000)) { + executeWaterRain = false; + // message += `【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】未到时间,请${new Date($.farmTask.waterRainInit.lastTime + 3 * 60 * 60 * 1000).toLocaleTimeString()}再试\n`; + console.log(`\`【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】未到时间,请${new Date($.farmTask.waterRainInit.lastTime + 3 * 60 * 60 * 1000).toLocaleTimeString()}再试\n`); + } + } + if (executeWaterRain) { + console.log(`开始水滴雨任务,这是第${$.farmTask.waterRainInit.winTimes + 1}次,剩余${2 - ($.farmTask.waterRainInit.winTimes + 1)}次`); + await waterRainForFarm(); + console.log('水滴雨waterRain'); + if ($.waterRain.code === '0') { + console.log('水滴雨任务执行成功,获得水滴:' + $.waterRain.addEnergy + 'g'); + console.log(`【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】获得${$.waterRain.addEnergy}g水滴\n`); + // message += `【第${$.farmTask.waterRainInit.winTimes + 1}次水滴雨】获得${$.waterRain.addEnergy}g水滴\n`; + } + } + } else { + // message += `【水滴雨】已全部完成,获得20g💧\n`; } - } else { - // message += `【水滴雨】已全部完成,获得20g💧\n`; - } } //打卡领水活动 async function clockInIn() { - that.log('开始打卡领水活动(签到,关注,领券)'); - await clockInInitForFarm(); - if ($.clockInInit.code === '0') { - // 签到得水滴 - if (!$.clockInInit.todaySigned) { - that.log('开始今日签到'); - await clockInForFarm(); - that.log(`打卡结果${JSON.stringify($.clockInForFarmRes)}`); - if ($.clockInForFarmRes.code === '0') { - // message += `【第${$.clockInForFarmRes.signDay}天签到】获得${$.clockInForFarmRes.amount}g💧\n`; - that.log(`【第${$.clockInForFarmRes.signDay}天签到】获得${$.clockInForFarmRes.amount}g💧\n`) - if ($.clockInForFarmRes.signDay === 7) { - //可以领取惊喜礼包 - that.log('开始领取--惊喜礼包38g水滴'); - await gotClockInGift(); - if ($.gotClockInGiftRes.code === '0') { - // message += `【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`; - that.log(`【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`); - } - } - } - } - if ($.clockInInit.todaySigned && $.clockInInit.totalSigned === 7) { - that.log('开始领取--惊喜礼包38g水滴'); - await gotClockInGift(); - if ($.gotClockInGiftRes.code === '0') { - // message += `【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`; - that.log(`【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`); - } - } - // 限时关注得水滴 - if ($.clockInInit.themes && $.clockInInit.themes.length > 0) { - for (let item of $.clockInInit.themes) { - if (!item.hadGot) { - that.log(`关注ID${item.id}`); - await clockInFollowForFarm(item.id, "theme", "1"); - that.log(`themeStep1--结果${JSON.stringify($.themeStep1)}`); - if ($.themeStep1.code === '0') { - await clockInFollowForFarm(item.id, "theme", "2"); - that.log(`themeStep2--结果${JSON.stringify($.themeStep2)}`); - if ($.themeStep2.code === '0') { - that.log(`关注${item.name},获得水滴${$.themeStep2.amount}g`); + console.log('开始打卡领水活动(签到,关注,领券)'); + await clockInInitForFarm(); + if ($.clockInInit.code === '0') { + // 签到得水滴 + if (!$.clockInInit.todaySigned) { + console.log('开始今日签到'); + await clockInForFarm(); + console.log(`打卡结果${JSON.stringify($.clockInForFarmRes)}`); + if ($.clockInForFarmRes.code === '0') { + // message += `【第${$.clockInForFarmRes.signDay}天签到】获得${$.clockInForFarmRes.amount}g💧\n`; + console.log(`【第${$.clockInForFarmRes.signDay}天签到】获得${$.clockInForFarmRes.amount}g💧\n`) + if ($.clockInForFarmRes.signDay === 7) { + //可以领取惊喜礼包 + console.log('开始领取--惊喜礼包38g水滴'); + await gotClockInGift(); + if ($.gotClockInGiftRes.code === '0') { + // message += `【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`; + console.log(`【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`); + } + } } - } } - } - } - // 限时领券得水滴 - if ($.clockInInit.venderCoupons && $.clockInInit.venderCoupons.length > 0) { - for (let item of $.clockInInit.venderCoupons) { - if (!item.hadGot) { - that.log(`领券的ID${item.id}`); - await clockInFollowForFarm(item.id, "venderCoupon", "1"); - that.log(`venderCouponStep1--结果${JSON.stringify($.venderCouponStep1)}`); - if ($.venderCouponStep1.code === '0') { - await clockInFollowForFarm(item.id, "venderCoupon", "2"); - if ($.venderCouponStep2.code === '0') { - that.log(`venderCouponStep2--结果${JSON.stringify($.venderCouponStep2)}`); - that.log(`从${item.name}领券,获得水滴${$.venderCouponStep2.amount}g`); + if ($.clockInInit.todaySigned && $.clockInInit.totalSigned === 7) { + console.log('开始领取--惊喜礼包38g水滴'); + await gotClockInGift(); + if ($.gotClockInGiftRes.code === '0') { + // message += `【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`; + console.log(`【惊喜礼包】获得${$.gotClockInGiftRes.amount}g💧\n`); + } + } + // 限时关注得水滴 + if ($.clockInInit.themes && $.clockInInit.themes.length > 0) { + for (let item of $.clockInInit.themes) { + if (!item.hadGot) { + console.log(`关注ID${item.id}`); + await clockInFollowForFarm(item.id, "theme", "1"); + console.log(`themeStep1--结果${JSON.stringify($.themeStep1)}`); + if ($.themeStep1.code === '0') { + await clockInFollowForFarm(item.id, "theme", "2"); + console.log(`themeStep2--结果${JSON.stringify($.themeStep2)}`); + if ($.themeStep2.code === '0') { + console.log(`关注${item.name},获得水滴${$.themeStep2.amount}g`); + } + } + } + } + } + // 限时领券得水滴 + if ($.clockInInit.venderCoupons && $.clockInInit.venderCoupons.length > 0) { + for (let item of $.clockInInit.venderCoupons) { + if (!item.hadGot) { + console.log(`领券的ID${item.id}`); + await clockInFollowForFarm(item.id, "venderCoupon", "1"); + console.log(`venderCouponStep1--结果${JSON.stringify($.venderCouponStep1)}`); + if ($.venderCouponStep1.code === '0') { + await clockInFollowForFarm(item.id, "venderCoupon", "2"); + if ($.venderCouponStep2.code === '0') { + console.log(`venderCouponStep2--结果${JSON.stringify($.venderCouponStep2)}`); + console.log(`从${item.name}领券,获得水滴${$.venderCouponStep2.amount}g`); + } + } + } } - } } - } } - } - that.log('开始打卡领水活动(签到,关注,领券)结束\n'); + console.log('开始打卡领水活动(签到,关注,领券)结束\n'); } // async function getAwardInviteFriend() { - await friendListInitForFarm();//查询好友列表 - that.log(`查询好友列表数据:\n`) - if ($.friendList) { - that.log(`\n今日已邀请好友${$.friendList.inviteFriendCount}个 / 每日邀请上限${$.friendList.inviteFriendMax}个`); - that.log(`开始删除${$.friendList.friends && $.friendList.friends.length}个好友,可拿每天的邀请奖励`); - if ($.friendList.friends && $.friendList.friends.length > 0) { - for (let friend of $.friendList.friends) { - that.log(`\n开始删除好友 [${friend.shareCode}]`); - const deleteFriendForFarm = await request('deleteFriendForFarm', { "shareCode": `${friend.shareCode}`, "version": 8, "channel": 1 }); - if (deleteFriendForFarm && deleteFriendForFarm.code === '0') { - that.log(`删除好友 [${friend.shareCode}] 成功\n`); + await friendListInitForFarm();//查询好友列表 + // console.log(`查询好友列表数据:${JSON.stringify($.friendList)}\n`) + if ($.friendList) { + console.log(`\n今日已邀请好友${$.friendList.inviteFriendCount}个 / 每日邀请上限${$.friendList.inviteFriendMax}个`); + console.log(`开始删除${$.friendList.friends && $.friendList.friends.length}个好友,可拿每天的邀请奖励`); + if ($.friendList.friends && $.friendList.friends.length > 0) { + for (let friend of $.friendList.friends) { + console.log(`\n开始删除好友 [${friend.shareCode}]`); + const deleteFriendForFarm = await request('deleteFriendForFarm', { "shareCode": `${friend.shareCode}`, "version": 8, "channel": 1 }); + if (deleteFriendForFarm && deleteFriendForFarm.code === '0') { + console.log(`删除好友 [${friend.shareCode}] 成功\n`); + } + } + } + await receiveFriendInvite();//为他人助力,接受邀请成为别人的好友 + if ($.friendList.inviteFriendCount > 0) { + if ($.friendList.inviteFriendCount > $.friendList.inviteFriendGotAwardCount) { + console.log('开始领取邀请好友的奖励'); + await awardInviteFriendForFarm(); + console.log(`领取邀请好友的奖励结果::${JSON.stringify($.awardInviteFriendRes)}`); + } + } else { + console.log('今日未邀请过好友') } - } - } - await receiveFriendInvite();//为他人助力,接受邀请成为别人的好友 - if ($.friendList.inviteFriendCount > 0) { - if ($.friendList.inviteFriendCount > $.friendList.inviteFriendGotAwardCount) { - that.log('开始领取邀请好友的奖励'); - await awardInviteFriendForFarm(); - that.log(`领取邀请好友的奖励结果::${JSON.stringify($.awardInviteFriendRes)}`); - } } else { - that.log('今日未邀请过好友') + console.log(`查询好友列表失败\n`); } - } else { - that.log(`查询好友列表失败\n`); - } } //给好友浇水 async function doFriendsWater() { - await friendListInitForFarm(); - that.log('开始给好友浇水...'); - await taskInitForFarm(); - const { waterFriendCountKey, waterFriendMax } = $.farmTask.waterFriendTaskInit; - that.log(`今日已给${waterFriendCountKey}个好友浇水`); - if (waterFriendCountKey < waterFriendMax) { - let needWaterFriends = []; - if ($.friendList.friends && $.friendList.friends.length > 0) { - $.friendList.friends.map((item, index) => { - if (item.friendState === 1) { - if (needWaterFriends.length < (waterFriendMax - waterFriendCountKey)) { - needWaterFriends.push(item.shareCode); - } - } - }); - //TODO ,发现bug,github action运行发现有些账号第一次没有给3个好友浇水 - that.log(`需要浇水的好友列表shareCodes:${JSON.stringify(needWaterFriends)}`); - let waterFriendsCount = 0, cardInfoStr = ''; - for (let index = 0; index < needWaterFriends.length; index++) { - await waterFriendForFarm(needWaterFriends[index]); - that.log(`为第${index + 1}个好友浇水结果:${JSON.stringify($.waterFriendForFarmRes)}\n`) - if ($.waterFriendForFarmRes.code === '0') { - waterFriendsCount++; - if ($.waterFriendForFarmRes.cardInfo) { - that.log('为好友浇水获得道具了'); - if ($.waterFriendForFarmRes.cardInfo.type === 'beanCard') { - that.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); - cardInfoStr += `水滴换豆卡,`; - } else if ($.waterFriendForFarmRes.cardInfo.type === 'fastCard') { - that.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); - cardInfoStr += `快速浇水卡,`; - } else if ($.waterFriendForFarmRes.cardInfo.type === 'doubleCard') { - that.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); - cardInfoStr += `水滴翻倍卡,`; - } else if ($.waterFriendForFarmRes.cardInfo.type === 'signCard') { - that.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); - cardInfoStr += `加签卡,`; + await friendListInitForFarm(); + console.log('开始给好友浇水...'); + await taskInitForFarm(); + const { waterFriendCountKey, waterFriendMax } = $.farmTask.waterFriendTaskInit; + console.log(`今日已给${waterFriendCountKey}个好友浇水`); + if (waterFriendCountKey < waterFriendMax) { + let needWaterFriends = []; + if ($.friendList.friends && $.friendList.friends.length > 0) { + $.friendList.friends.map((item, index) => { + if (item.friendState === 1) { + if (needWaterFriends.length < (waterFriendMax - waterFriendCountKey)) { + needWaterFriends.push(item.shareCode); + } + } + }); + console.log(`需要浇水的好友列表shareCodes:${JSON.stringify(needWaterFriends)}`); + let waterFriendsCount = 0, cardInfoStr = ''; + for (let index = 0; index < needWaterFriends.length; index++) { + await waterFriendForFarm(needWaterFriends[index]); + console.log(`为第${index + 1}个好友浇水结果:${JSON.stringify($.waterFriendForFarmRes)}\n`) + if ($.waterFriendForFarmRes.code === '0') { + waterFriendsCount++; + if ($.waterFriendForFarmRes.cardInfo) { + console.log('为好友浇水获得道具了'); + if ($.waterFriendForFarmRes.cardInfo.type === 'beanCard') { + console.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); + cardInfoStr += `水滴换豆卡,`; + } else if ($.waterFriendForFarmRes.cardInfo.type === 'fastCard') { + console.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); + cardInfoStr += `快速浇水卡,`; + } else if ($.waterFriendForFarmRes.cardInfo.type === 'doubleCard') { + console.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); + cardInfoStr += `水滴翻倍卡,`; + } else if ($.waterFriendForFarmRes.cardInfo.type === 'signCard') { + console.log(`获取道具卡:${$.waterFriendForFarmRes.cardInfo.rule}`); + cardInfoStr += `加签卡,`; + } + } + } else if ($.waterFriendForFarmRes.code === '11') { + console.log('水滴不够,跳出浇水') + } } - } - } else if ($.waterFriendForFarmRes.code === '11') { - that.log('水滴不够,跳出浇水') + // message += `【好友浇水】已给${waterFriendsCount}个好友浇水,消耗${waterFriendsCount * 10}g水\n`; + console.log(`【好友浇水】已给${waterFriendsCount}个好友浇水,消耗${waterFriendsCount * 10}g水\n`); + if (cardInfoStr && cardInfoStr.length > 0) { + // message += `【好友浇水奖励】${cardInfoStr.substr(0, cardInfoStr.length - 1)}\n`; + console.log(`【好友浇水奖励】${cardInfoStr.substr(0, cardInfoStr.length - 1)}\n`); + } + } else { + console.log('您的好友列表暂无好友,快去邀请您的好友吧!') } - } - // message += `【好友浇水】已给${waterFriendsCount}个好友浇水,消耗${waterFriendsCount * 10}g水\n`; - that.log(`【好友浇水】已给${waterFriendsCount}个好友浇水,消耗${waterFriendsCount * 10}g水\n`); - if (cardInfoStr && cardInfoStr.length > 0) { - // message += `【好友浇水奖励】${cardInfoStr.substr(0, cardInfoStr.length - 1)}\n`; - that.log(`【好友浇水奖励】${cardInfoStr.substr(0, cardInfoStr.length - 1)}\n`); - } } else { - that.log('您的好友列表暂无好友,快去邀请您的好友吧!') + console.log(`今日已为好友浇水量已达${waterFriendMax}个`) } - } else { - that.log(`今日已为好友浇水量已达${waterFriendMax}个`) - } } //领取给3个好友浇水后的奖励水滴 async function getWaterFriendGotAward() { - await taskInitForFarm(); - const { waterFriendCountKey, waterFriendMax, waterFriendSendWater, waterFriendGotAward } = $.farmTask.waterFriendTaskInit - if (waterFriendCountKey >= waterFriendMax) { - if (!waterFriendGotAward) { - await waterFriendGotAwardForFarm(); - that.log(`领取给${waterFriendMax}个好友浇水后的奖励水滴::${JSON.stringify($.waterFriendGotAwardRes)}`) - if ($.waterFriendGotAwardRes.code === '0') { - // message += `【给${waterFriendMax}好友浇水】奖励${$.waterFriendGotAwardRes.addWater}g水滴\n`; - that.log(`【给${waterFriendMax}好友浇水】奖励${$.waterFriendGotAwardRes.addWater}g水滴\n`); - } + await taskInitForFarm(); + const { waterFriendCountKey, waterFriendMax, waterFriendSendWater, waterFriendGotAward } = $.farmTask.waterFriendTaskInit + if (waterFriendCountKey >= waterFriendMax) { + if (!waterFriendGotAward) { + await waterFriendGotAwardForFarm(); + console.log(`领取给${waterFriendMax}个好友浇水后的奖励水滴::${JSON.stringify($.waterFriendGotAwardRes)}`) + if ($.waterFriendGotAwardRes.code === '0') { + // message += `【给${waterFriendMax}好友浇水】奖励${$.waterFriendGotAwardRes.addWater}g水滴\n`; + console.log(`【给${waterFriendMax}好友浇水】奖励${$.waterFriendGotAwardRes.addWater}g水滴\n`); + } + } else { + console.log(`给好友浇水的${waterFriendSendWater}g水滴奖励已领取\n`); + // message += `【给${waterFriendMax}好友浇水】奖励${waterFriendSendWater}g水滴已领取\n`; + } } else { - that.log(`给好友浇水的${waterFriendSendWater}g水滴奖励已领取\n`); - // message += `【给${waterFriendMax}好友浇水】奖励${waterFriendSendWater}g水滴已领取\n`; + console.log(`暂未给${waterFriendMax}个好友浇水\n`); } - } else { - that.log(`暂未给${waterFriendMax}个好友浇水\n`); - } } //接收成为对方好友的邀请 async function receiveFriendInvite() { - for (let code of newShareCodes) { - if (code === $.farmInfo.farmUserPro.shareCode) { - that.log('自己不能邀请自己成为好友噢\n') - continue + for (let code of newShareCodes) { + if (code === $.farmInfo.farmUserPro.shareCode) { + console.log('自己不能邀请自己成为好友噢\n') + continue + } + await inviteFriend(code); + // console.log(`接收邀请成为好友结果:${JSON.stringify($.inviteFriendRes)}`) + if ($.inviteFriendRes && $.inviteFriendRes.helpResult && $.inviteFriendRes.helpResult.code === '0') { + console.log(`接收邀请成为好友结果成功,您已成为${$.inviteFriendRes.helpResult.masterUserInfo.nickName}的好友`) + } else if ($.inviteFriendRes && $.inviteFriendRes.helpResult && $.inviteFriendRes.helpResult.code === '17') { + console.log(`接收邀请成为好友结果失败,对方已是您的好友`) + } } - await inviteFriend(code); - // that.log(`接收邀请成为好友结果:${JSON.stringify($.inviteFriendRes.helpResult)}`) - if ($.inviteFriendRes.helpResult.code === '0') { - that.log(`接收邀请成为好友结果成功,您已成为${$.inviteFriendRes.helpResult.masterUserInfo.nickName}的好友`) - } else if ($.inviteFriendRes.helpResult.code === '17') { - that.log(`接收邀请成为好友结果失败,对方已是您的好友`) - } - } - // that.log(`开始接受6fbd26cc27ac44d6a7fed34092453f77的邀请\n`) - // await inviteFriend('6fbd26cc27ac44d6a7fed34092453f77'); - // that.log(`接收邀请成为好友结果:${JSON.stringify($.inviteFriendRes.helpResult)}`) - // if ($.inviteFriendRes.helpResult.code === '0') { - // that.log(`您已成为${$.inviteFriendRes.helpResult.masterUserInfo.nickName}的好友`) - // } else if ($.inviteFriendRes.helpResult.code === '17') { - // that.log(`对方已是您的好友`) - // } + // console.log(`开始接受6fbd26cc27ac44d6a7fed34092453f77的邀请\n`) + // await inviteFriend('6fbd26cc27ac44d6a7fed34092453f77'); + // console.log(`接收邀请成为好友结果:${JSON.stringify($.inviteFriendRes.helpResult)}`) + // if ($.inviteFriendRes.helpResult.code === '0') { + // console.log(`您已成为${$.inviteFriendRes.helpResult.masterUserInfo.nickName}的好友`) + // } else if ($.inviteFriendRes.helpResult.code === '17') { + // console.log(`对方已是您的好友`) + // } } async function duck() { - for (let i = 0; i < 10; i++) { - //这里循环十次 - await getFullCollectionReward(); - if ($.duckRes.code === '0') { - if (!$.duckRes.hasLimit) { - that.log(`小鸭子游戏:${$.duckRes.title}`); - // if ($.duckRes.type !== 3) { - // that.log(`${$.duckRes.title}`); - // if ($.duckRes.type === 1) { - // message += `【小鸭子】为你带回了水滴\n`; - // } else if ($.duckRes.type === 2) { - // message += `【小鸭子】为你带回快速浇水卡\n` - // } - // } - } else { - that.log(`${$.duckRes.title}`) - break; - } - } else if ($.duckRes.code === '10') { - that.log(`小鸭子游戏达到上限`) - break; + for (let i = 0; i < 10; i++) { + //这里循环十次 + await getFullCollectionReward(); + if ($.duckRes.code === '0') { + if (!$.duckRes.hasLimit) { + console.log(`小鸭子游戏:${$.duckRes.title}`); + // if ($.duckRes.type !== 3) { + // console.log(`${$.duckRes.title}`); + // if ($.duckRes.type === 1) { + // message += `【小鸭子】为你带回了水滴\n`; + // } else if ($.duckRes.type === 2) { + // message += `【小鸭子】为你带回快速浇水卡\n` + // } + // } + } else { + console.log(`${$.duckRes.title}`) + break; + } + } else if ($.duckRes.code === '10') { + console.log(`小鸭子游戏达到上限`) + break; + } } - } } // ========================API调用接口======================== //鸭子,点我有惊喜 async function getFullCollectionReward() { - return new Promise(resolve => { - const body = { "type": 2, "version": 6, "channel": 2 }; - $.post(taskUrl("getFullCollectionReward", body), (err, resp, data) => { - try { - if (err) { - that.log('\n动动农场: API查询请求失败 ‼️‼️'); - that.log(JSON.stringify(err)); - $.logErr(err); - } else { - if (safeGet(data)) { - $.duckRes = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } + return new Promise(resolve => { + const body = { "type": 2, "version": 6, "channel": 2 }; + $.post(taskUrl("getFullCollectionReward", body), (err, resp, data) => { + try { + if (err) { + console.log('\n东东农场: API查询请求失败 ‼️‼️'); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + $.duckRes = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) }) - }) } /** * 领取10次浇水奖励API */ async function totalWaterTaskForFarm() { - const functionId = 'totalWaterTaskForFarm'; - $.totalWaterReward = await request(functionId); + const functionId = arguments.callee.name.toString(); + $.totalWaterReward = await request(functionId); } //领取首次浇水奖励API async function firstWaterTaskForFarm() { - const functionId = 'firstWaterTaskForFarm'; - $.firstWaterReward = await request(functionId); + const functionId = arguments.callee.name.toString(); + $.firstWaterReward = await request(functionId); } //领取给3个好友浇水后的奖励水滴API async function waterFriendGotAwardForFarm() { - const functionId = 'waterFriendGotAwardForFarm'; - $.waterFriendGotAwardRes = await request(functionId, { "version": 4, "channel": 1 }); + const functionId = arguments.callee.name.toString(); + $.waterFriendGotAwardRes = await request(functionId, { "version": 4, "channel": 1 }); } // 查询背包道具卡API async function myCardInfoForFarm() { - const functionId = 'myCardInfoForFarm'; - $.myCardInfoRes = await request(functionId, { "version": 5, "channel": 1 }); + const functionId = arguments.callee.name.toString(); + $.myCardInfoRes = await request(functionId, { "version": 5, "channel": 1 }); } //使用道具卡API async function userMyCardForFarm(cardType) { - const functionId = 'userMyCardForFarm'; - $.userMyCardRes = await request(functionId, { "cardType": cardType }); + const functionId = arguments.callee.name.toString(); + $.userMyCardRes = await request(functionId, { "cardType": cardType }); } /** * 领取浇水过程中的阶段性奖励 @@ -1036,145 +1117,145 @@ async function userMyCardForFarm(cardType) { * @returns {Promise} */ async function gotStageAwardForFarm(type) { - $.gotStageAwardForFarmRes = await request('gotStageAwardForFarm', { 'type': type }); + $.gotStageAwardForFarmRes = await request(arguments.callee.name.toString(), { 'type': type }); } //浇水API async function waterGoodForFarm() { - await $.wait(1000); - that.log('等待了1秒'); + await $.wait(1000); + console.log('等待了1秒'); - const functionId = 'waterGoodForFarm'; - $.waterResult = await request(functionId); + const functionId = arguments.callee.name.toString(); + $.waterResult = await request(functionId); } // 初始化集卡抽奖活动数据API async function initForTurntableFarm() { - $.initForTurntableFarmRes = await request('initForTurntableFarm', { version: 4, channel: 1 }); + $.initForTurntableFarmRes = await request(arguments.callee.name.toString(), { version: 4, channel: 1 }); } async function lotteryForTurntableFarm() { - await $.wait(2000); - that.log('等待了2秒'); - $.lotteryRes = await request('lotteryForTurntableFarm', { type: 1, version: 4, channel: 1 }); + await $.wait(2000); + console.log('等待了2秒'); + $.lotteryRes = await request(arguments.callee.name.toString(), { type: 1, version: 4, channel: 1 }); } async function timingAwardForTurntableFarm() { - $.timingAwardRes = await request('timingAwardForTurntableFarm', { version: 4, channel: 1 }); + $.timingAwardRes = await request(arguments.callee.name.toString(), { version: 4, channel: 1 }); } async function browserForTurntableFarm(type, adId) { - if (type === 1) { - that.log('浏览爆品会场'); - } - if (type === 2) { - that.log('天天抽奖浏览任务领取水滴'); - } - const body = { "type": type, "adId": adId, "version": 4, "channel": 1 }; - $.browserForTurntableFarmRes = await request('browserForTurntableFarm', body); - // 浏览爆品会场8秒 + if (type === 1) { + console.log('浏览爆品会场'); + } + if (type === 2) { + console.log('天天抽奖浏览任务领取水滴'); + } + const body = { "type": type, "adId": adId, "version": 4, "channel": 1 }; + $.browserForTurntableFarmRes = await request(arguments.callee.name.toString(), body); + // 浏览爆品会场8秒 } //天天抽奖浏览任务领取水滴API async function browserForTurntableFarm2(type) { - const body = { "type": 2, "adId": type, "version": 4, "channel": 1 }; - $.browserForTurntableFarm2Res = await request('browserForTurntableFarm', body); + const body = { "type": 2, "adId": type, "version": 4, "channel": 1 }; + $.browserForTurntableFarm2Res = await request('browserForTurntableFarm', body); } /** * 天天抽奖拿好礼-助力API(每人每天三次助力机会) */ async function lotteryMasterHelp() { - $.lotteryMasterHelpRes = await request(`initForFarm`, { - imageUrl: "", - nickName: "", - shareCode: arguments[0] + '-3', - babelChannel: "3", - version: 4, - channel: 1 - }); + $.lotteryMasterHelpRes = await request(`initForFarm`, { + imageUrl: "", + nickName: "", + shareCode: arguments[0] + '-3', + babelChannel: "3", + version: 4, + channel: 1 + }); } //领取5人助力后的额外奖励API async function masterGotFinishedTaskForFarm() { - const functionId = 'masterGotFinishedTaskForFarm'; - $.masterGotFinished = await request(functionId); + const functionId = arguments.callee.name.toString(); + $.masterGotFinished = await request(functionId); } //助力好友信息API async function masterHelpTaskInitForFarm() { - const functionId = 'masterHelpTaskInitForFarm'; - $.masterHelpResult = await request(functionId); + const functionId = arguments.callee.name.toString(); + $.masterHelpResult = await request(functionId); } //接受对方邀请,成为对方好友的API async function inviteFriend() { - $.inviteFriendRes = await request(`initForFarm`, { - imageUrl: "", - nickName: "", - shareCode: arguments[0] + '-inviteFriend', - version: 4, - channel: 2 - }); + $.inviteFriendRes = await request(`initForFarm`, { + imageUrl: "", + nickName: "", + shareCode: arguments[0] + '-inviteFriend', + version: 4, + channel: 2 + }); } // 助力好友API async function masterHelp() { - $.helpResult = await request(`initForFarm`, { - imageUrl: "", - nickName: "", - shareCode: arguments[0], - babelChannel: "3", - version: 2, - channel: 1 - }); + $.helpResult = await request(`initForFarm`, { + imageUrl: "", + nickName: "", + shareCode: arguments[0], + babelChannel: "3", + version: 2, + channel: 1 + }); } /** * 水滴雨API */ async function waterRainForFarm() { - const functionId = 'waterRainForFarm'; - const body = { "type": 1, "hongBaoTimes": 100, "version": 3 }; - $.waterRain = await request(functionId, body); + const functionId = arguments.callee.name.toString(); + const body = { "type": 1, "hongBaoTimes": 100, "version": 3 }; + $.waterRain = await request(functionId, body); } /** * 打卡领水API */ async function clockInInitForFarm() { - const functionId = 'clockInInitForFarm'; - $.clockInInit = await request(functionId); + const functionId = arguments.callee.name.toString(); + $.clockInInit = await request(functionId); } // 连续签到API async function clockInForFarm() { - const functionId = 'clockInForFarm'; - $.clockInForFarmRes = await request(functionId, { "type": 1 }); + const functionId = arguments.callee.name.toString(); + $.clockInForFarmRes = await request(functionId, { "type": 1 }); } //关注,领券等API async function clockInFollowForFarm(id, type, step) { - const functionId = 'clockInFollowForFarm'; - let body = { - id, - type, - step - } - if (type === 'theme') { - if (step === '1') { - $.themeStep1 = await request(functionId, body); - } else if (step === '2') { - $.themeStep2 = await request(functionId, body); + const functionId = arguments.callee.name.toString(); + let body = { + id, + type, + step } - } else if (type === 'venderCoupon') { - if (step === '1') { - $.venderCouponStep1 = await request(functionId, body); - } else if (step === '2') { - $.venderCouponStep2 = await request(functionId, body); + if (type === 'theme') { + if (step === '1') { + $.themeStep1 = await request(functionId, body); + } else if (step === '2') { + $.themeStep2 = await request(functionId, body); + } + } else if (type === 'venderCoupon') { + if (step === '1') { + $.venderCouponStep1 = await request(functionId, body); + } else if (step === '2') { + $.venderCouponStep2 = await request(functionId, body); + } } - } } // 领取连续签到7天的惊喜礼包API async function gotClockInGift() { - $.gotClockInGiftRes = await request('clockInForFarm', { "type": 2 }) + $.gotClockInGiftRes = await request('clockInForFarm', { "type": 2 }) } //定时领水API async function gotThreeMealForFarm() { - const functionId = 'gotThreeMealForFarm'; - $.threeMeal = await request(functionId); + const functionId = arguments.callee.name.toString(); + $.threeMeal = await request(functionId); } /** * 浏览广告任务API @@ -1182,337 +1263,386 @@ async function gotThreeMealForFarm() { * type为1时, 领取浏览任务奖励 */ async function browseAdTaskForFarm(advertId, type) { - const functionId = 'browseAdTaskForFarm'; - if (type === 0) { - $.browseResult = await request(functionId, { advertId, type }); - } else if (type === 1) { - $.browseRwardResult = await request(functionId, { advertId, type }); - } + const functionId = arguments.callee.name.toString(); + if (type === 0) { + $.browseResult = await request(functionId, { advertId, type }); + } else if (type === 1) { + $.browseRwardResult = await request(functionId, { advertId, type }); + } } // 被水滴砸中API async function gotWaterGoalTaskForFarm() { - $.goalResult = await request('gotWaterGoalTaskForFarm', { type: 3 }); + $.goalResult = await request(arguments.callee.name.toString(), { type: 3 }); } //签到API async function signForFarm() { - const functionId = 'signForFarm'; - $.signResult = await request(functionId); + const functionId = arguments.callee.name.toString(); + $.signResult = await request(functionId); } /** * 初始化农场, 可获取果树及用户信息API */ async function initForFarm() { - return new Promise(resolve => { - const option = { - url: `${JD_API_HOST}?functionId=initForFarm`, - body: `body=${escape(JSON.stringify({ "version": 4 }))}&appid=wh5&clientVersion=9.1.0`, - headers: { - "accept": "*/*", - "accept-encoding": "gzip, deflate, br", - "accept-language": "zh-CN,zh;q=0.9", - "cache-control": "no-cache", - "cookie": cookie, - "origin": "https://home.m.jd.com", - "pragma": "no-cache", - "referer": "https://home.m.jd.com/myJd/newhome.action", - "sec-fetch-dest": "empty", - "sec-fetch-mode": "cors", - "sec-fetch-site": "same-site", - "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.2.2;14.2;%E4%BA%AC%E4%B8%9C/9.2.2 CFNetwork/1206 Darwin/20.1.0"), - "Content-Type": "application/x-www-form-urlencoded" - }, - timeout: 10000, - }; - $.post(option, (err, resp, data) => { - try { - if (err) { - that.log('\n动动农场: API查询请求失败 ‼️‼️'); - that.log(JSON.stringify(err)); - $.logErr(err); - } else { - if (safeGet(data)) { - $.farmInfo = JSON.parse(data) - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } + return new Promise(resolve => { + const option = { + url: `${JD_API_HOST}?functionId=initForFarm`, + body: `body=${escape(JSON.stringify({ "version": 4 }))}&appid=wh5&clientVersion=9.1.0`, + headers: { + "accept": "*/*", + "accept-encoding": "gzip, deflate, br", + "accept-language": "zh-CN,zh;q=0.9", + "cache-control": "no-cache", + "cookie": cookie, + "origin": "https://home.m.jd.com", + "pragma": "no-cache", + "referer": "https://home.m.jd.com/myJd/newhome.action", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-site", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;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"), + "Content-Type": "application/x-www-form-urlencoded" + }, + timeout: 10000, + }; + $.post(option, (err, resp, data) => { + try { + if (err) { + console.log('\n东东农场: API查询请求失败 ‼️‼️'); + console.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + $.farmInfo = JSON.parse(data) + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }) }) - }) } // 初始化任务列表API async function taskInitForFarm() { - that.log('\n初始化任务列表') - const functionId = 'taskInitForFarm'; - $.farmTask = await request(functionId); + console.log('\n初始化任务列表') + const functionId = arguments.callee.name.toString(); + $.farmTask = await request(functionId, { "version": 14, "channel": 1, "babelChannel": "120" }); } //获取好友列表API async function friendListInitForFarm() { - $.friendList = await request('friendListInitForFarm', { "version": 4, "channel": 1 }); - // that.log('aa', aa); + $.friendList = await request('friendListInitForFarm', { "version": 4, "channel": 1 }); + // console.log('aa', aa); } // 领取邀请好友的奖励API async function awardInviteFriendForFarm() { - $.awardInviteFriendRes = await request('awardInviteFriendForFarm'); + $.awardInviteFriendRes = await request('awardInviteFriendForFarm'); } //为好友浇水API async function waterFriendForFarm(shareCode) { - const body = { "shareCode": shareCode, "version": 6, "channel": 1 } - $.waterFriendForFarmRes = await request('waterFriendForFarm', body); + const body = { "shareCode": shareCode, "version": 6, "channel": 1 } + $.waterFriendForFarmRes = await request('waterFriendForFarm', body); } async function showMsg() { - let ctrTemp; - if ($.isNode() && process.env.FRUIT_NOTIFY_CONTROL) { - ctrTemp = `${process.env.FRUIT_NOTIFY_CONTROL}` === 'false'; - } else if ($.getdata('jdFruitNotify')) { - ctrTemp = $.getdata('jdFruitNotify') === 'false'; - } else { - ctrTemp = `${jdNotify}` === 'false'; - } - if (ctrTemp) { - $.msg($.name, subTitle, message, option); - if ($.isNode()) { - await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName}`, `${subTitle}\n${message}`); + if ($.isNode() && process.env.FRUIT_NOTIFY_CONTROL) { + $.ctrTemp = `${process.env.FRUIT_NOTIFY_CONTROL}` === 'false'; + } else if ($.getdata('jdFruitNotify')) { + $.ctrTemp = $.getdata('jdFruitNotify') === 'false'; + } else { + $.ctrTemp = `${jdNotify}` === 'false'; + } + if ($.ctrTemp) { + $.msg($.name, subTitle, message, option); + if ($.isNode()) { + allMessage += `${subTitle}\n${message}${$.index !== cookiesArr.length ? '\n\n' : ''}`; + // await notify.sendNotify(`${$.name} - 账号${$.index} - ${$.nickName || $.UserName}`, `${subTitle}\n${message}`); + } + } else { + $.log(`\n${message}\n`); } - } else { - $.log(`\n${message}\n`); - } } function timeFormat(time) { - let date; - if (time) { - date = new Date(time) - } else { - date = new Date(); - } - return date.getFullYear() + '-' + ((date.getMonth() + 1) >= 10 ? (date.getMonth() + 1) : '0' + (date.getMonth() + 1)) + '-' + (date.getDate() >= 10 ? date.getDate() : '0' + date.getDate()); + let date; + if (time) { + date = new Date(time) + } else { + date = new Date(); + } + return date.getFullYear() + '-' + ((date.getMonth() + 1) >= 10 ? (date.getMonth() + 1) : '0' + (date.getMonth() + 1)) + '-' + (date.getDate() >= 10 ? date.getDate() : '0' + date.getDate()); } function readShareCode() { - return new Promise(async resolve => { - $.get({ url: `http://jd.turinglabs.net/api/v2/jd/farm/read/${randomCount}/`, timeout: 10000, }, (err, resp, data) => { - try { - if (err) { - that.log(`${JSON.stringify(err)}`) - that.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - that.log(`随机取个${randomCount}码放到您固定的互助码后面(不影响已有固定互助)`) - data = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(data); - } + return new Promise(async resolve => { + $.get({ url: ``, timeout: 10000 }, (err, resp, data) => { + try { + if (err) { + //console.log(`${JSON.stringify(err)}`) + //console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + console.log(`随机取个${randomCount}码放到您固定的互助码后面(不影响已有固定互助)`) + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(data); + } + }) + await $.wait(10000); + resolve() }) - await $.wait(10000); - resolve() - }) } function shareCodesFormat() { - return new Promise(async resolve => { - // that.log(`第${$.index}个动动账号的助力码:::${jdFruitShareArr[$.index - 1]}`) - newShareCodes = []; - // if (jdFruitShareArr[$.index - 1]) { - // newShareCodes = jdFruitShareArr[$.index - 1].split('@'); - // } else { - // that.log(`由于您第${$.index}个动动账号未提供shareCode,将采纳本脚本自带的助力码\n`) - // const tempIndex = $.index > shareCodes.length ? (shareCodes.length - 1) : ($.index - 1); - // newShareCodes = shareCodes[tempIndex].split('@'); - // } - // const readShareCodeRes = await readShareCode(); - // if (readShareCodeRes && readShareCodeRes.code === 200) { - // // newShareCodes = newShareCodes.concat(readShareCodeRes.data || []); - // newShareCodes = [...new Set([...newShareCodes, ...(readShareCodeRes.data || [])])]; - // } - // that.log(`第${$.index}个动动账号将要助力的好友${JSON.stringify(newShareCodes)}`) - resolve(); - }) + return new Promise(async resolve => { + // console.log(`第${$.index}个京东账号的助力码:::${$.shareCodesArr[$.index - 1]}`) + newShareCodes = []; + // if ($.shareCodesArr[$.index - 1]) { + // newShareCodes = $.shareCodesArr[$.index - 1].split('@'); + // } else { + // console.log(`由于您第${$.index}个京东账号未提供shareCode,将采纳本脚本自带的助力码\n`) + // const tempIndex = $.index > shareCodes.length ? (shareCodes.length - 1) : ($.index - 1); + // newShareCodes = shareCodes[tempIndex].split('@'); + // } + // const readShareCodeRes = await readShareCode(); + // if (readShareCodeRes && readShareCodeRes.code === 200) { + // // newShareCodes = newShareCodes.concat(readShareCodeRes.data || []); + // newShareCodes = [...new Set([...newShareCodes, ...(readShareCodeRes.data || [])])]; + // } + console.log(`第${$.index}个京东账号将要助力的好友${JSON.stringify(newShareCodes)}`) + resolve(); + }) } function requireConfig() { - return new Promise(resolve => { - that.log('开始获取配置文件\n') - notify = $.isNode() ? require('./sendNotify') : ''; - //Node.js用户请在jdCookie.js处填写动动ck; - const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; - const jdFruitShareCodes = $.isNode() ? require('./jdFruitShareCodes.js') : ''; - //IOS等用户直接用NobyDa的jd cookie - if ($.isNode()) { - Object.keys(jdCookieNode).forEach((item) => { - if (jdCookieNode[item]) { - cookiesArr.push(jdCookieNode[item]) + return new Promise(resolve => { + console.log('开始获取配置文件\n') + notify = $.isNode() ? require('./sendNotify') : ''; + //Node.js用户请在jdCookie.js处填写京东ck; + const jdCookieNode = $.isNode() ? require('./jdCookie.js') : ''; + const jdFruitShareCodes = $.isNode() ? require('./jdFruitShareCodes.js') : ''; + //IOS等用户直接用NobyDa的jd cookie + if ($.isNode()) { + Object.keys(jdCookieNode).forEach((item) => { + if (jdCookieNode[item]) { + cookiesArr.push(jdCookieNode[item]) + } + }) + if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { }; + } else { + cookiesArr = [$.getdata('CookieJD'), $.getdata('CookieJD2'), ...jsonParse($.getdata('CookiesJD') || "[]").map(item => item.cookie)].filter(item => !!item); } - }) - if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') that.log = () => { }; - } else { - let cookiesData = $.getdata('CookiesJD') || "[]"; - cookiesData = jsonParse(cookiesData); - cookiesArr = cookiesData.map(item => item.cookie); - cookiesArr.reverse(); - cookiesArr.push(...[$.getdata('CookieJD2'), $.getdata('CookieJD')]); - cookiesArr.reverse(); - cookiesArr = cookiesArr.filter(item => item !== "" && item !== null && item !== undefined); - } - that.log(`共${cookiesArr.length}个动动账号\n`) - resolve() - }) + console.log(`共${cookiesArr.length}个京东账号\n`) + $.shareCodesArr = []; + if ($.isNode()) { + Object.keys(jdFruitShareCodes).forEach((item) => { + if (jdFruitShareCodes[item]) { + $.shareCodesArr.push(jdFruitShareCodes[item]) + } + }) + } else { + if ($.getdata('jd_fruit_inviter')) $.shareCodesArr = $.getdata('jd_fruit_inviter').split('\n').filter(item => !!item); + console.log(`\nBoxJs设置的${$.name}好友邀请码:${$.getdata('jd_fruit_inviter') ? $.getdata('jd_fruit_inviter') : '暂无'}\n`); + } + // console.log(`$.shareCodesArr::${JSON.stringify($.shareCodesArr)}`) + // console.log(`jdFruitShareArr账号长度::${$.shareCodesArr.length}`) + console.log(`您提供了${$.shareCodesArr.length}个账号的农场助力码\n`); + resolve() + }) } function TotalBean() { - return new Promise(async resolve => { - const options = { - "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, - "headers": { - "Accept": "application/json,text/plain, */*", - "Content-Type": "application/x-www-form-urlencoded", - "Accept-Encoding": "gzip, deflate, br", - "Accept-Language": "zh-cn", - "Connection": "keep-alive", - "Cookie": cookie, - "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", - "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.2.2;14.2;%E4%BA%AC%E4%B8%9C/9.2.2 CFNetwork/1206 Darwin/20.1.0") - }, - "timeout": 10000, - } - $.post(options, (err, resp, data) => { - try { - if (err) { - that.log(`${JSON.stringify(err)}`) - that.log(`${$.name} API请求失败,请检查网路重试`) - } else { - if (data) { - data = JSON.parse(data); - if (data['retcode'] === 13) { - $.isLogin = false; //cookie过期 - return + return new Promise(async resolve => { + const options = { + "url": `https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2`, + "headers": { + "Accept": "application/json,text/plain, */*", + "Content-Type": "application/x-www-form-urlencoded", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-cn", + "Connection": "keep-alive", + "Cookie": cookie, + "Referer": "https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2", + "User-Agent": $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;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") } - //$.nickName = data['base'].nickname; - } else { - that.log(`动动服务器返回空数据`) - } } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); - } + $.post(options, (err, resp, data) => { + try { + if (err) { + console.log(`${JSON.stringify(err)}`) + console.log(`${$.name} API请求失败,请检查网路重试`) + } else { + if (data) { + data = JSON.parse(data); + if (data['retcode'] === 13) { + $.isLogin = false; //cookie过期 + return + } + if (data['retcode'] === 0 && data.base && data.base.nickname) { + $.nickName = data.base.nickname; + } + } else { + console.log(`京东服务器返回空数据`) + } + } + } catch (e) { + $.logErr(e) + } finally { + resolve(); + } + }) }) - }) } function request(function_id, body = {}, timeout = 1000) { - return new Promise(resolve => { - setTimeout(() => { - $.get(taskUrl(function_id, body), (err, resp, data) => { - try { - if (err) { - that.log('\n动动农场: API查询请求失败 ‼️‼️') - that.log(JSON.stringify(err)); - that.log(`function_id:${function_id}`) - $.logErr(err); - } else { - if (safeGet(data)) { - data = JSON.parse(data); - } - } - } catch (e) { - $.logErr(e, resp); - } finally { - resolve(data); - } - }) - }, timeout) - }) + return new Promise(resolve => { + setTimeout(() => { + $.get(taskUrl(function_id, body), (err, resp, data) => { + try { + if (err) { + console.log('\n东东农场: API查询请求失败 ‼️‼️') + console.log(JSON.stringify(err)); + console.log(`function_id:${function_id}`) + $.logErr(err); + } else { + if (safeGet(data)) { + data = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp); + } finally { + resolve(data); + } + }) + }, timeout) + }) } function safeGet(data) { - try { - if (typeof JSON.parse(data) == "object") { - return true; + try { + if (typeof JSON.parse(data) == "object") { + return true; + } + } catch (e) { + console.log(e); + console.log(`京东服务器访问数据为空,请检查自身设备网络情况`); + return false; } - } catch (e) { - that.log(e); - that.log(`动动服务器访问数据为空,请检查自身设备网络情况`); - return false; - } } function taskUrl(function_id, body = {}) { - return { - url: `${JD_API_HOST}?functionId=${function_id}&appid=wh5&body=${escape(JSON.stringify(body))}`, - headers: { - Cookie: cookie, - UserAgent: $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.2.2;14.2;%E4%BA%AC%E4%B8%9C/9.2.2 CFNetwork/1206 Darwin/20.1.0"), - }, - timeout: 10000, - } + return { + url: `${JD_API_HOST}?functionId=${function_id}&appid=wh5&body=${escape(JSON.stringify(body))}`, + headers: { + Cookie: cookie, + UserAgent: $.isNode() ? (process.env.JD_USER_AGENT ? process.env.JD_USER_AGENT : (require('./USER_AGENTS').USER_AGENT)) : ($.getdata('JDUA') ? $.getdata('JDUA') : "jdapp;iPhone;9.4.4;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"), + }, + timeout: 10000, + } } function jsonParse(str) { - if (typeof str == "string") { - try { - return JSON.parse(str); - } catch (e) { - that.log(e); - $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') - return []; + if (typeof str == "string") { + try { + return JSON.parse(str); + } catch (e) { + console.log(e); + $.msg($.name, '', '请勿随意在BoxJs输入框修改内容\n建议通过脚本去获取cookie') + return []; + } } - } } +// prettier-ignore +function Env(t, e) { "undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0); class s { constructor(t) { this.env = t } send(t, e = "GET") { t = "string" == typeof t ? { url: t } : t; let s = this.get; return "POST" === e && (s = this.post), new Promise((e, i) => { s.call(this, t, (t, s, r) => { t ? i(t) : e(s) }) }) } get(t) { return this.send.call(this.env, t) } post(t) { return this.send.call(this.env, t, "POST") } } return new class { constructor(t, e) { this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`) } isNode() { return "undefined" != typeof module && !!module.exports } isQuanX() { return "undefined" != typeof $task } isSurge() { return "undefined" != typeof $httpClient && "undefined" == typeof $loon } isLoon() { return "undefined" != typeof $loon } toObj(t, e = null) { try { return JSON.parse(t) } catch { return e } } toStr(t, e = null) { try { return JSON.stringify(t) } catch { return e } } getjson(t, e) { let s = e; const i = this.getdata(t); if (i) try { s = JSON.parse(this.getdata(t)) } catch { } return s } setjson(t, e) { try { return this.setdata(JSON.stringify(t), e) } catch { return !1 } } getScript(t) { return new Promise(e => { this.get({ url: t }, (t, s, i) => e(i)) }) } runScript(t, e) { return new Promise(s => { let i = this.getdata("@chavy_boxjs_userCfgs.httpapi"); i = i ? i.replace(/\n/g, "").trim() : i; let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout"); r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r; const [o, h] = i.split("@"), n = { url: `http://${h}/v1/scripting/evaluate`, body: { script_text: t, mock_type: "cron", timeout: r }, headers: { "X-Key": o, Accept: "*/*" } }; this.post(n, (t, e, i) => s(i)) }).catch(t => this.logErr(t)) } loaddata() { if (!this.isNode()) return {}; { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e); if (!s && !i) return {}; { const i = s ? t : e; try { return JSON.parse(this.fs.readFileSync(i)) } catch (t) { return {} } } } } writedata() { if (this.isNode()) { this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path"); const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile), s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data); s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r) } } lodash_get(t, e, s) { const i = e.replace(/\[(\d+)\]/g, ".$1").split("."); let r = t; for (const t of i) if (r = Object(r)[t], void 0 === r) return s; return r } lodash_set(t, e, s) { return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t) } getdata(t) { let e = this.getval(t); if (/^@/.test(t)) { const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : ""; if (r) try { const t = JSON.parse(r); e = t ? this.lodash_get(t, i, "") : e } catch (t) { e = "" } } return e } setdata(t, e) { let s = !1; if (/^@/.test(e)) { const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i), h = i ? "null" === o ? null : o || "{}" : "{}"; try { const e = JSON.parse(h); this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i) } catch (e) { const o = {}; this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i) } } else s = this.setval(t, e); return s } getval(t) { return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null } setval(t, e) { return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null } initGotEnv(t) { this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar)) } get(t, e = (() => { })) { t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.get(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) })) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => { try { if (t.headers["set-cookie"]) { const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString(); s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar } } catch (t) { this.logErr(t) } }).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) })) } post(t, e = (() => { })) { if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, { "X-Surge-Skip-Scripting": !1 })), $httpClient.post(t, (t, s, i) => { !t && s && (s.body = i, s.statusCode = s.status), e(t, s, i) }); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, { hints: !1 })), $task.fetch(t).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => e(t)); else if (this.isNode()) { this.initGotEnv(t); const { url: s, ...i } = t; this.got.post(s, i).then(t => { const { statusCode: s, statusCode: i, headers: r, body: o } = t; e(null, { status: s, statusCode: i, headers: r, body: o }, o) }, t => { const { message: s, response: i } = t; e(s, i, i && i.body) }) } } time(t, e = null) { const s = e ? new Date(e) : new Date; let i = { "M+": s.getMonth() + 1, "d+": s.getDate(), "H+": s.getHours(), "m+": s.getMinutes(), "s+": s.getSeconds(), "q+": Math.floor((s.getMonth() + 3) / 3), S: s.getMilliseconds() }; /(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length))); for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length))); return t } msg(e = t, s = "", i = "", r) { const o = t => { if (!t) return t; if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? { "open-url": t } : this.isSurge() ? { url: t } : void 0; if ("object" == typeof t) { if (this.isLoon()) { let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"]; return { openUrl: e, mediaUrl: s } } if (this.isQuanX()) { let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl; return { "open-url": e, "media-url": s } } if (this.isSurge()) { let e = t.url || t.openUrl || t["open-url"]; return { url: e } } } }; if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) { let t = ["", "==============📣系统通知📣=============="]; t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t) } } log(...t) { t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator)) } logErr(t, e) { const s = !this.isSurge() && !this.isQuanX() && !this.isLoon(); s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t) } wait(t) { return new Promise(e => setTimeout(e, t)) } done(t = {}) { const e = (new Date).getTime(), s = (e - this.startTime) / 1e3; this.log("", `🔔${this.name}, 结束! 🕛 ${s} 秒`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t) } }(t, e) } + + //我加的函数 function postToDingTalk(messgae) { - const message1 = "" + messgae - that.log(messgae) + const message1 = "" + messgae + that.log(messgae) - const body = { - "msgtype": "markdown", - "markdown": { - "title": "动动农场", - "text": message1 - }, - "at": { - "atMobiles": [], - "isAtAll": false - } - } - - - $.post(toDingtalk(dingtalk, JSON.stringify(body)), (data, status, xhr) => { - try { - that.log(resp) - that.log(data) - if (err) { - that.log(JSON.stringify(err)); - $.logErr(err); - } else { - if (safeGet(data)) { - $.duckRes = JSON.parse(data); + const body = { + "msgtype": "markdown", + "markdown": { + "title": "动动农场", + "text": message1 + }, + "at": { + "atMobiles": [], + "isAtAll": false } - } - } catch (e) { - $.logErr(e, resp) - } finally { - resolve(); } - }, "json") + + + $.post(toDingtalk(dingtalk, JSON.stringify(body)), (data, status, xhr) => { + try { + that.log(resp) + that.log(data) + if (err) { + that.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + $.duckRes = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }, "json") } function toDingtalk(urlmain, bodyMain) { - return { - url: urlmain, - body: bodyMain, - headers: { 'Content-Type': 'application/json;charset=utf-8' }, - timeout: 10000, - } + return { + url: urlmain, + body: bodyMain, + headers: { 'Content-Type': 'application/json;charset=utf-8' }, + timeout: 10000, + } } function getPic() { - let code = ["1.gif", "2.png", "3.png", "4.png", "5.gif", "6.gif", "7.gif", "8.gif", "9.gif", "10.png", "11.png"] - let address = "\n\n ![screenshot](https://cdn.jsdelivr.net/gh/selfImprHuang/Go-Tool@v1.2/test/emptyDirTest/3/" + let code = ["1.gif", "2.png", "3.png", "4.png", "5.gif", "6.gif", "7.gif", "8.gif", "9.gif", "10.png", "11.png"] + let address = "\n\n ![screenshot](https://cdn.jsdelivr.net/gh/selfImprHuang/Go-Tool@v1.2/test/emptyDirTest/3/" - pos = parseInt(11 * Math.random()) - address = address + code[pos] + ")" - return address + pos = parseInt(11 * Math.random()) + address = address + code[pos] + ")" + return address +} + +function postToDingTalk2(messgae) { + const message1 = "" + messgae + // that.log(messgae) + + const body = { + "msgtype": "markdown", + "markdown": { + "title": "水果领取", + "text": "水果领取\n\n" + message1 + }, + "at": { + "atMobiles": [], + "isAtAll": true + } + } + + $.post(toDingtalk(dingtalk2, JSON.stringify(body)), (data, status, xhr) => { + try { + that.log(resp) + that.log(data) + if (err) { + that.log(JSON.stringify(err)); + $.logErr(err); + } else { + if (safeGet(data)) { + $.duckRes = JSON.parse(data); + } + } + } catch (e) { + $.logErr(e, resp) + } finally { + resolve(); + } + }, "json") } \ No newline at end of file diff --git a/src/main/resources/test_trytryOne.js b/src/main/resources/test_trytryOne.js index fa1d7fe..49dff9a 100644 --- a/src/main/resources/test_trytryOne.js +++ b/src/main/resources/test_trytryOne.js @@ -23,7 +23,6 @@ let dingtalk = "https://oapi.dingtalk.com/robot/send?access_token=d2b6042cb38f0d let dingtalk1 = "https://oapi.dingtalk.com/robot/send?access_token=a3e80da6f064321881fc38e43a07bfde7a61b6f18245454520fb749556cebfcd" let dingtalk2 = "https://oapi.dingtalk.com/robot/send?access_token=1832f969da101ef8273e8ba2258f06f15ec34bc22282066b28ab617042a7a9b6" let getManName = "" -let showDate = [0,1,12,13,17,18] let totalPages = 999999 //总页数 const $ = new Env('京东试用') let roleMap = { @@ -38,6 +37,7 @@ let roleMap = { "jd_66ea783827d30": "军子", "jd_4311ac0ff4456": "居子" } + const URL = 'https://api.m.jd.com/client.action' let trialActivityIdList = [] let sensMessage = "试用\n\n" @@ -80,7 +80,7 @@ let args_xh = { * 试用商品标题过滤 * 可设置环境变量:JD_TRY_TITLEFILTERS,关键词与关键词之间用@分隔 * */ - titleFilters: ["决明子茶","悠悠球","人参五宝茶","遥控器","蒲公英茶","烘焙纸杯","称斤积木","拨浪鼓","打包袋子","按摩球","帆睿","登山包", "抵用券", "急救箱", "染头发膏", "变唇膏", "弹力带", "儿童零食", "儿童剪头发工具", "平剪牙剪刀打薄剪刀", "刘海内扣直发器", "益生菌小E条漱口水", "二锅头", "魔法士干脆面方便面24袋整箱装", "樱の色鱼子酱", "轻酸瓶3%", "青汁", "隔离霜", "去枣核", "川品社", "矶钓钓鱼配件", "棉线结矶杆", "半圆滑漂挡", "远投路滑配件", "滑漂座", "软电线", "激光剑", "灭鼠", "思维棋", "双层片", "猫用", "鼻腔喷雾", "电脑包", "鸥曼GTL", "卧铺毛毯", "双导向", "翻页笔", "蛋白肽", "T口弯头", "货车用品", "床垫套", "电焊护脚", "G100", "擦车清洁工具", "掸子", "射灯", "欧布圣剑", "超比乐", "滚梳直柄", "凝胶糖果", "DHA藻油", "水带", "摘果神器", "宝宝儿童零食", "总复习", "满分冲刺", "黄冈", "小状元", "钓鱼插件", "寒假作业", "作业", "菜罩", "手机线", "美容油", "贺卡", "眼贴", "小斗篷", "小孩子演奏", "砍柴刀", "消防应急灯", "食用色素", "烘焙彩针糖果", "德尔地板", "水管保温套", "水管道", "定位器", "追踪器", "电瓶", "快递纸箱", "尤克里里", "金龙鱼 面条挂面", "痛风", "KVM切换器", "水泥", "猫罐头", "去斑霜", "0-12岁", "4/3膜", "FMJ", "H10E", "HDMI", "HEISHA", "HPV", "KB216有线键盘", "LED", "MS116 有线鼠标", "N1162有线鼠标", "Ockered", "PVC板", "SD", "SD卡", "SMOVES", "SUP掌机", "U盘", "VGA", "hdmi", "hpv", "led开关电源", "uv镜", "win10", "windows", "一次性", "一片装", "一盒", "万向滑轮", "万用表", "万藓灵", "三角阀", "三轮车", "不干胶标签带", "专升本", "专用贴", "丝袜", "中国电信", "中国结", "中央扶手箱", "中性水笔", "中性笔", "中老年", "丰胸", "串珠玩具", "丸", "乒乓球", "九九乘法", "九九乘除", "书包", "乳液", "乳腺", "交换", "交换机", "产品体验", "享底价", "亲子互动", "亿优信", "仓鼠零食", "仿真小蛋糕", "伊威", "优盘", "会员", "会员卡", "会议杯子", "会议记录", "传菜铃", "体温计", "体验装", "侧挂式", "便秘", "保健", "保护壳", "保护套", "保护膜", "保护镜", "保暖女裤", "保暖裤", "保温棉", "保鲜膜", "信封", "信纸", "修护", "修正带", "修眉", "修眉剪", "倒车", "倒车镜", "假发", "假睫毛", "停车牌", "健康检测", "储奶袋", "儿童n95", "儿童串珠玩具", "儿童乐园", "儿童便捷", "儿童保温水杯", "儿童医生", "儿童口罩", "儿童吸管", "儿童奶粉", "儿童成长", "儿童拌饭", "儿童暖暖套", "儿童椅子", "儿童沐浴露", "儿童牙膏", "儿童玩具枪", "儿童电动牙刷", "儿童电话手表", "儿童益生菌", "儿童磨牙饼", "儿童背包", "儿童随身", "儿童雨伞", "充电头", "充电桩", "光和青春", "光驱", "免钉胶水", "八倍镜", "公主项链", "公文包", "养芝堂", "内胆包", "内衣", "内裤", "冰箱贴", "冰袋", "冷兵器", "冷凝胶", "冷敷贴", "冻干粉", "净水剂", "减关镜", "减肥", "凳子套", "刀头", "刀片", "分流", "分流器", "分线盒", "切割片", "切菜板", "创可贴", "刨木", "别针", "刮痧", "刮痧板", "刷头", "刷子", "刷牙头", "刹车油", "刺激贴", "剂", "剃须刀配件", "削皮刀", "前列腺", "剥虾", "剪", "剪钳", "割草机", "办公会议茶杯", "办公宝", "办公杯", "加密狗", "加温器", "勿拍", "包皮", "包装膜", "化妆", "匙扣", "医生", "半身不遂", "半身裙", "单拍不发货", "卡册", "卡套", "卡尺", "卡托", "卡牌", "卡针", "卧铺垫", "卸妆", "卸妆水", "压差表", "压片", "去毛器", "去角质", "参肽片", "双面板", "反光条贴", "反光板", "反光贴", "反光镜", "反弹器", "变身器", "口琴", "口红", "口罩", "口罩盒", "口腔", "口腔抑菌", "口香糖", "台灯", "台账本", "号码卡", "吃饭衣", "合成机油", "同仁堂", "后膜", "启动电源", "吸奶器", "吸顶灯", "告知牌", "周岁", "呼噜", "咖啡豆", "咬钩", "咽炎", "哑光", "哨", "哺乳", "哺乳套装", "唇釉", "唑溶液", "商务休闲", "啪啪", "喷壶", "喷雾器", "嚼片", "园艺工具", "围兜", "围裙", "固定器", "图钉", "圆珠笔", "土工布", "圣杯", "在线直播", "地吸", "地桩", "地漏", "地面清洁液", "坐便器", "坐便椅", "坐垫", "坐骨膏", "垃圾处理器", "垃圾袋", "垫片", "培训", "塑料士兵小军人玩具", "塑料杯", "塑身裤", "塔菲克", "墙纸", "增生贴", "增高", "墨块", "墨条", "墨水", "墨盒", "墨粉", "墨镜", "壁纸", "声卡套装", "复合肥", "外用", "多功能尺子", "多色笔", "大头围", "天线", "头皮", "夹", "女士内裤", "女士内裤,少女内裤", "女童裤子", "女童靴子", "奶瓶", "奶粉", "如意碗", "妆", "妇女", "婴儿", "婴幼儿", "孔明锁", "孕妇装", "存储卡", "学习卡", "学历", "学生文具", "孩儿乐", "安全帽", "安全裤", "安全锤", "定位器", "定做", "定做榻榻米", "定制", "宝塔糖", "宝宝口罩", "宝宝奶粉", "宝宝成长", "宝宝灯笼裤", "宝宝牙刷", "宝宝玩具车", "宝宝霜", "宝宝鞋子", "宝珠笔", "实验课", "宠物", "宣纸", "宫颈炎", "密封条", "密封袋", "密码锁", "富贵包", "对接头", "导购", "封口机", "小兔女士", "小勺子", "小塔糖", "小学", "少儿读物", "尤尖锐湿疣", "尺", "尼龙管", "尼龙网", "尿", "尿素", "尿素霜", "屏幕膜", "屏蔽袋", "屏风", "工作手册", "工作服", "巾", "布袋", "帽子", "幕布", "干洗剂", "干眼症", "干裂", "平光镜", "平衡线", "幼儿", "幼儿园", "幼儿配方", "床头台灯", "底座", "座垫", "座套", "康复", "延时", "延迟", "延迟喷雾", "延长器", "开果器", "弹力绳", "弹簧", "彩带", "彩铅", "徽墨", "情趣", "惯性小汽车", "成人票", "成长裤", "戒奶嘴", "戒烟", "手册", "手动幕", "手套", "手工DIY", "手工黏土", "手推车", "手提秤", "手术刀", "手机卡", "手机壳", "手机维修", "手电筒", "打包绳", "打印机碳带", "打底", "打草绳", "打虫糖", "打钉枪", "打飞机", "托盘", "扩音器", "扭扭车", "把手", "抑菌膏", "抓周", "抓痒器", "投屏器", "投影仪包", "折叠锯子", "抚奶嘴", "抛光机", "护具", "护手霜", "护栏", "护理", "护眼贴", "护肤", "护腕", "护腿套", "护膝", "护踝", "报警器", "抬头纹", "抵用券", "抽屉轨道", "抽水器", "拉力器", "拉力绳", "拉柳枪", "拐杖", "拔毒膏", "拾音器", "挂篓", "挂绳", "挂钟", "挂钩", "指套", "挑逗", "挡风板", "挡风玻璃", "挤奶器", "捆扎绳", "捆绑绳", "损伤膏贴", "掏耳", "掏耳朵", "排气扇", "接线式直管", "提示牌", "提词器", "插座", "插销", "握力器", "摄像头", "摄像头膜", "摄像头镜片", "摄影灯", "摆件车模", "摇步器", "撑衣杆", "擦玻璃", "擦窗", "擦银布", "收敛水", "收藏册", "收钱码", "收银机", "改光膜", "效果图", "敏感", "敏肌", "救生衣", "教具", "教学", "教学视频", "教材", "教育", "数据线", "整理棒", "文胸", "斗笔", "断奶", "方向盘", "方向盘套", "日历", "早教", "替换头", "月子", "有机肥", "木糖醇", "机油", "机顶盒", "材料包", "条码", "枇杷秋梨膏", "枇杷膏", "枇杷雪梨膏", "枕头套", "架", "染发", "染发剂", "柔肤水", "柜吸", "栅网", "标志牌", "标签纸", "标识牌", "树苗", "样板盒", "格子长袖", "框", "桌垫", "梯", "梯子", "梳子", "棉袜", "棒棒糖", "棒球", "椅子套", "椅背置物袋", "模具", "止痒", "死皮", "母乳", "毛囊", "毛孔", "气压杆", "气垫霜", "气雾棒", "水乳", "水凝膜", "水勺", "水平仪", "水晶头", "水晶泥", "水枪", "水龙头", "汤勺", "汤盅", "汽油锯", "汽车头枕腰靠套装", "汽车尾部挂件", "汽车摆件", "汽车椅背", "汽车脚垫", "沉香", "沐浴包", "油壶", "油漆", "油罐", "泡沫", "泡沫胶", "泡泡纸", "泡澡球", "泥灸", "注射器", "注射针", "泳衣", "洁面", "洋娃娃", "洗地专用", "洗地液", "洗面", "洗鼻器", "流量卡", "测电笔", "测评", "测试", "浮标", "浮漂", "涂鸦贴纸", "消化不良", "消化道出血", "消毒", "消毒液", "消防水带", "润唇膏", "润滑", "润滑液", "润颜乳", "清水剂", "清洁刷", "清洁套装", "清洁液", "清洁球", "清洁软胶", "清洁配件", "渔具", "温度计", "湿手器", "湿粮", "滋养霜", "滑块袋", "滑板车", "滤杯", "滤网", "滤芯", "滤镜", "漆", "漱口水", "潜水服", "火花塞", "灭蝇", "灯泡", "灶台贴纸", "炎膏贴", "炖盅", "烧水棒", "热敷包", "热熔胶枪", "煤油", "燃气报警器", "爬爬垫", "爸爸装", "爸爸鞋", "爽肤水", "牙刷", "牙刷头", "牙刷收纳盒", "牙刷替换头", "牙套", "牙签", "牙签盒", "牙签防水", "牙线", "牙膏", "牛仔裤", "牛舌", "牵引器", "犬粮", "狗狗沐浴露", "狗皮膏", "狗粮", "狗链", "狗零食", "猪油", "猫咪", "猫咪玩具", "猫玩具", "猫砂", "猫粮", "玉米粉", "玛咖片", "玩具女孩", "玻尿酸", "玻珠", "玻珠幕", "玻璃", "玻璃吊", "玻璃胶", "玻璃镜片", "玻璃防雾剂", "球帽", "球拍", "理发器", "理发推", "理疗贴", "琴弦", "瑶浴粉", "瓜刨", "用友", "甲醛", "电子秤", "电容笔", "电池", "电源线", "电磨组套", "电缆剪", "电脑电源", "电视遥控器", "电话卡", "电话牌", "电钻", "电风扇罩", "男士用品", "男童", "番茄丁", "疣", "疮", "痉挛", "痔疮", "瘙痒", "白板笔", "白酒", "百日宴", "百褶", "皮套", "皮带", "皮筋枪", "益生菌", "监狱", "盘香", "眉笔", "真空袋", "眼影", "眼线笔", "眼罩", "眼药水", "眼袋", "眼镜", "眼霜", "睡眠片", "睡裤", "睫毛", "矫正", "矫正器", "矫正带", "短裙", "砂盆", "砂纸", "砂锅", "砍菜刀", "硅胶", "硬笔", "碎发", "碟子", "碳粉", "磨砂壳", "磨脚", "磨脚石", "示宽灯", "祛斑霜", "祛疤", "神经痛贴", "神露", "福来油", "私处", "秋梨膏", "移动wifi", "空气滤芯", "空调滤", "空调罩", "空调遥控器", "窗帘", "竖笛", "童装", "童装男女童", "笔槽", "笼子", "筋骨贴", "筒灯", "筷子", "签字笔", "米小芽", "类纸膜", "粉刺", "粉底", "粉扑", "粉扑盒子", "粉饼", "精华", "精华乳", "精华露", "精油", "糖糖粉", "素颜霜", "红包封", "红包袋", "红绳", "红花手套", "纱窗", "纱网", "纳米砖", "纸尿裤", "纹眉", "纹眉色料", "线上", "线上课程", "练字", "细纹霜", "绑带", "绘图板", "维修", "维生素", "绷带", "绿幕", "绿草皮", "网卡", "网线", "美容棒", "美容院", "美工刀", "美工笔", "美甲", "美缝", "美肌霜", "美胸", "羽毛球", "翻分器", "翻板钩", "翻身", "老人用品", "老式鸣笛", "老爷车", "老花", "考", "耐火泥", "耳罩", "耳钉", "职业装", "肥佬", "肥料", "育苗盘", "背心马甲", "背膜", "胖子", "胶囊", "胶带", "胸包", "胸针", "脖套", "脚垫", "脱发", "脱毛", "腋毛", "腋毛神器", "腮红", "腰带", "腰椎突出", "腰肌劳损", "膝盖贴", "臂力器", "自弹器", "自慰", "自拍杆", "舒缓水", "色料", "艾叶", "艾条", "艾灸贴", "艾绒贴", "艾胜者", "艾脐贴", "艾草", "芦荟", "花洒", "花瓶", "花萃", "苍蝇拍", "苍蝇药", "茗杯", "茶具", "茶勺", "茶壶", "茶宠", "茶杯", "莆田官网", "菊粉", "菲妮小熊", "葛根", "虾青素", "蚊帐", "蚊香", "蚯蚓粪", "蟑螂药", "行车记录仪", "补光灯", "补发", "补墙", "补水", "表带", "衬衫", "袖套", "袜子", "裁纸刀", "装修", "裤", "裤头", "裸妆", "褪黑素", "西汀片", "覆盖膜", "视线盲区贴纸", "视频mv", "视频教程", "角磨机", "角阀", "解码线", "触控笔", "警示牌", "订书机", "训练器", "评估检测", "试听课", "试用装", "请勿下单", "课", "调音器", "购物券", "购物袋", "贴布", "贴纸", "贴膜", "赠品", "起雾棒", "足浴粉", "趴趴枕", "跳绳", "身体乳", "车内清洁", "车漆", "车篓子", "车轮", "车载u盘", "车锁", "轨道", "转换", "转换器", "转接", "轮胎", "轮胎专用胶水", "软糖", "软膏", "辅食", "输精管", "过家家", "过滤棉", "运势书", "运费专拍", "连衣裙", "适配", "适配器", "逍遥马", "透气贴", "通体砖", "遮挡布", "遮瑕", "遮瑕膏", "避光垫", "避孕套", "酒", "酵素", "金刚胶", "金属探测", "金属探测器", "针头", "钉子", "钓鱼手竿", "钙咀嚼片", "钙片", "钢丝", "钢丝球", "钢化膜", "钢化蛋", "钢笔", "钥匙扣", "钳", "铁丝", "铅笔", "铆管", "锁头", "锁精环", "锅铲", "键盘垫", "锯条", "锯片", "镜头膜", "镜头贴", "镜片", "镰刀", "长筒", "长筒袜", "门吸", "门帘", "门把手", "门档", "门槛条", "门锁", "闹钟", "防卫尖刺", "防撞条", "防晒乳", "防晒霜", "防水敷贴", "防水涂料", "防滑垫", "防疫", "防疫包", "防疫香包", "防蚊裤", "防裂膏", "防静电", "阴囊", "阴部", "陀螺", "陈皮鸡", "降葵花盘", "除菌洗地液", "陶瓷瓶", "隔热板", "隔热棉", "隔离网", "隔音耳塞", "雕刻工具", "雨刮", "雨披", "雨衣", "露指", "青春痘", "静电", "静脉曲张", "静音阻尼", "非卖品", "靠背收纳袋", "面碗", "面罩", "面膜", "面酱", "面霜", "鞋", "鞋垫", "鞋带", "音频线", "领带", "领结", "额头贴", "风水鱼", "风湿贴", "飞机杯", "食盐", "饭盒", "饲料", "香囊袋", "香薰", "香薰精油", "马丁靴", "马桶刷", "马桶垫", "驱虫", "高升专", "高清配件", "魔法棒", "鱼竿", "鱼线", "鱼缸", "鱼钩", "鱼饵", "鸡毛掸子", "鸭肠", "鸳鸯锅", "鹿鞭", "麦克风", "黄膏贴", "黄金卡", "黑头", "黑沙", "黑色水笔", "鼠标垫", "鼠标手", "鼻头", "鼻影", "鼻毛", "鼻毛器", "鼻炎", "龟头"], + titleFilters: ["书法", "决明子", "钢化膜", "保护贴膜", "手机壳", "自拍杆", "养生茶", "玉米须", "栀子茶", "黑芝麻丸", "赛柏瑞斯", "玫瑰花茶", "品雅有机茶", "雷气日式", "先徽葱油", "德生源氨基酸洗发水", "决明子茶", "悠悠球", "人参五宝茶", "遥控器", "蒲公英茶", "烘焙纸杯", "称斤积木", "拨浪鼓", "打包袋子", "按摩球", "帆睿", "登山包", "抵用券", "急救箱", "染头发膏", "变唇膏", "弹力带", "儿童零食", "儿童剪头发工具", "平剪牙剪刀打薄剪刀", "刘海内扣直发器", "益生菌小E条漱口水", "二锅头", "魔法士干脆面方便面24袋整箱装", "樱の色鱼子酱", "轻酸瓶3%", "青汁", "隔离霜", "去枣核", "川品社", "矶钓钓鱼配件", "棉线结矶杆", "半圆滑漂挡", "远投路滑配件", "滑漂座", "软电线", "激光剑", "灭鼠", "思维棋", "双层片", "猫用", "鼻腔喷雾", "电脑包", "鸥曼GTL", "卧铺毛毯", "双导向", "翻页笔", "蛋白肽", "T口弯头", "货车用品", "床垫套", "电焊护脚", "G100", "擦车清洁工具", "掸子", "射灯", "欧布圣剑", "超比乐", "滚梳直柄", "凝胶糖果", "DHA藻油", "水带", "摘果神器", "宝宝儿童零食", "总复习", "满分冲刺", "黄冈", "小状元", "钓鱼插件", "寒假作业", "作业", "菜罩", "手机线", "美容油", "贺卡", "眼贴", "小斗篷", "小孩子演奏", "砍柴刀", "消防应急灯", "食用色素", "烘焙彩针糖果", "德尔地板", "水管保温套", "水管道", "定位器", "追踪器", "电瓶", "快递纸箱", "尤克里里", "金龙鱼 面条挂面", "痛风", "KVM切换器", "水泥", "猫罐头", "去斑霜", "0-12岁", "4/3膜", "FMJ", "H10E", "HDMI", "HEISHA", "HPV", "KB216有线键盘", "LED", "MS116 有线鼠标", "N1162有线鼠标", "Ockered", "PVC板", "SD", "SD卡", "SMOVES", "SUP掌机", "U盘", "VGA", "hdmi", "hpv", "led开关电源", "uv镜", "win10", "windows", "一次性", "一片装", "一盒", "万向滑轮", "万用表", "万藓灵", "三角阀", "三轮车", "不干胶标签带", "专升本", "专用贴", "丝袜", "中国电信", "中国结", "中央扶手箱", "中性水笔", "中性笔", "中老年", "丰胸", "串珠玩具", "丸", "乒乓球", "九九乘法", "九九乘除", "书包", "乳液", "乳腺", "交换", "交换机", "产品体验", "享底价", "亲子互动", "亿优信", "仓鼠零食", "仿真小蛋糕", "伊威", "优盘", "会员", "会员卡", "会议杯子", "会议记录", "传菜铃", "体温计", "体验装", "侧挂式", "便秘", "保健", "保护壳", "保护套", "保护膜", "保护镜", "保暖女裤", "保暖裤", "保温棉", "保鲜膜", "信封", "信纸", "修护", "修正带", "修眉", "修眉剪", "倒车", "倒车镜", "假发", "假睫毛", "停车牌", "健康检测", "储奶袋", "儿童n95", "儿童串珠玩具", "儿童乐园", "儿童便捷", "儿童保温水杯", "儿童医生", "儿童口罩", "儿童吸管", "儿童奶粉", "儿童成长", "儿童拌饭", "儿童暖暖套", "儿童椅子", "儿童沐浴露", "儿童牙膏", "儿童玩具枪", "儿童电动牙刷", "儿童电话手表", "儿童益生菌", "儿童磨牙饼", "儿童背包", "儿童随身", "儿童雨伞", "充电头", "充电桩", "光和青春", "光驱", "免钉胶水", "八倍镜", "公主项链", "公文包", "养芝堂", "内胆包", "内衣", "内裤", "冰箱贴", "冰袋", "冷兵器", "冷凝胶", "冷敷贴", "冻干粉", "净水剂", "减关镜", "减肥", "凳子套", "刀头", "刀片", "分流", "分流器", "分线盒", "切割片", "切菜板", "创可贴", "刨木", "别针", "刮痧", "刮痧板", "刷头", "刷子", "刷牙头", "刹车油", "刺激贴", "剂", "剃须刀配件", "削皮刀", "前列腺", "剥虾", "剪", "剪钳", "割草机", "办公会议茶杯", "办公宝", "办公杯", "加密狗", "加温器", "勿拍", "包皮", "包装膜", "化妆", "匙扣", "医生", "半身不遂", "半身裙", "单拍不发货", "卡册", "卡套", "卡尺", "卡托", "卡牌", "卡针", "卧铺垫", "卸妆", "卸妆水", "压差表", "压片", "去毛器", "去角质", "参肽片", "双面板", "反光条贴", "反光板", "反光贴", "反光镜", "反弹器", "变身器", "口琴", "口红", "口罩", "口罩盒", "口腔", "口腔抑菌", "口香糖", "台灯", "台账本", "号码卡", "吃饭衣", "合成机油", "同仁堂", "后膜", "启动电源", "吸奶器", "吸顶灯", "告知牌", "周岁", "呼噜", "咖啡豆", "咬钩", "咽炎", "哑光", "哨", "哺乳", "哺乳套装", "唇釉", "唑溶液", "商务休闲", "啪啪", "喷壶", "喷雾器", "嚼片", "园艺工具", "围兜", "围裙", "固定器", "图钉", "圆珠笔", "土工布", "圣杯", "在线直播", "地吸", "地桩", "地漏", "地面清洁液", "坐便器", "坐便椅", "坐垫", "坐骨膏", "垃圾处理器", "垃圾袋", "垫片", "培训", "塑料士兵小军人玩具", "塑料杯", "塑身裤", "塔菲克", "墙纸", "增生贴", "增高", "墨块", "墨条", "墨水", "墨盒", "墨粉", "墨镜", "壁纸", "声卡套装", "复合肥", "外用", "多功能尺子", "多色笔", "大头围", "天线", "头皮", "夹", "女士内裤", "女士内裤,少女内裤", "女童裤子", "女童靴子", "奶瓶", "奶粉", "如意碗", "妆", "妇女", "婴儿", "婴幼儿", "孔明锁", "孕妇装", "存储卡", "学习卡", "学历", "学生文具", "孩儿乐", "安全帽", "安全裤", "安全锤", "定位器", "定做", "定做榻榻米", "定制", "宝塔糖", "宝宝口罩", "宝宝奶粉", "宝宝成长", "宝宝灯笼裤", "宝宝牙刷", "宝宝玩具车", "宝宝霜", "宝宝鞋子", "宝珠笔", "实验课", "宠物", "宣纸", "宫颈炎", "密封条", "密封袋", "密码锁", "富贵包", "对接头", "导购", "封口机", "小兔女士", "小勺子", "小塔糖", "小学", "少儿读物", "尤尖锐湿疣", "尺", "尼龙管", "尼龙网", "尿", "尿素", "尿素霜", "屏幕膜", "屏蔽袋", "屏风", "工作手册", "工作服", "巾", "布袋", "帽子", "幕布", "干洗剂", "干眼症", "干裂", "平光镜", "平衡线", "幼儿", "幼儿园", "幼儿配方", "床头台灯", "底座", "座垫", "座套", "康复", "延时", "延迟", "延迟喷雾", "延长器", "开果器", "弹力绳", "弹簧", "彩带", "彩铅", "徽墨", "情趣", "惯性小汽车", "成人票", "成长裤", "戒奶嘴", "戒烟", "手册", "手动幕", "手套", "手工DIY", "手工黏土", "手推车", "手提秤", "手术刀", "手机卡", "手机壳", "手机维修", "手电筒", "打包绳", "打印机碳带", "打底", "打草绳", "打虫糖", "打钉枪", "打飞机", "托盘", "扩音器", "扭扭车", "把手", "抑菌膏", "抓周", "抓痒器", "投屏器", "投影仪包", "折叠锯子", "抚奶嘴", "抛光机", "护具", "护手霜", "护栏", "护理", "护眼贴", "护肤", "护腕", "护腿套", "护膝", "护踝", "报警器", "抬头纹", "抵用券", "抽屉轨道", "抽水器", "拉力器", "拉力绳", "拉柳枪", "拐杖", "拔毒膏", "拾音器", "挂篓", "挂绳", "挂钟", "挂钩", "指套", "挑逗", "挡风板", "挡风玻璃", "挤奶器", "捆扎绳", "捆绑绳", "损伤膏贴", "掏耳", "掏耳朵", "排气扇", "接线式直管", "提示牌", "提词器", "插座", "插销", "握力器", "摄像头", "摄像头膜", "摄像头镜片", "摄影灯", "摆件车模", "摇步器", "撑衣杆", "擦玻璃", "擦窗", "擦银布", "收敛水", "收藏册", "收钱码", "收银机", "改光膜", "效果图", "敏感", "敏肌", "救生衣", "教具", "教学", "教学视频", "教材", "教育", "数据线", "整理棒", "文胸", "斗笔", "断奶", "方向盘", "方向盘套", "日历", "早教", "替换头", "月子", "有机肥", "木糖醇", "机油", "机顶盒", "材料包", "条码", "枇杷秋梨膏", "枇杷膏", "枇杷雪梨膏", "枕头套", "架", "染发", "染发剂", "柔肤水", "柜吸", "栅网", "标志牌", "标签纸", "标识牌", "树苗", "样板盒", "格子长袖", "框", "桌垫", "梯", "梯子", "梳子", "棉袜", "棒棒糖", "棒球", "椅子套", "椅背置物袋", "模具", "止痒", "死皮", "母乳", "毛囊", "毛孔", "气压杆", "气垫霜", "气雾棒", "水乳", "水凝膜", "水勺", "水平仪", "水晶头", "水晶泥", "水枪", "水龙头", "汤勺", "汤盅", "汽油锯", "汽车头枕腰靠套装", "汽车尾部挂件", "汽车摆件", "汽车椅背", "汽车脚垫", "沉香", "沐浴包", "油壶", "油漆", "油罐", "泡沫", "泡沫胶", "泡泡纸", "泡澡球", "泥灸", "注射器", "注射针", "泳衣", "洁面", "洋娃娃", "洗地专用", "洗地液", "洗面", "洗鼻器", "流量卡", "测电笔", "测评", "测试", "浮标", "浮漂", "涂鸦贴纸", "消化不良", "消化道出血", "消毒", "消毒液", "消防水带", "润唇膏", "润滑", "润滑液", "润颜乳", "清水剂", "清洁刷", "清洁套装", "清洁液", "清洁球", "清洁软胶", "清洁配件", "渔具", "温度计", "湿手器", "湿粮", "滋养霜", "滑块袋", "滑板车", "滤杯", "滤网", "滤芯", "滤镜", "漆", "漱口水", "潜水服", "火花塞", "灭蝇", "灯泡", "灶台贴纸", "炎膏贴", "炖盅", "烧水棒", "热敷包", "热熔胶枪", "煤油", "燃气报警器", "爬爬垫", "爸爸装", "爸爸鞋", "爽肤水", "牙刷", "牙刷头", "牙刷收纳盒", "牙刷替换头", "牙套", "牙签", "牙签盒", "牙签防水", "牙线", "牙膏", "牛仔裤", "牛舌", "牵引器", "犬粮", "狗狗沐浴露", "狗皮膏", "狗粮", "狗链", "狗零食", "猪油", "猫咪", "猫咪玩具", "猫玩具", "猫砂", "猫粮", "玉米粉", "玛咖片", "玩具女孩", "玻尿酸", "玻珠", "玻珠幕", "玻璃", "玻璃吊", "玻璃胶", "玻璃镜片", "玻璃防雾剂", "球帽", "球拍", "理发器", "理发推", "理疗贴", "琴弦", "瑶浴粉", "瓜刨", "用友", "甲醛", "电子秤", "电容笔", "电池", "电源线", "电磨组套", "电缆剪", "电脑电源", "电视遥控器", "电话卡", "电话牌", "电钻", "电风扇罩", "男士用品", "男童", "番茄丁", "疣", "疮", "痉挛", "痔疮", "瘙痒", "白板笔", "白酒", "百日宴", "百褶", "皮套", "皮带", "皮筋枪", "益生菌", "监狱", "盘香", "眉笔", "真空袋", "眼影", "眼线笔", "眼罩", "眼药水", "眼袋", "眼镜", "眼霜", "睡眠片", "睡裤", "睫毛", "矫正", "矫正器", "矫正带", "短裙", "砂盆", "砂纸", "砂锅", "砍菜刀", "硅胶", "硬笔", "碎发", "碟子", "碳粉", "磨砂壳", "磨脚", "磨脚石", "示宽灯", "祛斑霜", "祛疤", "神经痛贴", "神露", "福来油", "私处", "秋梨膏", "移动wifi", "空气滤芯", "空调滤", "空调罩", "空调遥控器", "窗帘", "竖笛", "童装", "童装男女童", "笔槽", "笼子", "筋骨贴", "筒灯", "筷子", "签字笔", "米小芽", "类纸膜", "粉刺", "粉底", "粉扑", "粉扑盒子", "粉饼", "精华", "精华乳", "精华露", "精油", "糖糖粉", "素颜霜", "红包封", "红包袋", "红绳", "红花手套", "纱窗", "纱网", "纳米砖", "纸尿裤", "纹眉", "纹眉色料", "线上", "线上课程", "练字", "细纹霜", "绑带", "绘图板", "维修", "维生素", "绷带", "绿幕", "绿草皮", "网卡", "网线", "美容棒", "美容院", "美工刀", "美工笔", "美甲", "美缝", "美肌霜", "美胸", "羽毛球", "翻分器", "翻板钩", "翻身", "老人用品", "老式鸣笛", "老爷车", "老花", "考", "耐火泥", "耳罩", "耳钉", "职业装", "肥佬", "肥料", "育苗盘", "背心马甲", "背膜", "胖子", "胶囊", "胶带", "胸包", "胸针", "脖套", "脚垫", "脱发", "脱毛", "腋毛", "腋毛神器", "腮红", "腰带", "腰椎突出", "腰肌劳损", "膝盖贴", "臂力器", "自弹器", "自慰", "自拍杆", "舒缓水", "色料", "艾叶", "艾条", "艾灸贴", "艾绒贴", "艾胜者", "艾脐贴", "艾草", "芦荟", "花洒", "花瓶", "花萃", "苍蝇拍", "苍蝇药", "茗杯", "茶具", "茶勺", "茶壶", "茶宠", "茶杯", "莆田官网", "菊粉", "菲妮小熊", "葛根", "虾青素", "蚊帐", "蚊香", "蚯蚓粪", "蟑螂药", "行车记录仪", "补光灯", "补发", "补墙", "补水", "表带", "衬衫", "袖套", "袜子", "裁纸刀", "装修", "裤", "裤头", "裸妆", "褪黑素", "西汀片", "覆盖膜", "视线盲区贴纸", "视频mv", "视频教程", "角磨机", "角阀", "解码线", "触控笔", "警示牌", "订书机", "训练器", "评估检测", "试听课", "试用装", "请勿下单", "课", "调音器", "购物券", "购物袋", "贴布", "贴纸", "贴膜", "赠品", "起雾棒", "足浴粉", "趴趴枕", "跳绳", "身体乳", "车内清洁", "车漆", "车篓子", "车轮", "车载u盘", "车锁", "轨道", "转换", "转换器", "转接", "轮胎", "轮胎专用胶水", "软糖", "软膏", "辅食", "输精管", "过家家", "过滤棉", "运势书", "运费专拍", "连衣裙", "适配", "适配器", "逍遥马", "透气贴", "通体砖", "遮挡布", "遮瑕", "遮瑕膏", "避光垫", "避孕套", "酒", "酵素", "金刚胶", "金属探测", "金属探测器", "针头", "钉子", "钓鱼手竿", "钙咀嚼片", "钙片", "钢丝", "钢丝球", "钢化膜", "钢化蛋", "钢笔", "钥匙扣", "钳", "铁丝", "铅笔", "铆管", "锁头", "锁精环", "锅铲", "键盘垫", "锯条", "锯片", "镜头膜", "镜头贴", "镜片", "镰刀", "长筒", "长筒袜", "门吸", "门帘", "门把手", "门档", "门槛条", "门锁", "闹钟", "防卫尖刺", "防撞条", "防晒乳", "防晒霜", "防水敷贴", "防水涂料", "防滑垫", "防疫", "防疫包", "防疫香包", "防蚊裤", "防裂膏", "防静电", "阴囊", "阴部", "陀螺", "陈皮鸡", "降葵花盘", "除菌洗地液", "陶瓷瓶", "隔热板", "隔热棉", "隔离网", "隔音耳塞", "雕刻工具", "雨刮", "雨披", "雨衣", "露指", "青春痘", "静电", "静脉曲张", "静音阻尼", "非卖品", "靠背收纳袋", "面碗", "面罩", "面膜", "面酱", "面霜", "鞋", "鞋垫", "鞋带", "音频线", "领带", "领结", "额头贴", "风水鱼", "风湿贴", "飞机杯", "食盐", "饭盒", "饲料", "香囊袋", "香薰", "香薰精油", "马丁靴", "马桶刷", "马桶垫", "驱虫", "高升专", "高清配件", "魔法棒", "鱼竿", "鱼线", "鱼缸", "鱼钩", "鱼饵", "鸡毛掸子", "鸭肠", "鸳鸯锅", "鹿鞭", "麦克风", "黄膏贴", "黄金卡", "黑头", "黑沙", "黑色水笔", "鼠标垫", "鼠标手", "鼻头", "鼻影", "鼻毛", "鼻毛器", "鼻炎", "龟头"], // 试用价格(中了要花多少钱),高于这个价格都不会试用,小于等于才会试用 trialPrice: 0, /* @@ -143,14 +143,13 @@ let args_xh = { //下一个要重新去拉列表 trialActivityIdList = [] trialActivityTitleList = [] - args_xh.listCount = 0 message = "" totalPages == 999999 - username = $.UserName + //走另外的途径另外处理 - if ($.UserName == "jd_66ea783827d30" || $.UserName == "jd_45d917547c763") { + if ($.UserName == "jd_66ea783827d30" || $.UserName == "jd_45d917547c763" || $.UserName == "jd_4311ac0ff4456") { getManName = roleMap[username] message = message + "【羊毛姐妹】" + username + " \n\n " await try_MyTrials(1, 2) //申请成功的商品 @@ -182,7 +181,7 @@ let args_xh = { console.log(`\n正在进行第 ${size} 次获取试用商品\n`) console.log(`\n当前产品页面总长度为${totalPages} 页\n`) await try_feedsList(list[i], size++) - if (m == 1 && sensMessage.length > wordLength) { + if (m == 3 && sensMessage.length > wordLength) { console.log("-----------------------------------") console.log("-----------------------------------") console.log("-----------------------------------") @@ -470,17 +469,17 @@ function try_MyTrials(page, selected) { console.log(`剩余时间:${remaining(item.leftTime)}`) if (count < 3) { - message += "" + `申请商品:${item.trialName}` + "\n\n" + message += "" + `成功获取:${item.trialName}` + "\n\n" message += "" + `申请时间:${new Date(parseInt(item.applyTime)).toLocaleString()}` + "\n\n" message += "" + `当前状态:${item.text.text}` + "\n\n" - message += "" + `剩余时间:${remaining(item.leftTime)}` + "\n\n" + message += "" + `剩余时间:${remaining(item.leftTime)}` + "\n\n" message += "" + `-----\n\n` + "\n\n" count++ } - date = new Date() - if (item.text.text.includes('试用资格将保留10天') && showDate.includes(date.getHours())) { - message1 = "" + `${getManName},你的商品待领取,请尽快领取` + "\n\n" - message1 += "" + `申请商品:${item.trialName}` + "\n\n" + if (item.text.text.includes('试用资格将保留10天')) { + message1 = "" + `${getManName}` + "\n\n" + message1 = "" + `,你的商品待领取,请尽快领取` + "\n\n" + message1 += "" + `成功获取:${item.trialName}` + "\n\n" message1 += "" + `剩余时间:${remaining(item.leftTime)}` + "\n\n" postToDingTalk2(message1) }