feat:热爱环游记

This commit is contained in:
loong 2021-10-25 21:33:23 +08:00
parent bb21ef049b
commit 21c9c95933
2 changed files with 104 additions and 85 deletions

View File

@ -5,4 +5,6 @@ autojs脚本程序,用于完成安卓设备上的重复性操作.
2.2021年京东燃动夏季活动脚本 2.2021年京东燃动夏季活动脚本
3.2021热爱环游记 3.2021热爱环游记
- 注意事项 - 注意事项
- 需要打开任务界面,再点击开启任务 - 请打开任务界面,再开启脚本
- 有可能出现空指针,undefined等异常,重新启动脚本即可.
- autojs版本为4.1.1

View File

@ -1,9 +1,10 @@
// [注意事项] 打开任务界面 // [注意事项] 打开任务界面
start() start()
function start() { function start() {
auto.waitFor() console.show();
app.launch("com.jingdong.app.mall") auto.waitFor();
// toast("请打开京东app首页") app.launch("com.jingdong.app.mall");
// log("请打开京东app首页")
// className("android.widget.TextView").descContains("搜索框").findOne().click() // className("android.widget.TextView").descContains("搜索框").findOne().click()
// sleep(1000) // sleep(1000)
// descContains("搜索框").findOne().setText("热爱环游记") // descContains("搜索框").findOne().setText("热爱环游记")
@ -14,70 +15,58 @@ function start() {
// sleep(3000) // sleep(3000)
while (!textContains("累计任务奖励").exists()) { while (!textContains("累计任务奖励").exists()) {
// className("android.view.View").textContains("打卡领红包").findOne().click() // className("android.view.View").textContains("打卡领红包").findOne().click()
toast("请打开任务界面!") log("请打开任务界面!");
sleep(6000) sleep(6000);
}
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()
}
toast(str)
let finishedTask = str.charAt(str.length - 4)
let allTask = str.charAt(str.length - 2)
sleep(3000)
if (finishedTask == allTask) {
return true
}
return false
}
function isFinishByText(text) {
toast(text)
let finishedTask = text.charAt(text.length - 4)
let allTask = text.charAt(text.length - 2)
sleep(3000)
if (finishedTask == allTask) {
return true
}
return false
} }
while (1) { while (1) {
// 任务类型一,浏览8s任务
//任务类型二,累计浏览加购5个商品 if (textContains("8s").exists() && !isFinish("8s")) {
if (textContains("累计浏览").exists() && !isFinish("累计浏览")) { for (let i = 0; i < 2; i++) {
toast("累计浏览5个商品") let task_8s = className("android.view.View").textContains("8s").find();
className("android.view.View").textContains("累计浏览").findOne().parent().child(3).click() if (task_8s[i] && task_8s[i].parent()) {
sleep(5000) for (let j = 0; !isFinishByText(task_8s[i].parent().child(1).text()) && j < 7; j++) {
let win = textStartsWith("¥").findOnce().parent().parent() log("浏览8s任务");
for (let i = 0; i < 5; i++) { task_8s[i].parent().child(3).click();
toast("浏览第" + (i + 1) + "个商品") sleep(12000);
win.child(i).child(5).click(); back();
sleep(5000) sleep(3000);
back() }
sleep(3000) }
} }
back()//返回任务界面 }
sleep(3000) //任务类型二,累计浏览加购5个商品
else if (textContains("累计浏览").exists() && !isFinish("累计浏览")) {
log("累计浏览5个商品");
className("android.view.View").textContains("累计浏览").findOne().parent().child(3).click();
sleep(5000);
let win = textStartsWith("¥").findOnce().parent().parent();
for (let i = 0; i < 5; i++) {
log("浏览第" + (i + 1) + "个商品");
win.child(i).child(5).click();
sleep(5000);
back();
sleep(3000);
}
back();//返回任务界面
sleep(3000);
} }
//任务类型三,普通点击浏览任务 //任务类型三,普通点击浏览任务
else if (textStartsWith("浏览可得").exists() && !isFinish("浏览可得")) { else if (textStartsWith("浏览可得").exists() && !isFinish("浏览可得")) {
toast("普通点击浏览任务") log("普通点击浏览任务");
className("android.view.View").textStartsWith("浏览可得").findOne().parent().child(3).click() className("android.view.View").textStartsWith("浏览可得").findOne().parent().child(3).click();
sleep(5000) sleep(5000);
back() back();
sleep(3000) sleep(3000);
}
else if (textStartsWith("浏览并关注").exists() && !isFinish("浏览并关注")) {
toast("普通点击浏览任务")
className("android.view.View").textStartsWith("浏览并关注").findOne().parent().child(3).click()
sleep(5000)
back()
sleep(3000)
} }
// else if (textStartsWith("浏览并关注").exists() && !isFinish("浏览并关注")) {
// log("普通点击浏览任务")
// className("android.view.View").textStartsWith("浏览并关注").findOne().parent().child(3).click()
// sleep(5000)
// back()
// sleep(3000)
// }
// else if (textStartsWith("参与").exists() && !isFinish("参与")) { // else if (textStartsWith("参与").exists() && !isFinish("参与")) {
// toast("普通点击浏览任务") // log("普通点击浏览任务")
// className("android.view.View").textStartsWith("参与").findOne().parent().child(3).click() // className("android.view.View").textStartsWith("参与").findOne().parent().child(3).click()
// sleep(5000) // sleep(5000)
// back() // back()
@ -85,35 +74,63 @@ function start() {
// } // }
//任务类型四,入会 //任务类型四,入会
else if (textContains("入会").exists() && !isFinish("入会")) { else if (textContains("入会").exists() && !isFinish("入会")) {
toast("浏览入会界面,获取金币") log("浏览入会界面,获取金币");
className("android.view.View").textContains("入会").findOne().parent().child(3).click() className("android.view.View").textContains("入会").findOne().parent().child(3).click();
sleep(3000) sleep(3000);
if (textContains("加入店铺会员").exists()) { if (textContains("加入店铺会员").exists()) {
toast("脚本结束(涉及个人隐私,请手动加入店铺会员或者忽略加入会员任务)") log("脚本结束(涉及个人隐私,请手动加入店铺会员或者忽略加入会员任务)");
break break;
} }
back() back();
sleep(3000) sleep(3000);
}
// 任务类型一,浏览8s任务
else if (textContains("8s").exists()&& !isFinish("8s")) {
let task_8s = className("android.view.View").textContains("8s").find();
for (let i = 1; i < task_8s.length; i++) {
toast(task_8s.length)
for (let j = 0; !isFinishByText(task_8s[i].parent().child(1).text()) && j < 7; j++) {
toast("浏览8s任务")
task_8s[i].parent().child(3).click()
sleep(12000)
back()
sleep(3000)
}
}
} }
//结束 //结束
else { else {
toast("所有任务已完成,若有剩余可再启动一次脚本或手动完成") log("四种任务已完成,若有剩余可再启动一次脚本或手动完成");
break break;
}
//避免弹窗,返回任务界面
for (let i = 1; !textContains("累计任务奖励").exists() && i <= 5; i++) {
if (i == 5) {
toast("无法返回任务界面,脚本结束");
exit();
}
toast("无法返回任务界面,第" + i + "次尝试返回(最多4次)");
sleep(1000);
back();
sleep(3000);
} }
} }
} }
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();
}
log(str);
let finishedTask = str.charAt(str.length - 4);
let allTask = str.charAt(str.length - 2);
sleep(3000)
if (finishedTask == allTask) {
return true;
}
return false;
}
function isFinishByText(text) {
log(text);
let finishedTask = text.charAt(text.length - 4);
let allTask = text.charAt(text.length - 2);
sleep(3000);
if (finishedTask == allTask) {
return true;
}
return false;
}
// function taskNum(text) {
// log(text)
// let finishedTask = text.charAt(text.length - 4)
// let allTask = text.charAt(text.length - 2)
// return allTask-finishedTask;
// }