【2022年】一键完成淘宝/京东双十一活动脚本

相关阅读

声明

仅供个人使用、禁止商用,请勿用于薅羊毛非法倒卖等违法行为,由此产生的法律后果需自行承担,阅读下文代表认同以上协议。

教程

Andriod用户:使用AutoJS管理脚本

如果您想在电脑上完成下述操作,您也可以安装模拟器(但是部分模拟器可能会出现京东、淘宝安装之后打不开的情况,因此还是强烈建议使用真机)

图片[1]-【2022年】一键完成淘宝/京东双十一活动脚本-FancyPig's blog

2022年京东双十一最新脚本,如果不会使用您可以参考之前的文章 或者 点击👉如何使用脚本

const sleepTime = 500;
const speed = 2;
// 任务序号
var TASK_ID = 0;
const appPackageName = "com.jingdong.app.mall";
// 忽略任务
const IGNORE_TASK_LIST = ['授权信息', '确认授权', '下单再得'];
const BACK_LIST = ['获得8000金币', '获得7000金币', '获得4000金币', '获得3000金币'];
// 是否需要进入活动界面
var isNeedIntoActivityUi = false;
// 判断停留时间
var JUDGE_TIME = 0;
// 定时器
var interval;
// 任务进行中标记
var task_process = true;
// 是否为品牌墙任务
var is_pp = false;
// 是否领取奖励
var is_get_reward = false;
init();
function init() {
    console.log("项目地址:https://github.com/czj2369/jd_tb_auto");
    console.log("音量上键结束脚本运行");
    console.log("如果程序无法自动进入活动页,请手动进入!")
    // 子线程监听音量上键按下
    threads.start(function () {
        events.setKeyInterceptionEnabled("volume_up", true);
        //启用按键监听
        events.observeKey();
        //监听音量上键按下
        events.onKeyDown("volume_up", function (event) {
            console.log("脚本退出!")
            exit();
        });
    });
    // 子线程开启计时
    threads.start(function () {
        if (interval == null) {
            // 开启计时器,进行卡顿计时
            // 启动定时器前,将计数器归为0
            JUDGE_TIME = 0;
            console.log("开启定时器");
            interval = setInterval(function () {
                JUDGE_TIME = JUDGE_TIME + 1;
                //console.log("停留时间计时:", JUDGE_TIME);
                recoverApp();
            }, 1000);
        }
    });

    console.log("当前手机分辨率", device.width, device.height)
    // 设置分辨率
    setScreenMetrics(1090, 1920);
    console.log("设置手机脚本分辨率", 1090, 1920)
    auto.waitFor();
    auto.setMode("normal");

    console.show();
    // 启动京东
    app.launch(appPackageName);

    // 启动任务
    while (true) {
        task_process = clikcFinish();
        enterActivity();
        while (task_process) {
            execTask();
        }
    }

}

/**
 * 进入活动界面
 */
function enterActivity() {
    if (desc("浮层活动").exists() && text("购物车")) {
        const rect = desc("浮层活动").findOne().bounds();
        click(rect.centerX(), rect.centerY());
        sleep(500)
        click(rect.centerX(), rect.centerY());
        // 计时器重置
        JUDGE_TIME = 0;
    }
    if (textContains("距离下次抽到分红").exists() && !text("做任务 赚金币").exists()) {
        console.log("点击做任务")
        clickCenterXY(855, 1893, 1035, 1920);
        sleep(2000);
        clickCenterXY(855, 1893, 1035, 1920);
        // 计时器重置
        JUDGE_TIME = 0;
    }
}

/**
 * 
 * @returns 点击去完成
 */
