Skip to content

Commit

Permalink
JD618 1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
czj2369 committed May 23, 2022
1 parent 3438382 commit dca93a4
Show file tree
Hide file tree
Showing 3 changed files with 310 additions and 19 deletions.
44 changes: 25 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# 618||双十一||淘宝||京东||赚喵糖||赚汪汪币||炸年兽任务自动完成脚本
基于AutoJs编写的618||双十一||淘宝||京东||赚喵糖||赚汪汪币||炸年兽任务自动完成脚本
# 618||双十一||淘宝||京东||赚喵糖||赚汪汪币||赚金币自动完成脚本
基于AutoJs编写的618||双十一||淘宝||京东||赚喵糖||赚汪汪币||赚金币自动完成脚本

# 重要说明

Expand All @@ -11,18 +11,32 @@

- JD有个别活动是跳过的,比如需要开会员的,比如分享的,还有下单的

- JD目前有个任务没时间去做,参与城城领钱的,建议手动完成
- ~~JD目前有个任务没时间去做,参与城城领钱的,建议手动完成~~

- TB要先做好新手教程
- 要先做好新手教程

- TB个别活动是跳过的,比如施肥,比如喂鸡,具体看代码的这里忽略的任务
- ~~TB个别活动是跳过的,比如施肥,比如喂鸡,具体看代码的这里忽略的任务~~

```js
var IGNORE_LIST = ['农场', '芭芭农场', '下单', '蚂蚁森林', '淘特', '点淘', '充话费', '参与合伙', '喂小鸡', '斗地主', '续卡', '88VIP'];
```
- 版本说明:JD(11.0.2)

- 测试手机型号:Redmi K40,Redmi Note 4X

- 暂时还没打包成apk,可自行打包,或者把代码放到autoJS使用



# 更新

2022年5月24日

1.[JD]一大晚上看到催更的了,第一版,将就用吧,JD改了很多东西,去年那版用不了了

------

------

------

2022年1月19日

1.[JD]修复品牌墙任务
Expand Down Expand Up @@ -113,19 +127,11 @@



# 其他

1.测试手机型号:Redmi K40,Redmi Note 4X

2.JD版本:9.2.0,TB版本:10.5.0

3.<a id="下载地址">apk下载地址</a>

​ <a href="http://39.99.227.166:8080/download/tb1111" target="_blank">TB</a>
# ~~其他~~

​ <a href="http://39.99.227.166:8080/download/jd1111" target="_blank">JD</a>
~~1.测试手机型号:Redmi K40,Redmi Note 4X~~

​ <a href="https://github.com/czj2369/jd_tb_auto/releases" target="_blank">releases</a>
~~2.JD版本:9.2.0,TB版本:10.5.0~~

# ~~重要说明~~

Expand Down
275 changes: 275 additions & 0 deletions auto_20220618/jd/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,275 @@
/**
* JD618
*
* Author: czj
* Date: 2022/05/24
* Versions: 1.0.0
* Github: https://github.com/czj2369/jd_tb_auto
*/
const sleepTime = 500;
const speed = 2;

// 点击之后返回的任务
const BACK_LIST = ['浏览并关注可得', '逛店可得', '成功浏览可得1000金币', '浏览可得2000', '浏览可得3000'];
// 去完成按钮
const NEED_FININSH_TASK_LIST = [/去.+\)/, /领点点券.+\)/, /签到领.+\)/, /逛众筹.+\)/];
// 需要做的任务
const FINISHED_TASK = ['您所访问的页面不存在', '全部完成啦', /获得\w+金币/, '已浏览', '已达上限'];

// 判断停留时间
var JUDGE_TIME = 0;
// 当前浏览的按钮位置
var currentTask = 0;
// 定时器
var interval;
init();

function init() {
start();

// 子线程开启计时
threads.start(function () {
if (interval == null) {
// 开启计时器,进行卡顿计时
// 启动定时器前,将计数器归为0
JUDGE_TIME = 0;
log("开启定时器");
interval = setInterval(function () {
JUDGE_TIME = JUDGE_TIME + 1;
}, 1000);
}
});

while (true) {

enterActivity();

viewTask();

recoverApp();
}


}

// 启动京东
function start() {
auto.waitFor()
var appName = "com.jingdong.app.mall";
app.launchPackage(appName);
log("启动JD成功");
console.show();
}

// 进入活动中心 JD这里需要手动进入下活动中心,故没有写代码
function enterActivity() {

sleep(sleepTime * speed);
}

/**
* 去浏览任务
*/
function viewTask() {
NEED_FININSH_TASK_LIST.forEach(item => {
var taskCount = textMatches(item).find();
for (var i = 0; i <= taskCount.length; i++) {
sleep(sleepTime * speed);
goTask(taskCount[i]);
}
});
}

