2020京东618叠蛋糕js脚本(亲测好用)


Posted in Javascript onJune 02, 2020

一年一度的618就要到了,购物车已经装满,今年京东618叠蛋糕活动非常吸引人,怎么个玩法呢,大家不妨打开京东尝试下。那么今天小编给大家分享一篇教程关于2020京东618叠蛋糕js脚本的实现代码,刚兴趣的朋友一起看看吧。

京东618叠蛋糕脚本,亲测好用,Auto.js打开

2020京东618叠蛋糕js脚本(亲测好用)

var generalSleep = 2000;//一般任务的浏览时间(非8秒任务)
var intervalSleep = 800;//任务间的间隔时间
var checkTimes = 2000;//每个任务需要检查有没有跳转成功
var randomVal = 500; //随机睡眠的区间跨度,比如generalSleep,则generalSleep随机睡眠为random(generalSleep,generalSleep+randomVal)
//如果想让上面三个参数不使用随机睡眠,randomVal请设置为0
function getTaskList()
{
 返回任务中心();
 var taskList = textMatches(/.+\([0-9]+\/[0-9]+\).*/).untilFind();
 return taskList;
}
function getGoButton(task)
{
 var father = task.parent();
 if(father == null) return null;
 father = father.parent();
 if(father == null) return null;
 var selector = text("去完成");
 var goOn = father.findOne(selector);
 return goOn;
}
function getSelectedTask(keywordList)
{
 var taskList = getTaskList(),found;
 for(var i = 0; i < taskList.length; i ++){
 found = true;
 for(var j = 0; j < keywordList.length; j ++){
 if(taskList[i].text().indexOf(keywordList[j]) == -1){
 found = false;
 break;
 }
 }
 if(found) return taskList[i];
 }
 return null;
}
function 返回()
{
 var goBack = clickable(true).desc("返回").findOne(1000);
 goBack == null ? back() : goBack.click();
}
function 返回任务中心()
{
 var 任务中心 ;
 while(true){
 任务中心 = textContains("任务每日0点刷新,记得每天都来看看哦~").findOne(1000);
 if(任务中心 != null) break;
 返回();
 sleep(1000);
 }
}
function 逛店铺(秒数)
{
 textMatches(/.+人关注/).waitFor();
 var 完成 = textContains("恭喜完成").findOne(秒数*1000);
 返回任务中心();
 sleep(random(intervalSleep,intervalSleep+randomVal));
}
function 浏览商品(次数)
{
 var goodsList = textMatches(/¥[0-9]+\.[0-9]+/).untilFind(),cnt = 0,finished = false;
 for(var i = 0; i < goodsList.length; i ++){
 if(cnt >= 次数){
 finished = true;
 break;
 }
 if(forceClick(goodsList[i]))
 {
 log("准备浏览价格为 %s 的商品",goodsList[i].text());
 cnt ++;
 textMatches(/(?:加入购物车|立即购买|立即抢购|支付定金|购物车|客服)/).waitFor();
 sleep(random(1500,2000));
 back();
 textMatches(/.*浏览.*商品.*/).waitFor();
 sleep(random(300,500));
 }
 }
 sleep(random(500,1000));
 返回任务中心();
 sleep(random(intervalSleep,intervalSleep+randomVal));
 return finished;
}
function 加购商品()
{
 var goodsList = textMatches(/¥[0-9]+\.[0-9]+/).untilFind(),finished = false,已完成,father,selector;
 for(var i = 0; i < goodsList.length; i ++){
 已完成 = text("已完成").findOnce();
 if(已完成!=null) {
 log("已完成本轮加购");
 break;
 }
 father = goodsList[i].parent().parent();
 selector = clickable(true).filter(function(w){
 var b = w.bounds(),b_ = father.bounds();
 return Math.abs(b.bottom - b_.bottom) <= 150 && Math.abs(b.right - b_.right) <= 150 
  && b.width() <= 150 && b.height() <= 150;
 });
 加购 = father.findOne(selector);
 if(加购!=null){
 加购.click();
 log("正在加购 %s 的商品",goodsList[i].text());
 sleep(random(1000,1500));
 }
 }
 sleep(random(500,1000));
 返回任务中心();
 sleep(random(intervalSleep,intervalSleep+randomVal));
 return finished;
}
function 浏览任务自动化()
{
 log("准备进行 浏览 任务!!!");
 var isRun,taskList,goOn,txt,reg = /(?:浏览8秒|逛8秒|去玩|浏览可得|8秒得)/,恭喜完成,任务首页;
 while(true){
 taskList = getTaskList(); isRun = false;
 for(var i = 0; i < taskList.length; i ++){
 txt = taskList[i].text();
 if(reg.test(txt)){
 if(txt.indexOf("AR") != -1) continue;
 goOn = getGoButton(taskList[i]);
 if(goOn != null){
  log(txt);
  goOn.click();
  sleep(checkTimes);
  任务首页 = textContains("任务每日0点刷新,记得每天都来看看哦~").findOne(200);
  if(任务首页 == null){
  if(txt.indexOf("8秒")!= null) {
  恭喜完成 = textContains("恭喜完成").findOne(random(12000,15000));
  if(恭喜完成 != null){
  sleep(random(300,600));
  }
  }
  else sleep(random(generalSleep,generalSleep+randomVal));
  返回任务中心();
  sleep(random(intervalSleep,intervalSleep+randomVal));
  isRun = true;
  break;
  }
  else{
  log("任务跳转不成功...");
  sleep(500);
  }
 }
 }
 }
 if(!isRun) break;
 }
 log("浏览 任务完成~~~");
 return isRun;
}
function 任务自动化(keywordList)
{
 log("准备进行 %s 任务!!!",keywordList);
 var task,last_rate=-1,curr_rate,tag_rate,reg_rate = /\([0-9]+\/[0-9]+\)/,reg,arr,sec;
 var isRun = false,任务首页,maxTryTimes = 10,tryTimes = 0,goOn,isFail;
 while(true){
 task = getSelectedTask(keywordList);
 if(task == null) break;
 arr = task.text().match(reg_rate);
 arr = toIntArr(arr[0]);
 curr_rate = parseInt(arr[0]);
 tag_rate = parseInt(arr[1]);
 if(curr_rate == tag_rate) break;
 if(curr_rate != last_rate){
 log("当前已完成 %d 次任务,目标是完成 %d 次任务,准备进行下一轮任务",curr_rate,tag_rate);
 log(task.text());
 isFail = false;
 if(keywordList[0] == "店铺"){
 reg = /[0-9]+秒/;
 arr = task.text().match(reg);
 sec = toInt(arr[0]);
 log("逛店铺 %s 秒",sec);
 goOn = getGoButton(task);
 if(goOn != null) goOn.click();
 sleep(checkTimes);
 任务首页 = textContains("任务每日0点刷新,记得每天都来看看哦~").findOne(200);
 if(任务首页 == null){
  逛店铺(sec);
 }
 else isFail = true;
 }
 else if (keywordList[0] == "浏览" && keywordList[1] == "商品")
 {
 reg = /[0-9]+个商品/;
 arr = task.text().match(reg);
 times = toInt(arr[0]);
 log("本轮需要浏览 %s 个商品",times);
 goOn = getGoButton(task);
 if(goOn != null) goOn.click();
 sleep(checkTimes);
 任务首页 = textContains("任务每日0点刷新,记得每天都来看看哦~").findOne(200);
 if(任务首页 == null){
  浏览商品(times);
 }
 else isFail = true;
 }
 else if (keywordList[0] == "加购" && keywordList[1] == "商品"){
 reg = /[0-9]+个商品/;
 arr = task.text().match(reg);
 times = toInt(arr[0]);
 log("本轮需要加购 %s 个商品",times);
 goOn = getGoButton(task);
 if(goOn != null) goOn.click();
 sleep(checkTimes);
 任务首页 = textContains("任务每日0点刷新,记得每天都来看看哦~").findOne(200);
 if(任务首页 == null ){
  加购商品(times);
 }
 else isFail = true;
 }
 if(isFail){
 log("任务跳转不成功...");
 tryTimes++;
 if(tryTimes >= maxTryTimes){
  log("超过尝试次数,放弃本轮任务");
  break;
 }
 sleep(500);
 }
 else{
 isRun = true; last_rate = curr_rate; tryTimes = 0;
 }
 sleep(300);
 }
 else{
 sleep(2000);
 last_rate = curr_rate - 1;
 }
 sleep(300);
 }
 log("%s 任务完成~~~",keywordList);
 if(isRun) sleep(random(2000,2500));
 return isRun;
}
function clickObj(obj)
{
 if(obj != null && obj != undefined){
 if(obj.clickable()){
 obj.click();
 }
 else{
 click(obj.bounds().centerX(),obj.bounds().centerY());
 }
 return true;
 }
 return false;
}
function toIntArr(str)
{
 return str.match(/[0-9]+/g);
}
function toInt(str)
{
 var res = str.match(/[0-9]+/g);
 return parseInt(res[0]);
}
function forceClick(obj)
{
 for(var i = 0 ; i < 8; i ++){
 if(obj == null) return false;
 if(obj.clickable()){
 obj.click();
 return true;
 }
 else obj = obj.parent();
 }
 return false;
}
function openJD()
{
 app.startActivity({ 
 data: "openApp.jdMobile://virtual?params=%7B%22des%22%3A%22m%22%2C%22url%22%3A%22https%3A%2F%2Fbunearth.m.jd.com%2FbabelDiy%2FZeus%2F3xAU77DgiPoDvHdbXUZb95a7u71X%2Findex.html%22%2C%22category%22%3A%22jump%22%2C%22sourceType%22%3A%22JSHOP_SOURCE_TYPE%22%2C%22sourceValue%22%3A%22JSHOP_SOURCE_VALUE%22%2C%22M_sourceFrom%22%3A%22lkyl%22%2C%22msf_type%22%3A%22click%22%2C%22m_param%22%3A%7B%22m_source%22%3A%220%22%2C%22event_series%22%3A%7B%7D%2C%22jda%22%3A%22177095863.1664140455.1538579865.1572975960.1572979455.472%22%2C%22usc%22%3A%22androidapp%22%2C%22ucp%22%3A%22t_335139774%22%2C%22umd%22%3A%22appshare%22%2C%22utr%22%3A%22CopyURL%22%2C%22jdv%22%3A%22177095863%7Candroidapp%7Ct_335139774%7Cappshare%7CCopyURL%7C1572882675599%22%2C%22ref%22%3A%22https%3A%2F%2Fbunearth.m.jd.com%2FbabelDiy%2FZeus%2F3xAU77DgiPoDvHdbXUZb95a7u71X%2Findex.html%22%2C%22psn%22%3A%221664140455%7C472%22%2C%22psq%22%3A5%2C%22pc_source%22%3A%22%22%2C%22mba_muid%22%3A%221664140455%22%2C%22mba_sid%22%3A%221572979455588510925986537476%22%2C%22std%22%3A%22MO-J2011-1%22%2C%22par%22%3A%22%22%2C%22event_id%22%3A%22Mnpm_ComponentApplied%22%2C%22mt_xid%22%3A%22%22%2C%22mt_subsite%22%3A%22%22%7D%2C%22SE%22%3A%7B%22mt_subsite%22%3A%22%22%2C%22__jdv%22%3A%22177095863%7Candroidapp%7Ct_335139774%7Cappshare%7CCopyURL%7C1572882675599%22%2C%22__jda%22%3A%22177095863.1664140455.1538579865.1572975960.1572979455.472%22%7D%7D",
 });
}
function signIn()
{
 var 立即签到 = textMatches(/(?:立即签到|签到)/).findOne(25*1000);
 clickObj(立即签到);
}
function goToHall()
{
 var hall = text("做任务领金币").findOne(25*1000);
 clickObj(hall);
}
var notifyClose = textContains("通知权限");
var continueFloaty = text("继续叠蛋糕");
var cakeNotify = textContains("继续叠蛋糕 分红包");
var closeList = [[notifyClose,false],[continueFloaty,true],[cakeNotify,true]];//true表示直接点击
function closeFloaty()
{
 var i,obj,cancel;
 while(true){
 for(i in closeList){
 obj = closeList[i][0].findOnce();
 if(obj != null){
 if(closeList[i][1]){
  clickObj(obj);
 }else{
  cancel = textMatches(/(?:取消|关闭)/).findOnce();
  if(cancel != null){
  cancel.click();
  }
 }
 }
 }
 sleep(100);
 }
}
// function closeHall()
// {
// sleep(500);
// var menu = desc("更多菜单").className("ImageView").clickable(true).findOne();
// var 中心 = textContains("任务每日0点刷新,记得每天都来看看哦~").findOne();
// var closeBtn = clickable(true).depth(中心.depth()+1).filter(function(w){
// var b = w.bounds(),b_ = menu.bounds(),b__ = 中心.bounds();
// return w.text().length == 0 && b_.left <= b.centerX() && b.centerX() <= b_.right && 
//  b.centerY() < b__.top-50 && b.centerY() > b_.bottom+50;
// }).findOne();
// closeBtn.click()
// }
function closeHall()
{
 back();
 sleep(1500);
 openJD();
 text("做任务领金币").waitFor();
}
function collectCoin()
{
 log("开始点击小精灵!!!");
 text("做任务领金币").waitFor();
 var elf;
 while(true){
 elf = text("点我得金币").findOne(3500);
 if(elf == null) break;
 // click(elf.bounds().centerX(),elf.bounds().top - 50);
 forceClick(elf);
 sleep(random(350,550));
 }
 log("完成小精灵收集金币");
}
function makeCake()
{
 log("开始自动叠蛋糕!!!");
 var make,closeBtn,arr,property,need,obj;
 while(true){
 obj = textMatches(/[0-9]+\/[0-9]+/).findOne();
 arr = toIntArr(obj.text());
 property = parseInt(arr[0]), need = parseInt(arr[1]);
 if(property >= need){
 log("当前拥有 %d 个金币,下一层蛋糕需要 %d 个金币,可以继续叠蛋糕",property,need);
 make = textMatches(/当前金币[0-9]+.*叠蛋糕/).clickable(true).findOne();
 sleep(200);
 make.click();
 sleep(1500);
 closeBtn = textContains("继续叠蛋糕 分红包").findOne();
 sleep(200);
 closeBtn.click();
 sleep(1500);
 }
 else {
 log("当前拥有 %d 个金币,下一层蛋糕需要 %d 个金币,已经不能继续叠蛋糕了",property,need);
 break;
 }
 }
 log("叠蛋糕完成!!!");
}
function keyListen()
{
 events.observeKey();
 events.onKeyDown("volume_down", function(event){
 exit();
 });
}
function main()
{
 console.show();
 textContains("任务每日0点刷新,记得每天都来看看哦~").waitFor();
 var flag,ret;
 while(true){
 flag = false;
 ret = 任务自动化(["店铺"]);
 sleep(500);
 if(ret) flag = true;
 ret = 任务自动化(["浏览","商品"]);
 sleep(500);
 if(ret) flag = true;
 ret = 任务自动化(["加购","商品"]);
 sleep(500);
 if(ret) flag = true;
 ret = 浏览任务自动化();
 sleep(500);
 if(ret) flag = true;
 if(!flag) break;
 }
 closeHall();
 collectCoin();
 makeCake();
 threads.start(function(){
 log("所有自动化任务已完成");
 alert("所有自动化任务已完成");
 });
 sleep(500);
 exit();
}
openJD();
threads.start(signIn);
threads.start(goToHall);
threads.start(closeFloaty);
threads.start(keyListen);
main();

