| auto.waitFor();
 log("-启动-垂直浏览功能");
 var startTime=new Date().getTime();
 var plList;//评论内容列表
 var gzzbNum=0;//记录关注主播数量
 var dzslNum=0;//点赞主播数量
 var llzpNum=0;//浏览作品数量
 var zpgjcList;//关键词
 var tlsjTime=5000;//停留观看时间 默认5s
 beforRun();
 doNext();
 endRun();
 storage.put("RUN_JS_RUNING",false);//运行结束
 log("-停止-垂直浏览功能");
 //继续下一步
 function doNext(){
     var ifInLiveRoom=checkInLive();//是否在直播间
     if(ifInLiveRoom){
         //直播间里
         zbjRun();
     }else{
         //短视频
         dspRun();
     }
 }
 //短视频运行
 function dspRun(){
     console.warn("浏览短视频");
     console.warn("自定义评论内容:"+DY_czll_plnr);
     while(true){
         llzpNum++;
         var ifContinue=checkGjz();//检测关键字
         if(ifContinue){
             //检测有关键字
             clickGuanzhu();//短视频点赞关注
             clickZan();//短视频点赞关注
             clickPinglun();//短视频评论
             sleep(tlsjTime);//停留浏览时间3s
         }
         //判断是否停止运行脚本
         var isRun=storage.get("RUN_JS_RUNING",false);
         if(!isRun){
             return;//结束
         }
         //检测运行时间
         var endTime=new Date().getTime();
         var runAllTime=(endTime-startTime)/1000;//已经运行秒
         if(runAllTime>DY_czll_lltjsc*60){
             //到达设置时间
             return;
         }
         console.warn("屏幕宽高:"+device.width+","+device.height);
 //swipe(device.width-200, device.height-400, device.width-200, 100, 500);//下一条视频
         swipe(device.width/2, device.height/5*4, device.width/2, device.height/5, 200);//下一条视频
         sleep(1000);
     }
 }
 //直播间运行
 function zbjRun(){
     console.warn("观看直播");
     while(true){
         llzpNum++;
         clickHbFd();//点击领取红包福袋
         var ifContinue=checkZbjGjz();//检测关键字
         if(ifContinue){
             //检测有关键字
             clickZbjPinglun();//直播间评论
             sleep(tlsjTime);//停留浏览时间3s
         }
         //判断是否停止运行脚本
         var isRun=storage.get("RUN_JS_RUNING",false);
         if(!isRun){
             return;//结束
         }
         //检测运行时间
         var endTime=new Date().getTime();
         var runAllTime=(endTime-startTime)/1000;//已经运行秒
         if(runAllTime>DY_czll_lltjsc*60){
             //到达设置时间
             return;
         }
         swipe(device.width-200, device.height-400, device.width-200, 100, 500);//下一条视频
         sleep(1000);
     }
 }
 //运行开始
 function beforRun(){
     log("系统提醒:浏览时长"+DY_czll_lltjsc+"分钟");
     if(DY_czll_gbgjcsb){
         log("关闭关键词识别");
     }else{
         if(DY_czll_zpgjc!=null&&DY_czll_zpgjc!=""){
             zpgjcList=DY_czll_zpgjc.split(",");
             log("关键词数量:"+zpgjcList.length);
             for(var i=0;i<zpgjcList.length;i++){
                 var gjc=zpgjcList[i];
                 log("关键词"+(i+1)+":"+gjc);
             }
         }
     }
 }
 //运行结束
 function endRun(){
     var ifInLiveRoom=checkInLive();//是否在直播间
     var endTime=new Date().getTime();
     log("时间提示:运行"+(endTime-startTime)/1000+"秒");
     if(ifInLiveRoom){
         log("观看直播间:"+llzpNum);
     }else{
         log("浏览作品:"+llzpNum);
         log("点赞作品:"+dzslNum);
         log("关注作品:"+gzzbNum);
     }
 }
 //校验是否在直播间页面
 function checkInLive(){
     var livecommentLab=text("说点什么...").findOne(1000);
     if(livecommentLab==null){
         returnfalse;
     }else{
         returntrue;
     }
 }
 //直播间领取红包和福袋
 function clickHbFd(){
     var hbmqdLable=text("知道了").findOne(100);
     if(hbmqdLable!=null){
         hbmqdLable.click();
     }
     if(!DY_czll_lqhbfd){
         return;
     }
     sleep(5000);
     var hbfdLayout=className("android.widget.HorizontalScrollView").findOne(2000);
     if(hbfdLayout==null){
         log("系统提示:没有红包或福袋,自动跳过");
         return;
     }
     if(hbfdLayout.childCount()==0){
         log("系统提示:没有红包或福袋,自动跳过");
         return;
     }
     var hbfdFrameLayout=hbfdLayout.child(0);
     if(hbfdFrameLayout.childCount()==0){
         log("系统提示:没有红包或福袋,自动跳过");
         return;
     }
     log("系统提示:检测到红包或福袋");
     for(var i=0;i<hbfdFrameLayout.childCount();i++){
         var hbfdFrameItem=hbfdFrameLayout.child(i);
         if(hbfdFrameItem==null){
             continue;
         }
         hbfdFrameItem.click();
         sleep(2000);
         var ifFd=clickFd(hbfdFrameItem);
         if(ifFd){
             //是福袋
             continue;
         }
         clickHb();
         sleep(2000);
     }
     suijiSleep();
 }
 //点击的是福袋
 function clickFd(hbfdFrameItem){
     var fdView=text("福袋").findOne(1000);
     if(fdView==null){
         returnfalse;
     }
     if("2"==DY_czll_fdhbsz){
         //只领取红包
         log("系统提示:只领取红包,自动关闭福袋");
         click(device.width/2+200, device.height/2-300);
         returnfalse;
     }
     if("android.view.View"!=fdView.className()){
         click(device.width/2+200, device.height/2-300);
         returnfalse;
     }
     var jrfstView=textContains("加入粉丝团").findOne(1000);
     if(jrfstView!=null){
         //需要加入粉丝团
         if("2"==DY_czll_fdlqtj){
             //免费领取的 跳过
             log("系统提示:领取福袋需要加入粉丝团,自动跳过");
             click(device.width/2+200, device.height/2-300);
             returntrue;
         }
         var jrfstydbLabel=text("加入粉丝团(1抖币)").findOne(1000);
         if(jrfstydbLabel==null){
             log("系统提示:加入粉丝团大于1抖币,自动跳过");
             click(device.width/2+200, device.height/2-300);
             returntrue;
         }
         jrfstydbLabel.click();
         sleep(2000);
         var czLabel=textContains("立即充值").findOne(1000);
         if(czLabel!=null){
             log("系统提示:抖币余额不足,自动跳过");
             click(device.width/2+200, device.height/2-300);
             sleep(1000);
             click(device.width/2+200, device.height/2-300);
             returntrue;
         }else{
             log("系统提示:支付1抖币加入粉丝团");
         }
     }
     var qfbplView=text("去发表评论").findOne(1000);
     if(qfbplView==null){
         log("系统提示:未找到参与福袋评论按钮,自动跳过");
         click(device.width/2+200, device.height/2-300);
         returntrue;
     }
     console.warn("时间限制:"+DY_czll_fdsjxz);
     if("3"!=DY_czll_fdsjxz){
         //少于1分钟或少于两分钟
         var ifLessTime=false;
         var djsTitleLabel=text("倒计时").findOne(1000);
         if(djsTitleLabel!=null){
             var djsParentLayout=djsTitleLabel.parent();
             var djsLabel=djsParentLayout.child(1);
             if(djsLabel!=null){
                 var djsTimeStr=djsLabel.text();
                 log("系统提示:福袋开奖时间"+djsTimeStr);
                 if("1"==DY_czll_fdsjxz){
                     //少于1分钟
                     if(djsTimeStr.indexOf("00:")==0){
                         ifLessTime=false;
                     }else{
                         ifLessTime=true;
                     }
                 }elseif("2"==DY_czll_fdsjxz){
                     //少于2分钟
                     if(djsTimeStr.indexOf("00:")==0||djsTimeStr.indexOf("01:")==0){
                         ifLessTime=false;
                     }else{
                         ifLessTime=true;
                     }
                 }
             }
         }
         if(ifLessTime){
             log("系统提示:开奖时间太长,自动跳过");
             click(device.width/2+200, device.height/2-300);
             returntrue;
         }
     }
     console.warn("福袋概率设置:"+DY_czll_fdzjgl);
     if("5"!=DY_czll_fdzjgl){
         //中奖概率设置
         var gfdNumLabel=textContains("个福袋").findOne(1000);
         var yzyNumLabel=textContains("人已参与").findOne(1000);
         if(gfdNumLabel!=null&&yzyNumLabel!=null){
             var gfdNumStr=gfdNumLabel.text();
             var yzyNumStr=yzyNumLabel.text();
             log("系统提示:"+gfdNumStr+","+yzyNumStr);
             gfdNumStr=gfdNumStr.slice(0,gfdNumStr.indexOf("个福袋"));
             yzyNumStr=yzyNumStr.slice(0,yzyNumStr.indexOf("人已参与"));
             var gailv=parseInt(parseInt(gfdNumStr)/(parseInt(yzyNumStr)*1.00)*100);
             log("系统提示:中奖概率"+gailv+"%");
             if("1"==DY_czll_fdzjgl){
                 //中奖概率大于20
                 if(gailv<20){
                     log("系统提示:中奖概率低于20%,自动跳过");
                     click(device.width/2+200, device.height/2-300);
                     returntrue;
                 }
             }elseif("2"==DY_czll_fdzjgl){
                 //中奖概率大于50
                 if(gailv<50){
                     log("系统提示:中奖概率低于50%,自动跳过");
                     click(device.width/2+200, device.height/2-300);
                     returntrue;
                 }
             }elseif("3"==DY_czll_fdzjgl){
                 //中奖概率大于80
                 if(gailv<80){
                     log("系统提示:中奖概率低于80%,自动跳过");
                     click(device.width/2+200, device.height/2-300);
                     returntrue;
                 }
             }elseif("4"==DY_czll_fdzjgl){
                 //中奖概率大于100
                 if(gailv<100){
                     log("系统提示:中奖概率低于100%,自动跳过");
                     click(device.width/2+200, device.height/2-300);
                     returntrue;
                 }
             }
         }
     }
     qfbplView.click();
     var huifuEditView =className("android.widget.EditText").findOne(1000);//找到输入框
     if(huifuEditView!=null){
         var msgStr=huifuEditView.text();
         var sendBtn=desc("发送").findOne();
         sendBtn.click();
         log("评论内容:"+msgStr);
         log("系统提示:已参与福袋抽奖");
         sleep(2000);
         hbfdFrameItem.click();
         var hbmqdLable=text("知道了").findOne();
         if(hbmqdLable!=null){
             suijiSleep();
             hbmqdLable.click();
         }
     }
     returntrue;
 }
 //点击的是红包
 function clickHb(){
     var closeBtnArr=desc("关闭").find();
     console.warn("关闭按钮的数量:"+closeBtnArr.length);
     var closeBtn=closeBtnArr[closeBtnArr.length-1];
     if(closeBtn==null){
         return;
     }
     var closeViewGroup=closeBtn.parent();
     if("android.view.ViewGroup"!=closeViewGroup.className()){
         console.warn("不是 android.view.ViewGroup");
         console.warn("关闭按钮的位置:"+closeBtn.bounds().centerY());
         if(closeBtn.bounds().centerY()<device.height/2-500){
             //不是弹框的关闭
             return;
         }
         closeBtn.click();
         return;
     }
     if("1"==DY_czll_fdhbsz){
         //只领取福袋
         log("系统提示:只领取福袋,不点击红包");
         closeBtn.click();
         return;
     }
     console.warn("时间限制:"+DY_czll_fdsjxz);
     if("3"!=DY_czll_fdsjxz){
         //少于1分钟或少于两分钟
         var ifLessTime=false;
         var djsLabel=textContains("可抢").findOne(1000);
         if(djsLabel!=null){
             var djsTimeStr=djsLabel.text();
             log("系统提示:福袋开奖时间"+djsTimeStr);
             if("1"==DY_czll_fdsjxz){
                 ifLessTime=true;
             }elseif("2"==DY_czll_fdsjxz){
                 //少于2分钟
                 if(djsTimeStr.indexOf("1分")==0){
                     ifLessTime=false;
                 }else{
                     ifLessTime=true;
                 }
             }
         }
         if(ifLessTime){
             log("系统提示:开奖时间太长,自动跳过");
             closeBtn.click();
             return;
         }
     }
     var hbyqwLabel=text("红包已抢完").findOne(50);
     var hbmqdLable=text("知道了").findOne(50);
     var smlLable=text("手慢了").findOne(50);
     var ckdjsqLabel=text("查看大家手气").findOne(50);
     var hbygqLabel=text("红包已过期").findOne(50);
     while(hbyqwLabel==null&&hbmqdLable==null&&smlLable==null&&ckdjsqLabel==null&&hbygqLabel==null){
         log("系统提示:点击抢红包");
         console.warn("点击位置:"+device.width/2+","+device.height/2);
         click(device.width/2,device.height/2);
         hbyqwLabel=text("红包已抢完").findOne(50);
         hbmqdLable=text("知道了").findOne(50);
         smlLable=text("手慢了").findOne(50);
         ckdjsqLabel=text("查看大家手气").findOne(50);
         hbygqLabel=text("红包已过期").findOne(50);
     }
     suijiSleep();
     closeBtn.click();
 }
 //短视频关键字校验
 function checkGjz(){
     var startCheckTime=new Date().getTime();
     var headImgView=findBtnType(3);
     var textRootLayout=findBtnType(4);
     if(headImgView!=null){
         var nickNameStr=headImgView.desc();
         log("视频发布者:"+nickNameStr);
     }
     var ifCheckHave=checkGjzDetail(textRootLayout);
     var endCheckTime=new Date().getTime();
     var logStr="检测耗时"+(endCheckTime-startCheckTime)/1000+"秒";
     if(ifCheckHave){
         if(!DY_czll_gbgjcsb){
             //开启检测关键词
             logStr="检测到关键字,"+logStr;
             log(logStr);
         }
         //随机停留观看时间
         tlsjTime=parseInt(Math.random()*(DY_czll_llzpsj_big-DY_czll_llzpsj_small))+DY_czll_llzpsj_small;
         tlsjTime=tlsjTime*1000;
         log("停留观看"+tlsjTime/1000+"秒");
     }else{
         logStr="跳过该视频,未检测到关键字,"+logStr;
         log(logStr);
         sleep(2000);
     }
     returnifCheckHave;
 }
 //短视频点赞
 function clickZan(){
     if(DY_czll_pldz){
         var checkItem=findBtnType(2);
         if(checkItem!=null){
             checkItem.click();
             dzslNum++;
             log("点赞数量:"+dzslNum);
             sleep(500);
         }else{
             console.warn("未找到点赞按钮");
         }
     }
 }
 //直播间关键字
 function checkZbjGjz(){
     var startCheckTime=new Date().getTime();
     var nickNameView=findZbjBtnType(1);
     var textRootLayout=findZbjBtnType(2);
     if(nickNameView!=null){
         var nickNameStr=nickNameView.text();
         log("直播者:"+nickNameStr);
     }
     var ifCheckHave=checkGjzDetail(textRootLayout);
     var endCheckTime=new Date().getTime();
     var logStr="检测耗时"+(endCheckTime-startCheckTime)/1000+"秒";
     if(ifCheckHave){
         if(!DY_czll_gbgjcsb){
             //开启检测关键词
             logStr="检测到关键字,"+logStr;
             log(logStr);
         }
         //随机停留观看时间
         tlsjTime=parseInt(Math.random()*(DY_czll_llzpsj_big-DY_czll_llzpsj_small))+DY_czll_llzpsj_small;
         tlsjTime=tlsjTime*1000;
         log("停留观看"+tlsjTime/1000+"秒");
     }else{
         logStr="跳过该视频,未检测到关键字,"+logStr;
         log(logStr);
         sleep(2000);
     }
     returnifCheckHave;
 }
 //直播间评论
 function clickZbjPinglun(){
     if(DY_czll_kqnc){
         suijiSleep();
         if(1==DY_czll_ncfs){
             //自定义评论
             if(DY_czll_plnr==null||DY_czll_plnr==""){
                 return;
             }
         }
         var checkItem=text("说点什么...").findOne(1000);//获取评论按钮
         if(checkItem!=null){
             var msgStr=DY_czll_plnr;
             if(1!=DY_czll_ncfs){
             }
             checkItem.parent().click();
             sleep(1000);
             var huifuEditView =className("android.widget.EditText").findOne(1000);//找到输入框
             if(huifuEditView!=null){
                 huifuEditView.setText(msgStr);
                 var sendBtn=desc("发送").findOne();
                 sendBtn.click();
                 log("评论内容:"+msgStr);
                 sleep(500);
             }
         }else{
             console.warn("未找到评论按钮");
         }
   }
 }
 |