function clikcFinish() {

    if (textContains("去打卡").exists()) {
        const daka = textContains("去打卡").findOne().bounds();
        click(daka.centerX(), daka.centerY());
    }


    if (text("当前进度:10/10").exists() && !is_get_reward) {
        clickCenterXY(516, 648, 606, 684);
        clickCenterXY(705, 648, 792, 684);
        clickCenterXY(891, 648, 981, 684);
        is_get_reward = true;
    }

    console.log("当前任务序号:", TASK_ID)
    const button = text("去领取").exists() ? text("去领取").find()[0] : text("去完成").find()[TASK_ID];
    if (button != undefined) {
        const rect = button.bounds()
        const parentButton = button.parent();
        for (var i = 0; i < parentButton.childCount(); i++) {
            var b = parentButton.children()[i].bounds();
            if (rect.centerX() == b.centerX() && rect.centerY() == b.centerY()) {
                const info = parentButton.children()[i - 1];
                console.log("当前任务:", info.children()[1].text());
                if (info.children()[1].text().indexOf("浏览5个品牌墙店铺") >= 0) {
                    is_pp = true;
                }

            }
        }
        //sleep(2000);
        if (click(rect.centerX(), rect.centerY()) && click(rect.centerX(), rect.centerY())) {
            console.log("点击去完成");
            // 计时器重置
            JUDGE_TIME = 0;
            sleep(3000);
            return true;
        }
    }
}

/**
 * 执行任务
 * 
 * @returns 
 */
function execTask() {
    // 判断任务序号是否需要自增
    judgeAddTaskId();

    // 滑动任务
    swipeTask();

    // 浏览商品任务
    viewProduct();

    // 加购任务
    addCarTask();

    // 种草城任务
    viewBrankTask();

    // 浏览品牌商店任务
    viewBrankShopTask();

}

/**
 * 判断任务序号是否需要自增
 */
function judgeAddTaskId() {
    for (var j = 0; j < IGNORE_TASK_LIST.length; j++) {
        if (textContains(IGNORE_TASK_LIST[j]).exists()) {
            TASK_ID++;
            if (TASK_ID >= 3) {
                TASK_ID = 0;
            }
            console.log("任务序号自增:", TASK_ID)
            back();
            sleep(1000);
            // 计时器重置
            JUDGE_TIME = 0;
            task_process = false;
            break;
        }
    }
}

/**
 * 滑动任务
 */
function swipeTask() {
    if (textContains("滑动浏览").exists() && !text("去完成").exists()) {
        if (swipe(971, 1610, 989, 1135, 300)) {
            // 计时器重置
            JUDGE_TIME = 0;
            for (var i = 0; i < BACK_LIST.length; i++) {
                if (text(BACK_LIST[i]).exists()) {
                    isReturn = true;
                    back();
                    task_process = false;
                    // 计时器重置
                    JUDGE_TIME = 0;
                    sleep(2000);
                    break;
                }
            }
        }
    }
}

/**
 * 浏览商品任务
 */
function viewProduct() {
    if (text("当前页点击浏览4个商品领金币5000金币").exists()) {
        console.log("浏览4个商品任务");
        const list = textContains("¥").find();
        const ret = list[0].bounds();
        if (click(ret.centerX(), ret.centerY())) {
            sleep(2000);
            back();
            sleep(2000);
        }
        back();
        // 计时器重置
        JUDGE_TIME = 0;
        task_process = false;
        sleep(2000);
    }
}

/**
 * 加购任务
 */
function addCarTask() {
    if (text("当前页浏览加购4个商品领4000金币").exists()) {
        console.log("浏览4个商品任务");
        if (clickCenterXY(315, 1098, 501, 1182)) {
            sleep(2000);
            back();
            sleep(2000);
        }
        back();
        // 计时器重置
        JUDGE_TIME = 0;
        task_process = false;
        sleep(2000);
    }
}

/**
 * 浏览品牌商店任务
 */
function viewBrankShopTask() {
    if (is_pp) {
        clickCenterXY(63, 867, 240, 957);
        sleep(2000);
        back();
        sleep(2000);
        clickCenterXY(324, 867, 498, 957);
        sleep(2000);
        back();
        sleep(2000);
        clickCenterXY(582, 867, 756, 957);
        sleep(2000);
        back();
        sleep(2000);
        clickCenterXY(840, 867, 1017, 957);
        sleep(2000);
        back();
        sleep(2000);
        clickCenterXY(63, 1062, 240, 1152);
        is_pp = false;
        // 计时器重置
        JUDGE_TIME = 0;
        task_process = false;
    }
}

/**
 * 种草城任务
 */