总结

到此这篇关于2020京东618叠蛋糕js脚本(亲测好用)的文章就介绍到这了,更多相关京东618叠蛋糕js脚本内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
极酷的javascirpt,让你随意编辑任何网页
Feb 25 Javascript
JavaScript中yield实用简洁实现方式
Jun 12 Javascript
6款经典实用的jQuery小插件及源码(对话框/提示工具等等)
Feb 04 Javascript
JQuery Tips相关(1)----关于$.Ready()
Aug 14 Javascript
Jquery日历插件制作简单日历
Oct 28 Javascript
基于JS代码实现当鼠标悬停表格上显示这一格的全部内容
Jun 12 Javascript
详解Angular开发中的登陆与身份验证
Jul 27 Javascript
基于代数方程库Algebra.js解二元一次方程功能示例
Jun 09 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
Jun 11 Javascript
微信小程序日历组件使用方法详解
Dec 29 Javascript
详解vue 路由跳转四种方式 (带参数)
Apr 28 Javascript
小程序实现上下切换位置
Nov 16 Javascript
vue项目在webpack2实现移动端字体自适配功能
Jun 02 #Javascript
React实现类似淘宝tab居中切换效果的示例代码
Jun 02 #Javascript
实例分析javascript中的异步
Jun 02 #Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
Jun 02 #Javascript
js简单实现自动生成表格功能示例
Jun 02 #Javascript
JS中准确判断变量类型的方法
Jun 01 #Javascript
Vuex中的Mutations的具体使用方法
Jun 01 #Javascript
You might like
PHP 遍历XP文件夹下所有文件
2008/11/27 PHP
PHP MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
mysql总结之explain
2012/02/27 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
你必须知道的Javascript知识点之&quot;this指针&quot;的应用
2013/04/23 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
2013/08/14 Javascript
js字符串转成JSON
2013/11/07 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
2014/09/01 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
JS身份证信息验证正则表达式
2017/06/12 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
python实现批量改文件名称的方法
2015/05/25 Python
python避免死锁方法实例分析
2015/06/04 Python
python清理子进程机制剖析
2017/11/23 Python
django使用html模板减少代码代码解析
2017/12/12 Python
Python代码实现KNN算法
2017/12/20 Python
Python3.6简单的操作Mysql数据库的三个实例
2018/10/17 Python
利用Python将文本中的中英文分离方法
2018/10/31 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
如何用Python绘制3D柱形图
2020/09/16 Python
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
分公司经理岗位职责
2013/11/11 职场文书
文案策划求职信
2014/03/18 职场文书
个人自我鉴定总结
2014/03/25 职场文书
外贸业务员求职信
2014/06/16 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
基于python实现银行管理系统
2021/04/20 Python
MySQL范围查询优化的场景实例详解
2022/06/10 MySQL