2021京东双十一热爱环游记Autojs脚本

2021京东双十一热爱环游记Autojs脚本

简介

Autojs脚本程序,用于完成安卓设备上的重复性操作.

效果图

注意事项

  • 请打开任务界面(如上图),再开启脚本
  • 有可能出现空指针,undefined等异常(很有可能是网络问题,把时间参数调大点,重新启动脚本即可).
  • Autojs版本为4.1.0(github里的README有)
  • 京东app版本为10.2.2
  • 由于论坛编辑需要审核,所以论坛的帖子不会频繁更新,最新的在github

GitHub链接:https://github.com/loong132/autojs-script/blob/master/ReAiHuanYouJi.js

// [注意事项] 打开任务界面

//页面切换时间间隙默认为4396毫秒,可以根据网络情况修改
let timeGap = 4396 ;
//8s浏览任务时间默认为14396毫秒,可以根据网络情况修改
let viewTime = 14396;

start()
function start() {
    console.show();
    auto.waitFor();
    app.launch("com.jingdong.app.mall");
    while (!textContains("累计任务奖励").exists()) {
        // className("android.view.View").textContains("打卡领红包").findOne().click()
        log("请打开任务界面!");
        sleep(timeGap);
    }
    //任务一已完成
    let hasFinishedTask1 = 0;
    while (1) {
        // 任务类型一,浏览8s任务
        if (hasFinishedTask1 == 0 && textContains("8s").exists()) {
            //设置标志位
            hasFinishedTask1 = 1;
            //做两个任务
            for (let i = 0; i < 2; i++) {
                let task_8s = className("android.view.View").textContains("8s").find();
                if (task_8s[i] && task_8s[i].parent()) {
                    let text = task_8s[i].parent().child(1).text();
                    let allTaskNum = getAllTaskNum(text);
                    let finishedTaskNum = getFinishedTaskNum(text);
                    for (let j = finishedTaskNum; j < allTaskNum; j++) {
                        if (task_8s[i] && task_8s[i].parent()) {
                            log(task_8s[i].parent().child(1).text());
                            log("浏览8s任务");
                            task_8s[i].parent().child(3).click();
                            sleep(viewTime);
                            back();
                            sleep(timeGap);
                            //完成一次任务后重置
                            hasFinishedTask1 = 0;
                        } else {
                            hasFinishedTask1 = 0;
                            break;
                        }
                    }
                }
            }
        }
        // 任务类型二,累计浏览加购5个商品
        else if (textContains("累计浏览").exists() && !isFinish("累计浏览")) {
            let win = textContains("累计浏览").findOnce().parent();
            log(win.child(1).text());
            log("累计浏览5个商品");
            let text = win.child(1).text();
            let allTaskNum = getAllTaskNum(text);
            let finishedTaskNum = getFinishedTaskNum(text);
            win.child(3).click();
            sleep(timeGap*2);
            let inlineWin = textStartsWith("¥").findOnce().parent().parent();
            for (let i = Number(finishedTaskNum); i < Number(allTaskNum); i++) {
                log("浏览第" + (i + 1) + "个商品");
                inlineWin.child(i).child(5).click();
                sleep(timeGap*2);
                back();
                sleep(timeGap);
                for(let i=0;!className("android.view.View").textContains("5个商品领汪汪币").findOnce()&&i<4;i++) {
                    if(i==3){
                        log("无法返回退出脚本,请重新执行脚本")
                        exit();
                    }
                    back();
                    log("无法返回加购页面,第"+(i+1)+"次返回(最多三次)");     
                    sleep(timeGap);                    
                }
            }
            back();//返回任务界面
            sleep(timeGap);
            //完成一次任务后重置
            hasFinishedTask1 = 0;
        }
        //任务类型三,普通点击浏览任务
        else if (textStartsWith("浏览可得").exists() && !isFinish("浏览可得")) {
            let win = textStartsWith("浏览可得").findOnce().parent();
            log(win.child(1).text());
            log("普通点击浏览任务");
            win.child(3).click();
            sleep(timeGap);
            zhongc();
            back();
            sleep(timeGap);
            //完成一次任务后重置
            hasFinishedTask1 = 0;
        }
        else if (textStartsWith("浏览并关注可得").exists() && !isFinish("浏览并关注可得")) {
            log(textStartsWith("浏览并关注可得").findOnce().parent().child(1).text());
            log("普通点击浏览任务");
            className("android.view.View").textStartsWith("浏览并关注可得").findOne().parent().child(3).click();
            sleep(timeGap);
            zhongc();
            back();
            sleep(timeGap);
            //完成一次任务后重置
            hasFinishedTask1 = 0;
        }
        else if (textContains("小程序").exists() && !isFinish("小程序")) {
            let win = textContains("小程序").findOnce().parent();
            log(win.child(1).text());
            log("普通点击浏览任务");
            win.child(3).click();
            sleep(timeGap);
            back();
            sleep(timeGap);
            //完成一次任务后重置
            hasFinishedTask1 = 0;
        }
        else if (textContains("入会").exists() && !isFinish("入会")) {
            log(textContains("入会").findOnce().parent().child(1).text());
            log("浏览入会界面,获取金币");
            className("android.view.View").textContains("入会").findOne().parent().child(3).click();
            sleep(timeGap);
            if (textContains("加入店铺会员").exists()) {
                log("脚本结束(涉及个人隐私,请手动加入店铺会员)");
                break;
            }
            back();
            sleep(timeGap);
            //完成一次任务后重置
            hasFinishedTask1 = 0;
        }
        //结束
        else {
            log("四种任务已完成,若有剩余可再启动一次脚本或手动完成");
            break;
        }
        //避免弹窗,返回任务界面
        for (let i = 1; !textContains("累计任务奖励").exists() && i <= 5; i++) {
            if (i == 5) {
                log("无法返回任务界面,脚本结束");
                exit();
            }
            log("无法返回任务界面,第" + i + "次尝试返回(最多4次)");
            back();
            sleep(timeGap);
        }
    }
}
function getAllTaskNum(text) {
    let allTask = text.charAt(text.length - 2)
    return allTask;
}
function getFinishedTaskNum(text) {
    let finishedTask = text.charAt(text.length - 4)
    return finishedTask;
}
function zhongc() {
    if (textContains("互动种草").exists()) {
        let task = className("android.view.View").text("5000汪汪币").findOne().parent().parent();
        for (let i = 0; i < 5; i++) {
            log("浏览第" + (i + 1) + "个商品");
            task.child(2).child(5).click();
            sleep(timeGap);
            back();
            sleep(timeGap);
        }
    }
}
function isFinish(keyWord) {
    let str;
    if (keyWord == "浏览可得" || keyWord == "浏览并关注可得" || keyWord == "参与") {
        str = textStartsWith(keyWord).findOnce().parent().child(1).text();
    } else {
        str = textContains(keyWord).findOnce().parent().child(1).text();
    }
    let finishedTask = str.charAt(str.length - 4);
    let allTask = str.charAt(str.length - 2);
    sleep(timeGap)
    if (finishedTask >= allTask) {
        return true;
    }
    return false;
}

仅供学习,若有侵权,联系本人删帖

为TA充电
共{{data.count}}人
人已赞赏
原创分享

支付宝25元充值30元话费,操作简单

2021-11-3 14:46:36

原创分享

安全管理制度汇编

2021-11-3 14:47:27

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索