function goTask(parent) {
var par = parent;

// 找到去完成按钮
if (par != null && par.parent() != null && par.parent().childCount() >= 3) {
par = par.parent();
// 先判断需要执行几次这个任务
var finshAndCount = par.children()[1].text().split('(')[1].split(')')[0].split('/');
var execCount = finshAndCount[1];
var currentFininshNum = finshAndCount[0];
// 获取去完成按钮
var button = par.children()[3];
while (currentFininshNum < execCount && par.children()[2] != null) {
sleep(sleepTime);
var buttonText = par.children()[2].text();
button.click();
// 点击任务 重置计时
JUDGE_TIME = 0;

log("正在进行任务: " + buttonText + ",目前进度(" + currentFininshNum + "/" + execCount + ")");
sleep(sleepTime * speed * 4);
while (true) {

if (textContains("确认授权").exists() || buttonText.indexOf("成功入会") >= 0) {
while (!textContains("做任务 赚金币").exists() && back()) {
sleep(sleepTime * speed);
currentFininshNum = execCount;
}
break;
}

var isViewAndFollow = false;
for (i = 0; i < BACK_LIST.length; i++) {
if (buttonText.indexOf(BACK_LIST[i]) >= 0) {
isViewAndFollow = true;
break;
}
}

if (isViewAndFollow) {
while (!textContains("做任务 赚金币").exists() && back()) {
sleep(sleepTime * speed);
}
currentFininshNum++;
sleep(sleepTime * speed);
break;
}

if (textContains("当前页点击浏览").exists() && textStartsWith("¥").find().length > 0) {
var product = textStartsWith("¥").find()[0].parent().parent().parent().childCount();
if (product >= 4) {
log("进入浏览任务")
for (var i = 0; i <= 3; i++) {
if (textStartsWith("¥").find()[i].parent().parent().children()[4].click()) {
sleep(sleepTime * speed);
log("加购并返回");
while (!textContains("当前页点击浏览").exists() && back()) {
sleep(sleepTime * speed * 2);
}
}
}
if (back()) {
sleep(sleepTime * speed);
currentFininshNum++;
break;
}
}
}

if (isFinshed(FINISHED_TASK)) {
while (!textContains("做任务 赚金币").exists() && back()) {
sleep(sleepTime * speed);
currentFininshNum = execCount;
}
break;
}

if (buttonText.indexOf("去参与小程序") >= 0) {
while (!textContains("做任务 赚金币").exists() && back()) {
launchPackage("com.jingdong.app.mall")
sleep(sleepTime * speed);
currentFininshNum++;
break;
}
}

if (textContains("当前页浏览加购").exists() && textStartsWith("¥").find().length > 0) {
addMarketCar();
while (!textContains("做任务 赚金币").exists() && back()) {
sleep(sleepTime * speed);
currentFininshNum = execCount;
break;
}
}

if (textContains("品牌种草城").exists()) {
for (var j = 0; j < 4; j++) {
if (textContains("喜欢").exists() && textContains("喜欢").click()) {
while(!textContains("喜欢").click() && back()) {
sleep(sleepTime * speed);
}

}
}
currentFininshNum++;
break;
}

if (JUDGE_TIME > 30) {
currentFininshNum = execCount;
JUDGE_TIME = 0;
break;
}
}

}
}
}

// 判断是不是完成任务
function isFinshed(uiName) {
for (i = 0; i < uiName.length; i++) {
if (textMatches(uiName[i]).exists() || descMatches(uiName[i]).exists()) {
return true;
}
}
return false;

}

/**
* 加入购物车
*/
function addMarketCar() {
var product = textStartsWith("¥").find()[0].parent().parent().parent().childCount();
if (product >= 4) {
log("进入加入购物车任务")
for (var i = 0; i <= 3; i++) {
if (textStartsWith("¥").find()[i].parent().parent().children()[4].click()) {
sleep(sleepTime * speed);
log("加购并返回");
while (!textContains("当前页浏览加购").exists() && back()) {
sleep(sleepTime * speed * 2);
}
}
}
}
}

// 返回
function viewAndFollow() {
sleep(1000);
back();
sleep(1000);
}

// 递归遍历控件是否包含忽略的关键词
function recursionControl(parentControl) {
var retFlag = false;
// 遍历子控件是否包含忽略关键词
parentControl.children().forEach(element => {
for (ignoreIndex = 0; ignoreIndex < IGNORE_LIST.length; ignoreIndex++) {
if (element.text().indexOf(IGNORE_LIST[ignoreIndex]) >= 0) {
retFlag = true;
}
}
});
return retFlag;
}

function addJudgeTime() {

}

// 自动判断程序是否卡顿,恢复方法
// 判断依据:1.不在活动界面 2.停留某个界面长达30s
function recoverApp() {
if (JUDGE_TIME > 30) {
if (back()) {
// 计时器重置
JUDGE_TIME = 0;
log("停留某个页面超过30s,自动返回,关闭定时器。");
}
}
}
/**
* JD618
*
* Author: czj
* Date: 2022/05/24
* Versions: 1.0.0
* Github: https://github.com/czj2369/jd_tb_auto
*/
10 changes: 10 additions & 0 deletions auto_20220618/jd/project.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"name": "jd618",
"main": "main.js",
"ignore": [
"build"
],
"packageName": "com.anjian.jd618",
"versionName": "1.0.0",
"versionCode": 1
}

0 comments on commit dca93a4

Please sign in to comment.