function viewBrankTask() {
    if (text("品牌种草城").exists()) {
        var i = 0;
        while (i <= 4) {
            if (clickCenterXY(540, 1746, 1029, 1920)) {
                sleep(2000);
                back();
                i++;
                sleep(2000);
            }
            if (i == 5) {
                back();
                // 计时器重置
                JUDGE_TIME = 0;
                task_process = false;
            }
        }
    }
}

/**
 * 点击控件中点
 * 
 * @param {*} uiName 
 * @param {*} type 
 * @param {*} index 
 * @returns 
 */
function clickCenter(uiName, type, index) {
    let type = type || 'text';
    let index = index || 0;
    try {
        const bounds = type == "desc" ? desc(uiName).find()[index].bounds() : text(uiName).find()[index].bounds();
    } catch (error) {
        return false;
    }
    console.log("点击坐标:", bounds.centerX(), bounds.centerY());
    // 计时器重置
    JUDGE_TIME = 0;
    return click(bounds.centerX(), bounds.centerY());
}

/**
 * 根据坐标直接点击
 * @param {*} bounds 
 * @returns 
 */
function clickCenterXY(x1, y1, x2, y2) {
    // 计时器重置
    JUDGE_TIME = 0;
    return click((x1 + x2) / 2, (y1 + y2) / 2);
}

/**
 * 自动判断程序是否卡顿,恢复方法
 * 判断依据:1.不在活动界面 2.停留某个界面长达15s
 */
function recoverApp() {
    if (JUDGE_TIME > 15) {
        if (back()) {
            sleep(2000);
            task_process = false;
            // 计时器重置
            JUDGE_TIME = 0;
            app.launch(appPackageName);
            log("停留某个页面超过15s,自动返回,重置定时器。");
            return true;
        }
    }
}

淘宝双十一最新脚本

// 任务序号
var TASK_ID = 0;
const appPackageName = "com.taobao.taobao";
// 忽略任务
const IGNORE_TASK_LIST = ['邀请成功最高得', '支付宝', '淘宝乐园', '芭芭'];
const BACK_LIST = ['任务完成', '任务已经全部完成啦', '下单可获得额外喵果'];
// 判断停留时间
var JUDGE_TIME = 0;
// 定时器
var interval;
// 任务进行中标记
var task_process = true;
init();
function init() {
    console.log("项目地址:https://github.com/czj2369/jd_tb_auto");
    console.log("音量上键结束脚本运行");
    console.log("如果程序无法自动进入活动页,请手动进入!")
    console.log("如果程序太久没有动静(半分钟内),请结束脚本之后,重新启动脚本!")
    // 子线程监听音量上键按下
    threads.start(function () {
        events.setKeyInterceptionEnabled("volume_up", true);
        //启用按键监听
        events.observeKey();
        //监听音量上键按下
        events.onKeyDown("volume_up", function (event) {
            console.log("脚本退出!")
            exit();
        });
    });
    // 子线程开启计时
    threads.start(function () {
        if (interval == null) {
            // 开启计时器,进行卡顿计时
            // 启动定时器前,将计数器归为0
            JUDGE_TIME = 0;
            console.log("开启定时器");
            interval = setInterval(function () {
                JUDGE_TIME = JUDGE_TIME + 1;
                //console.log("停留时间计时:", JUDGE_TIME);
                recoverApp();
            }, 1000);
        }
    });

    console.log("当前手机分辨率", device.width, device.height)
    // 设置分辨率
    setScreenMetrics(1090, 1920);
    console.log("设置手机脚本分辨率", 1090, 1920)
    auto.waitFor();
    auto.setMode("normal");

    console.show();
    // 启动淘宝
    app.launch(appPackageName);

    // 启动任务
    while (true) {
        task_process = clikcFinish();
        enterActivity();
        while (task_process) {
            execTask();
        }
    }

}

/**
 * 进入活动界面
 */
function enterActivity() {
    if (desc("我的淘宝").exists() && desc("购物车").exists()) {
        desc("我的淘宝").findOne().click();
        // 计时器重置
        JUDGE_TIME = 0;
    }

    if (desc("瓜分10亿").exists()) {
        desc("瓜分10亿").findOne().click();
        // 计时器重置
        JUDGE_TIME = 0;
    }

    if (textContains("天猫双十一 喵喵爱糖果,瓜分十亿红包").exists()) {
        console.log("点击做任务")
        text("去赚能量").findOne().click();
        sleep(2000);
        // 计时器重置
        JUDGE_TIME = 0;
    }
}

