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 相关文章推荐
基于jQuery实现的水平和垂直居中的div窗口
Aug 08 Javascript
JQuery插件Style定制化方法的分析与比较
May 03 Javascript
javascript中的作用域和上下文使用简要概述
Dec 05 Javascript
jQuery中多个元素的Hover事件解决方案
Jun 12 Javascript
jQuery同步提交示例代码
Dec 12 Javascript
JS判断非空至少输入两个字符的简单实现方法
Jun 23 Javascript
laydate 显示结束时间不小于开始时间的实例
Aug 11 Javascript
详解如何在nuxt中添加proxyTable代理
Aug 10 Javascript
vue 项目build错误异常的解决方法
Apr 22 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
Jul 23 Javascript
小程序实现横向滑动日历效果
Oct 21 Javascript
javascript canvas实现雨滴效果
Jun 09 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
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
php三维数组去重(示例代码)
2013/11/26 PHP
微信自定义菜单的处理开发示例
2015/04/16 PHP
开启PHP Static 关键字之旅模式
2015/11/13 PHP
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
用js来获取上传的文件名纯粹是为了美化而用
2013/10/23 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
Python中关键字is与==的区别简述
2014/07/31 Python
python实现同时给多个变量赋值的方法
2015/04/30 Python
django 多数据库配置教程
2018/05/30 Python
基于python实现KNN分类算法
2020/04/23 Python
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
国家地理在线商店:Shop National Geographic
2018/06/30 全球购物
下面关于"联合"的题目的输出是什么
2013/08/06 面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
90后毕业生的求职信范文
2013/09/21 职场文书
法律工作求职自荐信
2013/10/31 职场文书
生物科学专业个人求职信范文
2013/12/05 职场文书
后勤人员岗位职责
2013/12/17 职场文书
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
小学生开学第一课活动方案
2014/03/27 职场文书
社会调查研究计划书
2014/05/01 职场文书
营销经理工作检讨书
2014/11/03 职场文书
团结主题班会
2015/08/13 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
MySQL触发器的使用
2021/05/24 MySQL
教你一步步实现一个简易promise
2021/11/02 Javascript
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android
spring 项目实现限流方法示例
2022/07/15 Java/Android
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技