京东极速版赚金币来袭

写在前面

最近有不少人给我推荐京东极速版,让我帮忙写脚本刷金币,笔者今天抽空研究了下,做了个初稿出来(非UI版本)

关注微信公众号“口袋阅打卡小助手”,后台回复"京东极速版",获取脚本文件(脚本文件将在文末开源,大家安心哦)

京东极速版赚金币来袭_第1张图片

脚本介绍

脚本完成的功能比较简单,代码量也较少,不过已经足够帮助大家完成重复的劳动了

支持自动完成"看商品"、"看视频"以及"看活动"任务

脚本运行过程中,如需退出,按音量上键即可退出运行

笔者这里就不赘述导入脚本的过程了,需要脚本源文件的可以复制文末的代码,也可以关注公众号回复关键字"京东极速版"获取

注意事项:

1、你需要有Autojs这个APP(安卓系统需要是Android7.0及以上版本),没有APP的可以去公众号回复“autojs”获取安装包

2、你需要懂得开启无障碍模式(脚本运行的时候会提示,不懂的也可以看我公众号或者博客里面的其他文章参考)

3、脚本仅供学习使用

由于笔记也是今天刚刚接触京东极速版APP,还有很多不熟悉的地方(第一次玩,也在研究阶段),脚本制作过程中难免有所bug,大家遇到问题可以多多提出来,笔者看到也会第一时间更新脚本

运行效果

 

脚本代码

auto.waitFor();

console.show();
console.log('脚本将在5-10秒后开始,将自动打开京东极速版');
console.log('---------------')
console.error('注意:如果脚本无法正常运行,可能是由于屏幕分辨率设置错误导致,请看源码中参数设置部分,按照自己设备调节参数即可')
console.warn('另外:如果需要在中途退出脚本,请按音量上键,即可停止脚本执行')
//初始化参数,注意,笔者在这里测试的时候,设备width和height获取到的值为1,导致后面脚本滑动报错
//所以笔者手动添加了自己手机的分辨率,经过查询,该问题别人也有发现,需要等待Autojs解决
//大家根据自己的情况手动更改下面的参数(1080和1920)即可,不过,如果脚本正常运行,可以不用更改
let width = device.width || 1080;
let height = device.height || 1920;
setScreenMetrics(width, height);

//初始化方法
function init() {
    events.observeKey();
    events.on("key", function (keyCode, event) {
        if (keyCode == keys.volume_up) {
            toastLog("音量上键按下,结束脚本");
            exit();
        }
    });
}

//常量定义
let JD_NAME = 'com.jd.jdlite';

//弹框
function myAlert(val) {
    alert('温馨提示', val);
}

//打开京东极速版
function openJD(name) {
    return launch(name);
}

//看一次商品任务
function doShopTask(shopBtn) {
    shopBtn.click();
    sleep(2000);
    var count = 0;
    while (count++ < 17) {
        MySwipe();
        MySleep(0.5, 2);
    }
    back();
    sleep(3000);
}

//看一次活动任务
function doActiveTask(activeBtn) {
    activeBtn.click();
    sleep(2000);
    var count = 0;
    while (count++ < 17) {
        MySwipe();
        MySleep(0.5, 2);
    }
    back();
    MySleep(2, 4);
}

//看视频任务
function doVideoTask(videoBtn) {
    videoBtn.click();
    var child = idEndsWith('text_title').findOne();
    toastLog('识别文本:' + child.text());
    click(child.text(), 0);
    for (var i = 0; i < 50; i++) {
        var count = 0;
        while (count++ < 80) {
            MySleep(0.5, 0.6);
        }
        MySwipe();
        toastLog('完成第' + i + '次看视频循环');
        if (videoIsEnd()) {
            toastLog('识别到今日已完成,结束看视频:');
            break;
        }
    }
}

//判断视频是否结束
function videoIsEnd() {
    var isEnd = text('今日已完成').findOne(2000);
    if (isEnd) {
        return true;
    }
    return false;
}

//找任务按钮
function findTaskBtn(type) {
    var taskBtnGroup = text('去赚钱').untilFind();
    var btn;
    taskBtnGroup.forEach(function (item) {
        if (type == 1 && !item.parent().findByText('逛商品赚金币').empty) {
            btn = item;
        } else if (type == 2 && !item.parent().findByText('逛活动赚金币').empty) {
            btn = item;
        } else if (type == 3 && !item.parent().findByText('看视频赚金币').empty) {
            btn = item;
        }
    });
    return btn;
}

//找‘我的’
function findMyBtn() {
    var myBtn = className("android.view.View").desc("我的").findOne();
    return myBtn;
}

//启动函数
function main() {
    init();
    if (!openJD(JD_NAME)) {
        toastLog('未安装京东极速版哦!');
        return;
    }
    //找到‘我的’
    var myBtn = findMyBtn();
    myBtn.click();
    //判断任务是否需要执行
    var btn;
    var i = 1;
    while (btn = findTaskBtn(1)) {
        doShopTask(btn);
        toastLog('第' + i + '次看商品完成');
        if (++i > 100) {
            break;
        }
    }
    toastLog('商品任务结束');
    i = 1;
    while (btn = findTaskBtn(2)) {
        doActiveTask(btn);
        toastLog('第' + i + '次看活动完成');
        if (++i > 30) {
            break;
        }
    }
    toastLog('活动任务结束');
    if (btn = findTaskBtn(3)) {
        toastLog('视频按钮找到了');
        doVideoTask(btn);
    }
    toastLog('视频任务结束');
    exit();
}

function random(min, max) {
    return Math.round(Math.random() * (max - min)) + min;
}

function MySwipe() {
    var sX = random(100, width - 100);
    var sY = random(height / 2 + 100, height - 100);
    var eY = random(100, height / 2 - 100);
    swipe(sX, sY, sX, eY, random(100, 120));
}

function MySleep(Min, Max) {
    sleep(random(Min * 1000, Max * 1000));
}

main();

 

你可能感兴趣的:(日常小记,android,js,脚本语言)