/**
 * 
 * @returns 点击去完成
 */
function clikcFinish() {
    const button = text("去完成").find()[TASK_ID];
    if (button != undefined) {
        const parentButton = button.parent();
        var taskName = parentButton.children()[0].children()[0].text();
        for (var i = 0; i < IGNORE_TASK_LIST.length; i++) {
            if (taskName.indexOf(IGNORE_TASK_LIST[i]) >= 0) {
                TASK_ID++;
                console.log("忽略当前任务:", taskName);
                console.log("任务序号自增", TASK_ID);
                return false;
            }
        }
        console.log("当前任务:", taskName);
        //sleep(2000);
        if (button.click()) {
            console.log("点击去完成");
            // 计时器重置
            JUDGE_TIME = 0;
            sleep(3000);
            return true;
        }
    }
    return false;
}

/**
 * 执行任务
 * 
 * @returns 
 */
function execTask() {
    // 判断任务序号是否需要自增
    judgeAddTaskId();

    // 双十一喵果互动
    interactionMG();

    // 浏览任务
    viewTask();
}

/**
 * 判断任务序号是否需要自增
 */
function judgeAddTaskId() {
    if (text("浏览得奖励").exists()) {
        // 计时器重置
        JUDGE_TIME = 0;
    }
}

/**
 * 浏览任务
 */
function viewTask() {
    for (var i = 0; i < BACK_LIST.length; i++) {
        if (text(BACK_LIST[i]).exists() || desc(BACK_LIST[i]).exists() || id("2542212460").exists()) {
            back();
            sleep(2000);
            // 计时器重置
            JUDGE_TIME = 0;
            console.log("浏览完成,返回");
            task_process = false;
            break;
        }
    }
}

/**
 * 双十一喵果互动
 */
function interactionMG() {
    if (text("双十一喵果互动").exists()) {
        text("允许").findOne().click();
        // 计时器重置
        JUDGE_TIME = 0;
        task_process = false;
    }
}

/**
 * 点击控件中点
 * 
 * @param {*} uiName 
 * @param {*} type 
 * @param {*} index 
 * @returns 
 */
function clickCenter(uiName, type, index) {
    let type = type || 'text';
    let index = index || 0;
    try {
        const bounds = type == "desc" ? desc(uiName).find()[index].bounds() : text(uiName).find()[index].bounds();
    } catch (error) {
        return false;
    }
    console.log("点击坐标:", bounds.centerX(), bounds.centerY());
    // 计时器重置
    JUDGE_TIME = 0;
    return click(bounds.centerX(), bounds.centerY());
}

/**
 * 根据坐标直接点击
 * @param {*} bounds 
 * @returns 
 */
function clickCenterXY(x1, y1, x2, y2) {
    // 计时器重置
    JUDGE_TIME = 0;
    return click((x1 + x2) / 2, (y1 + y2) / 2);
}

/**
 * 自动判断程序是否卡顿,恢复方法
 * 判断依据:1.不在活动界面 2.停留某个界面长达15s
 */
function recoverApp() {
    if (JUDGE_TIME > 25) {
        if (back()) {
            sleep(2000);
            task_process = false;
            // 计时器重置
            JUDGE_TIME = 0;
            app.launch(appPackageName);
            log("停留某个页面超过25s,自动返回,重置定时器。");
            console.log("当前任务序号:", TASK_ID)
            return true;
        }
    }
}

当然还有一部分比较懒的用户,你也可以使用hamibot这样的平台,里面包含了众多脚本

详细使用方法其实去年我们就介绍过,👉点击查看

图片[6]-【2022年】一键完成淘宝/京东双十一活动脚本-FancyPig's blog

ios用户:使用快捷指令

你可以在上方按钮获取更多的ios快捷指令,目前暂未提供双十一相关的指令,后续有了我们会给大家更新

其他活动

当然,双十一还有诸多的活动,您也可以参考下面的入口获取相关的优惠

© 版权声明
THE END
喜欢就支持一下吧
点赞15赞赏 分享
评论 共18条

请登录后发表评论