京东【炸年兽】活动,AUTOJS脚本,使用AUTOJS4.0.1版本运行
脚本和apk会给作者助力,介意绕路。
下载链接:
V2: 修改小程序、首页浮层、组队任务返回逻辑,提高任务成功率
- Start();
- console.info("开始任务");
-
- //浏览任务可能有直播或视频,提前静音
- console.info("设备设置静音");
- var v = device.getMusicVolume()
- device.setMusicVolume(0)
- CustomSleep(1, 3, "请稍候…");
-
- /*
- 参数说明:
- 参数1:启动的APP名称,如需手动,则填手动
- 参数2:对应参数1的APP名称,是否是分身应用,0:正常应用,1:分身有术Pro内部分身,暂不支持其他分身应用(如是多开分身,可在参数1中直接填入分身应用APP名称即可)
- 参数3:助力邀请,0:跳过助力邀请 1:助力邀请
- 参数4:是否入会,0:不执行入会任务 1:执行入会任务,遇到新入会店铺则退出任务 2:执行入会任务,遇到需入会店铺则返回,等待刷新别的店铺 3:执行入会任务,遇到需入会店铺,等待手动入会
- */
- Run("京东", 0, 1, 2); home();
-
- //分身有术缓存清理
- //CleanCache("分身有术Pro",1);
- console.info("结束任务");
-
- console.info("设备恢复原来音量");
- device.setMusicVolume(v)
- console.log("音量恢复为" + v);
- CustomSleep(1, 3, "请稍候…");
-
- console.log("已退出脚本");
- engines.myEngine().forceStop()
-
- function Start() {
- auto.waitFor();//获取无障碍服务权限
- console.show();//开启悬浮窗
- console.info("京东<集爆竹炸年兽>任务");
- //截图权限申请
- threads.start(function () {
- var beginBtn;
- if (beginBtn = classNameContains("Button").textContains("立即开始").findOne(2000)) {
- CustomSleep(0.5, 0.8, "请稍候…");
- beginBtn.click();
- }
- });
- CustomSleep(0.5, 0.8, "请稍候…");
- if (!requestScreenCapture(false)) {
- console.log("请求截图失败");
- exit();
- }
- }
-
- function Run(LauchAPPName, IsSeparation, IsInvite, IsJoinMember) {
- var PageStatus = 0//页面状态,用于记录当前页面状态,避免点击错位置
- if (IsSeparation == null) {
- IsSeparation = 0 //0:正常应用 1:分身有术内部应用
- } if (IsJoinMember == null) {
- IsJoinMember = 0 //0:不执行入会任务 1:执行入会任务,遇到新入会店铺则退出脚本 2:执行入会任务,遇到需入会店铺则返回,等待刷新别的店铺 3:执行入会任务,遇到需入会店铺,等待手动入会
- }
- var IsSeparation_info = ""
- var IsInvite_info = ""
- var IsJoinMember_info = ""
- if (IsSeparation == 0) {
- IsSeparation_info = "正常应用"
- } else if (IsSeparation == 1) {
- IsSeparation_info = "分身有术Pro"
- } else {
- IsSeparation_info = "无效参数,改为默认值“非分身应用”"
- IsSeparation = 0
- }
- if (IsInvite == 0) {
- IsInvite_info = "跳过助力邀请"
- } else if (IsInvite == 1) {
- IsInvite_info = "助力邀请"
- } else {
- IsInvite_info = "无效参数,改为默认值“跳过助力邀请”"
- IsInvite = 0
- }
- if (IsJoinMember == 0) {
- IsJoinMember_info = "不执行入会"
- } else if (IsJoinMember == 1) {
- IsJoinMember_info = "有新入会店铺则退出脚本"
- } else if (IsJoinMember == 2) {
- IsJoinMember_info = "有新入会店铺则返回,等待刷新别的店铺"
- } else if (IsJoinMember == 3) {
- IsJoinMember_info = "有新入会店铺,等待手动入会"
- } else {
- IsJoinMember_info = "无效参数,改为默认值“不执行入会”"
- IsJoinMember = 0
- }
- console.info(
- "当前设置" + "\n" +
- "启动APP:" + LauchAPPName + "\n" +
- "是否分身:" + IsSeparation_info + "\n" +
- "是否助力:" + IsInvite_info + "\n" +
- "是否入会:" + IsJoinMember_info
- )
- CustomSleep(2, 4, "请稍候…");
- if (IsInvite == 1) {
- //将京口令分段填入,只要里面的特征码即可,分不清什么是特征码的也可以整段放进来,注意用双引号和逗号隔开
- Code = new Array(
- "29:/¥6BHuA1tMS0eHO¥しǎι【京東】AΡΡの,﹎壹啓ɡμā汾10億!!!!!!ぷ",
- "29:/#1Dlka3sg42rdq@扌丁kai鶁崠,﹎壹啓ɡμā汾10億!!!!!!ぷ",
- "28:/#1429n0Y8DLCHW@大家买买买都→猄栋,嚯!﹎壹啓ɡμā汾10億!!!!!!ぷ",
- "26:/¥2ANSH2JNyYKne%咑開京岽app,﹎壹啓ɡμā汾10億!!!!!!ぷ"
- );//邀请码第一个是助力作者,第二个纯属举例,使用时建议删除
- RunTime = Code.length;
- console.info("共识别到" + RunTime + "个助力码");
- for (var i = 0; i < RunTime; i++) {
- console.log("第" + (i + 1) + "个助力码");
- setClip(Code[i]);
- console.log("助力码写入剪切板");
- if (LauchAPPName == "手动") {
- console.log("请手动打开APP,以便进行下一步");
- while (text("领京豆").findOnce() == null) {
- if (textMatches(/.*消耗.*爆竹/).exists() | text("立即查看").exists() |
- app.getAppName(currentPackage()) == "京东" | currentActivity() == "com.jingdong.app.mall.MainFrameActivity") {
- CustomSleep(1, 3, "请稍候…");
- break;
- }
- console.log("当前应用名: " + app.getAppName(currentPackage()) + "\n"
- + "当前活动: " + currentActivity() + "\n"
- + "未识别到京东相关界面,继续等待……");
- CustomSleep(3, 5, "请稍候…");
- }
- console.log("已检测到京东APP,等待下一步");
- }
- else {
- if (IsSeparation == 1) {
- console.info("打开分身有术Pro,准备调用分身");
- app.launchApp("分身有术Pro");
- for (var t = 0; !id("tv_app_name").className("android.widget.TextView").text(LauchAPPName).exists(); t++) {
- console.log("等待识别分身……");
- console.log("当前应用名: " + app.getAppName(currentPackage()) + "\n"
- + "未识别到<" + LauchAPPName + ">,继续等待……");
- CustomSleep(3, 5, "请稍候…");
- if (id("im_close_clear").exists()) {
- console.log("发现加速弹窗");
- id("im_close_clear").findOne().click();
- console.log("关闭加速弹窗");
- }
- if (t > 10) {
- console.log("识别超时,退出当前任务");
- return;
- }
- }
- if (id("tv_app_name").className("android.widget.TextView").text(LauchAPPName).exists()) {
- console.log("找到分身<" + LauchAPPName + ">");
- text(LauchAPPName).findOne().parent().click();
- console.log("分身已启动,等待活动检测……");
- }
- }
- else {
- console.info("打开" + LauchAPPName + "");
- app.launchApp(LauchAPPName);
- console.log("等待任务检测……");
- }
- }
- if (text("立即查看").findOne(2000) == null) {
- console.log("等待APP识别助力码");
- var j = 0;
- while (j < 15 | text("立即查看").findOnce() == null) {
- if (text("立即查看").exists()) {
- CustomSleep(1, 3, "请稍候…");
- break;
- }
- console.log(j + 1);
- j++;
- CustomSleep(1, 1, "请稍候…");
- if (j == 10) {
- console.log("未检测到新助力码,尝试再次复制");
- OutAPP(1000);
- setClip(Code[i]);
- console.log("助力码重新写入剪切板");
- CustomSleep(1, 3, "请稍候…");
- if (LauchAPPName == "手动") {
- console.log("请手动打开APP,以便进行下一步");
- while (text("领京豆").findOnce() == null) {
- if (textMatches(/.*消耗.*爆竹/).exists() |
- app.getAppName(currentPackage()) == "京东" | currentActivity() == "com.jingdong.app.mall.MainFrameActivity") {
- CustomSleep(1, 3, "请稍候…");
- break;
- }
- console.log("当前应用名: " + app.getAppName(currentPackage()) + "\n"
- + "当前活动: " + currentActivity() + "\n"
- + "未识别到京东相关界面,继续等待……");
- CustomSleep(3, 5, "请稍候…");
- }
- console.log("检测到京东APP,等待再次检测");
- }
- else {
- if (IsSeparation == 1) {
- console.info("打开分身有术Pro,准备调用分身");
- app.launchApp("分身有术Pro");
- for (var t = 0; !id("tv_app_name").className("android.widget.TextView").text(LauchAPPName).exists(); t++) {
- console.log("等待识别分身……");
- console.log("当前应用名: " + app.getAppName(currentPackage()) + "\n"
- + "未识别到<" + LauchAPPName + ">,继续等待……");
- CustomSleep(3, 5, "请稍候…");
- if (id("im_close_clear").exists()) {
- console.log("发现加速弹窗");
- id("im_close_clear").findOne().click();
- console.log("关闭加速弹窗");
- }
- if (t > 10) {
- console.log("识别超时,退出当前任务");
- return;
- }
- }
- if (id("tv_app_name").className("android.widget.TextView").text(LauchAPPName).exists()) {
- console.log("找到分身<" + LauchAPPName + ">");
- text(LauchAPPName).findOne().parent().click();
- console.log("分身已启动,等待活动检测……");
- }
- }
- else {
- console.info("打开" + LauchAPPName + "");
- app.launchApp(LauchAPPName);
- }
- console.log("重启APP成功,等待再次检测");
- CustomSleep(1, 3, "请稍候…");
- }
- }
- if (j > 15) {
- console.error("超时未检测到新助力码,跳过助力任务");
- CustomSleep(1, 3, "请稍候…");
- if (i < RunTime - 1) {
- console.log("退出当前APP,准备第" + (i + 2) + "个助力码");
- OutAPP(2000);
- }
- break;
- }
- }
- if (j > 15) {
- //超时则跳出当前助力任务
- console.info("跳过当前助力");
- continue;
- }
- }
- setScreenMetrics(1440, 3120);//基于分辨率1440*3120的点击
- if (text("立即查看").exists()) {
- console.log("立即查看");
- text("立即查看").findOnce().click();
- while (!textContains("的助力邀请").exists()) {
- CustomSleep(2, 4, "请稍候…");
- console.log("等待加载……");
- }
- CustomSleep(1, 3, "请稍候…");
- click(720, 1845);
- console.log("为TA助力");
- CustomSleep(2, 4, "请稍候…");
- console.log("助力完成");
- }
- setScreenMetrics(device.width, device.height);//恢复本机分辨率
- //最后一次助力不返回首页,以便进行下一个任务
- if (i < RunTime - 1) {
- home();
- console.log("准备第" + (i + 2) + "个助力码");
- }
- else {
- console.log("当前账户已助力完成");
- //back();
- //CustomSleep(0.5,0.8, "请稍候…");
- //back();
- }
- }
- }
- if (IsInvite == 0) {
- console.info("跳过活动助力");
- if (LauchAPPName == "手动") {
- console.log("请手动打开APP,以便进行下一步");
- while (text("领京豆").findOnce() == null) {
- if (textMatches(/.*消耗.*爆竹/).exists() |
- app.getAppName(currentPackage()) == "京东" | currentActivity() == "com.jingdong.app.mall.MainFrameActivity") {
- CustomSleep(1, 3, "请稍候…");
- break;
- }
- console.log("当前应用名: " + app.getAppName(currentPackage()) + "\n"
- + "当前活动: " + currentActivity() + "\n"
- + "未识别到京东相关界面,继续等待……");
- CustomSleep(3, 5, "请稍候…");
- }
- console.log("已检测到京东APP,等待下一步");
- }
- else {
- if (IsSeparation == 1) {
- console.info("打开分身有术Pro,准备调用分身");
- app.launchApp("分身有术Pro");
- for (var i = 0; !text(LauchAPPName).exists(); i++) {
- console.log("等待识别分身……");
- CustomSleep(3, 5, "请稍候…");
- if (i > 10) {
- console.log("识别超时,退出当前任务");
- return;
- }
- }
- if (text(LauchAPPName).exists()) {
- text(LauchAPPName).findOne().parent().click();
- console.log("分身已启动,等待活动检测……");
- }
- }
- else {
- console.info("打开" + LauchAPPName + "");
- app.launchApp(LauchAPPName);
- console.log("等待活动检测……");
- }
- }
- if (!text("累计任务奖励").exists()) {
- if (!textMatches(/.*消耗.*爆竹/).exists()) {
- //进入活动
- console.log("寻找活动入口……");
- if (LauchAPPName == "手动") {
- for (; ;) {
- if (textMatches(/.*消耗.*爆竹/).exists()) {
- CustomSleep(1, 3, "请稍候…");
- break;
- }
- console.log("手动进入活动界面后,脚本将继续");
- CustomSleep(5, 8, "请稍候…");
- }
- }
- else {
- if (!text("累计任务奖励").exists()) {
- if (!textMatches(/.*消耗.*爆竹/).exists()) {
- for (var i = 0; !textMatches(/.*消耗.*爆竹/).exists(); i++) {
- console.log("未识别到活动页面,尝试通过首页浮层进入");
- if (text("首页").exists()) {
- let into = descContains("浮层活动").findOne(20000);
- CustomSleep(2, 4, "请稍候…");
- if (into == null) {
- console.log("无法找到京东活动入口,退出当前任务");
- return;
- }
- click(into.bounds().centerX(), into.bounds().centerY());
- click(into.bounds().centerX(), into.bounds().centerY());
- CustomSleep(3, 5, "请稍候…");
- }
- if (i > 10) {
- console.log("识别超时,退出当前任务");
- return;
- }
- CustomSleep(3, 5, "请稍候…");
- }
- if (textMatches(/.*消耗.*爆竹/).exists()) {
- console.log("已检测到活动页面");
- PageStatus = 1//进入活动页面,未打开任务列表
- }
- }
- else {
- console.log("检测到活动页面");
- PageStatus = 1//进入活动页面,未打开任务列表
- }
- }
- else {
- console.log("检测到任务列表");
- PageStatus = 2//已打开任务列表
- }
- }
- console.info("进入活动页面");
- }
- }
- }
- //确保退出活动界面及当前账号
- function OutAPP(SleepTime) {
- if (SleepTime == null) {
- SleepTime = 100
- }
- back();
- CustomSleep(0.5, 0.8, "请稍候…");
- back();
- sleep(SleepTime);
- }
-
- CustomSleep(2, 4, "请稍候…");
- if (!text("累计任务奖励").exists()) {
- if (!textMatches(/.*消耗.*爆竹/).exists()) {
- for (var i = 0; !textMatches(/.*消耗.*爆竹/).exists(); i++) {
- console.log("未识别到活动页面,尝试通过首页浮层进入");
- if (text("首页").exists()) {
- let into = descContains("浮层活动").findOne(20000);
- CustomSleep(2, 4, "请稍候…");
- if (into == null) {
- console.log("无法找到京东活动入口,退出当前任务");
- return;
- }
- click(into.bounds().centerX(), into.bounds().centerY());
- click(into.bounds().centerX(), into.bounds().centerY());
- CustomSleep(3, 5, "请稍候…");
- }
- if (i > 10) {
- console.log("识别超时,退出当前任务");
- return;
- }
- CustomSleep(3, 5, "请稍候…");
- }
- if (textMatches(/.*消耗.*爆竹/).exists()) {
- console.log("已检测到活动页面");
- PageStatus = 1//进入活动页面,未打开任务列表
- }
- }
- else {
- console.log("检测到活动页面");
- PageStatus = 1//进入活动页面,未打开任务列表
- }
- }
- else {
- console.log("检测到任务列表");
- PageStatus = 2//已打开任务列表
- }
- if (PageStatus != 2) {
- CustomSleep(2, 4, "请稍候…");
- console.log("成功进入活动界面");
- console.log("等待加载弹窗……");
- while (textContains("继续环游").exists() | textContains("立即抽奖").exists() | textContains("开启今日环游").exists() | textContains("点我签到").exists() | textContains("开心收下").exists()) {
- CustomSleep(1, 3, "请稍候…");
- if (textContains("继续环游").exists()) {
- console.log("继续环游");
- textContains("继续环游").findOne().click();
- CustomSleep(0.5, 0.8, "请稍候…");
- } else if (textContains("立即抽奖").exists()) {
- console.log("关闭立即抽奖");
- textContains("立即抽奖").findOne().parent().child(1).click();
- CustomSleep(0.5, 0.8, "请稍候…");
- } else if (textContains("开启今日环游").exists()) {
- console.log("开启今日环游");
- textContains("开启今日环游").findOne().click();
- CustomSleep(1, 3, "请稍候…");
- } else if (textContains("点我签到").exists()) {
- console.log("点我签到");
- textContains("点我签到").findOne().parent().click();
- CustomSleep(1, 3, "请稍候…");
- textContains("开心收下").waitFor();
- textContains("开心收下").findOne().parent().click();
- CustomSleep(1, 3, "请稍候…");
- } else if (text("开心收下开心收下").exists()) {
- console.log("开心收下");
- text("开心收下开心收下").findOne().click();
- CustomSleep(1, 3, "请稍候…");
- } else if (textContains("开心收下").exists()) {
- console.log("开心收下");
- textContains("开心收下").findOne().parent().click();
- CustomSleep(1, 3, "请稍候…");
- } else {
- console.log("暂无可处理弹窗");
- break;
- }
- CustomSleep(1, 3, "请稍候…");
- }
- console.log("如还有弹窗,请手动处理");
- CustomSleep(3, 5, "请稍候…");
-
- if (text("立即前往").exists()) {
- console.log("前往签到");
- textContains("立即前往").findOne().parent().click();
- CustomSleep(0.5, 0.8, "请稍候…");
- console.log("点我签到");
- textContains("点我签到").findOne().parent().click();
- CustomSleep(1, 3, "请稍候…");
- textContains("开心收下").waitFor();
- textContains("开心收下").findOne().parent().click();
- CustomSleep(1, 3, "请稍候…");
- }
- if (text("爆竹满了~~").exists()) {
- console.log("爆竹已存满");
- text("爆竹满了~~").findOne().parent().parent().child(2).click();
- console.log("爆竹领取成功");
- CustomSleep(2, 4, "请稍候…");
- }
- else if (textContains("后满").exists()) {
- textContains("后满").findOne().parent().parent().child(2).click();
- console.log("爆竹领取成功");
- CustomSleep(2, 4, "请稍候…");
- }
-
- if (text("放入我的>我的优惠券").exists()) {
- text("放入我的>我的优惠券").findOne().parent().parent().child(0).click();
- CustomSleep(1, 3, "请稍候…");
- }
- console.info("准备打开任务列表");
- let taskListButton = textMatches(/.*消耗.*爆竹/).findOne(10000)
- if (!taskListButton) {
- console.log("未能识别关键节点,退出当前任务");
- return;
- }
- setScreenMetrics(1440, 3120);//基于分辨率1440*3120的点击
- click(1275, 2100);
- click(1275, 2100);
- CustomSleep(2, 4, "请稍候…");
- setScreenMetrics(device.width, device.height);//恢复本机分辨率
-
- for (var i = 0; !text("累计任务奖励").exists(); i++) {
- console.log("未识别到任务列表,请手动打开")
- CustomSleep(3, 5, "请稍候…");
- if (i >= 10) {
- console.log("未按时打开任务列表,退出当前任务");
- return;
- }
- }
- }
- console.log("寻找未完成任务……");
- while (true) {
- if (textContains("去组队可得").exists()) {
- let task1 = textMatches(/.*去组队可得.*/).find()
- if (task1.empty()) {
- CustomSleep(0.5, 0.8, "请稍候…");
- }
- else {
- let task1Button, task1Text
- let task1img = captureScreen();
- for (let i = 0; i < task1.length; i++) {
- let task1item = task1[i]
- task1Text = task1item.text();
- task1Button = task1item.parent().child(3);
- let task1b = task1item.bounds()
- let task1color = images.pixel(task1img, task1b.left + task1b.width() / 8, task1b.top + task1b.height() / 2)
- console.info("识别任务<" + task1item.parent().child(1).text() + ">");
- console.error("识别任务状态(" + colors.red(task1color) + "," + colors.green(task1color) + "," + colors.blue(task1color) + ")");
- if (colors.isSimilar(task1color, "#fff2da", 60, "diff") | colors.isSimilar(task1color, "#caa282", 60, "diff") | task1color == -3366) {
- console.log("进行", task1Text);
- task1Button.click();
- CustomSleep(3, 5, "请稍候…");
- for (var ii = 0; !text("累计任务奖励").exists(); ii++) {
- CustomSleep(1, 3, "请稍候…");
- console.log("返回");
- back();
- CustomSleep(2, 4, "请稍候…");
- if (textMatches(/.*消耗.*爆竹/).exists()) {
- console.log("已返回活动界面");
- break;
- }
- }
- console.log("领取成功");
- if (!text("累计任务奖励").exists() && textMatches(/.*消耗.*爆竹/).exists()) {
- console.log("未识别到任务列表,尝试自动打开");
- setScreenMetrics(1440, 3120);//基于分辨率1440*3120的点击
- click(1275, 2100);
- click(1275, 2100);
- CustomSleep(2, 4, "请稍候…");
- setScreenMetrics(device.width, device.height);//恢复本机分辨率
- }
- for (var ii = 0; !text("累计任务奖励").exists(); ii++) {
- console.log("未识别到任务列表,请手动打开");
- CustomSleep(3, 5, "请稍候…");
- if (ii >= 10) {
- console.log("未按时打开任务列表,退出当前任务");
- return;
- }
- }
- }
- }
- }
- }
- let taskButtons = textMatches(/.*浏览.*s.*|.*浏览.*秒.*|.*累计浏览.*|.*浏览即可得.*|.*浏览并关注可得.*|.*浏览可得.*|.*成功入会.*|.*小程序.*|.*每日6-9点打卡可得.*|.*点击首页浮层可得.*|.*品牌墙店铺.*|.*玩AR游戏可得.*爆竹.*/).find()
- if (taskButtons.empty()) {
- console.log("未找到合适的任务,退出");
- CustomSleep(3, 5, "请稍候…");
- break;
- }
- let taskButton, taskText
- let img = captureScreen()
- for (let i = 0; i < taskButtons.length; i++) {
- let item = taskButtons[i]
- taskText = item.text();
- item = item.parent().child(3);
- let b = item.bounds()
- let color = images.pixel(img, b.left + b.width() / 8, b.top + b.height() / 2)
- console.info("识别任务<" + item.parent().child(1).text() + ">");
- console.error("识别任务状态(" + colors.red(color) + "," + colors.green(color) + "," + colors.blue(color) + ")");
- if (colors.isSimilar(color, "#b5b5b5", 40, "diff")) {
- console.log("任务已完成,即将识别下一任务");
- }
- else {
- //跳过任务
- //if (taskText.match(/成功入会/)) continue
- //if (taskText.match(/品牌墙店铺/)) continue
- //if (taskText.match(/小程序/)) continue
- //if (taskText.match(/加购/)) continue
- if (taskText.match(/成功入会/) && IsJoinMember == 0) {
- console.log("识别到入会任务,当前设置为<不执行入会>,即将进入下一任务");
- CustomSleep(1, 3, "请稍候…");
- continue;
- }
- taskButton = item;
- break;
- }
- }
- img.recycle();//调用recycle回收
- if (!taskButton) {
- console.log("未找到可自动完成的任务,退出当前任务");
- console.log("互动任务需要手动完成");
- break;
- }
-
- function timeTask() {
- taskButton.click();
- CustomSleep(5, 8, "请稍候…");
- console.log("等待浏览任务完成……");
- let c = 0
- while (c < 15) { // 15秒,防止死循环
- let finish_reg = /获得.*?爆竹|浏览完成|已达上限/
- if ((textMatches(finish_reg).exists() || descMatches(finish_reg).exists())) { // 等待已完成出现,有可能失败
- CustomSleep(1, 3, "请稍候…");
- break;
- }
- CustomSleep(1, 1, "请稍候…");
- c++;
- if (c == 3 | c == 6 | c == 12) {
- console.log("已等待" + c + "秒");
- //财富岛任务无法直接返回,只能跳转返回
- if (app.getAppName(currentPackage()) == "京喜") {
- if (LauchAPPName == "手动") {
- console.log("请手动返回任务界面,以便进行下一步");
- while (text("累计任务奖励").findOnce() == null) {
- if (textMatches(/.*消耗.*爆竹/).exists() |
- app.getAppName(currentPackage()) == "京东" | currentActivity() == "com.jingdong.app.mall.MainFrameActivity") {
- CustomSleep(1, 3, "请稍候…");
- break;
- }
- console.log("当前应用名: " + app.getAppName(currentPackage()) + "\n"
- + "当前活动: " + currentActivity() + "\n"
- + "未识别到京东相关界面,继续等待……");
- CustomSleep(3, 5, "请稍候…");
- }
- console.log("已检测到京东APP,等待下一步");
- }
- else {
- if (IsSeparation == 1) {
- console.info("打开分身有术Pro,准备调用分身");
- app.launchApp("分身有术Pro");
- for (var i = 0; !text(LauchAPPName).exists(); i++) {
- console.log("等待识别分身……");
- CustomSleep(3, 5, "请稍候…");
- if (i > 10) {
- console.log("识别超时,退出当前任务");
- return;
- }
- }
- if (text(LauchAPPName).exists()) {
- text(LauchAPPName).findOne().parent().click();
- console.log("分身已启动,等待活动检测……");
- }
- }
- else {
- console.info("打开" + LauchAPPName + "");
- app.launchApp(LauchAPPName);
- console.log("等待活动检测……");
- }
- }
- }
- }
- }
- if (c >= 15) {
- console.log("超时,即将返回");
- }
- else {
- console.log("浏览时长任务完成");
- }
- }
-
- function itemTask(cart) {
- taskButton.click();
- CustomSleep(1, 3, "请稍候…");
- console.log("等待进入商品列表……");
- textEndsWith("4个商品领爆竹").waitFor();//当前页浏览加购4个商品领爆竹|当前页点击浏览4个商品领爆竹
- if (!textContains('.jpg!q70').exists()) {
- console.log("模式2");
- for (var i = 0; i < 4; i++) {
- let Model2items = textEndsWith("4个商品领爆竹").findOne();
- if (cart) {
- console.log("第" + (i + 1) + "次加购");
- console.log('待加购');
- CustomSleep(0.5, 0.8, "请稍候…");
- if (!Model2items.parent().parent()) {
- console.error("界面异常,跳过此商品");
- continue;
- }
- Model2items.parent().parent().child(2).child(i).child(4).click();
- } else {
- console.log("第" + (i + 1) + "次浏览");
- Model2items.parent().parent().child(2).child(i).child(4).click();
- }
- CustomSleep(1, 3, "请稍候…");
- for (var ii = 0; !textEndsWith("4个商品领爆竹").exists(); ii++) {
- if (ii == 0) {
- console.log("返回");
- } else {
- console.log("再次返回");
- }
- back();
- CustomSleep(2, 4, "请稍候…");
- if (ii > 4) {
- console.error("任务异常,退出当前账号");
- home();
- return;
- }
- }
- if (i >= 3) {
- break;
- }
- }
- }
- else {
- console.log("模式1");
- for (var i = 0; i < 4; i++) {
- let Model1items = textContains('.jpg!q70').find();
- if (cart) {
- console.log("第" + (i + 1) + "次加购");
- let Model1tmp = Model1items[i].parent().parent();
- console.log('待加购');
- CustomSleep(0.5, 0.8, "请稍候…");
- if (!Model1tmp) {
- console.error("界面异常,跳过此商品");
- continue;
- }
- Model1tmp.child(Model1tmp.childCount() - 1).click();
- } else {
- console.log("第" + (i + 1) + "次浏览");
- Model1items[i].parent().parent().child(4).click();
- }
- CustomSleep(1, 3, "请稍候…");
- for (var ii = 0; !textEndsWith("4个商品领爆竹").exists(); ii++) {
- if (ii == 0) {
- console.log("返回");
- } else {
- console.log("再次返回");
- }
- back();
- CustomSleep(2, 4, "请稍候…");
- if (ii > 4) {
- console.error("加购任务异常,退出当前账号");
- home();
- return;
- }
- }
- if (i >= 3) {
- break;
- }
- }
- }
- console.log("浏览商品任务完成");
- }
-
- if (taskText.match(/浏览.*s|浏览.*秒/)) {
- console.log("进行", taskText);
- timeTask();
- } else if (taskText.match(/点击首页浮层可得/)) {
- console.log("进行", taskText);
- taskButton.click();
- CustomSleep(2, 4, "请稍候…");
- /* 如果任务按钮为去完成,则此处应该有弹窗 */
- if (!text("首页").exists()) {
- console.log("未识别到首页,等待5秒待跳转");
- if (text("首页").findOne(5000) == null) {
- console.log("未识别到首页,退出活动重进");
- back();
- CustomSleep(0.5, 0.8, "请稍候…");
- back();
- }
- }
- if (!text("累计任务奖励").exists()) {
- if (!textMatches(/.*消耗.*爆竹/).exists()) {
- for (var i = 0; !textMatches(/.*消耗.*爆竹/).exists(); i++) {
- console.log("未识别到活动页面,尝试通过首页浮层进入");
- if (text("首页").exists()) {
- let into = descContains("浮层活动").findOne(20000);
- CustomSleep(2, 4, "请稍候…");
- if (into == null) {
- console.log("无法找到京东活动入口,退出当前任务");
- return;
- }
- click(into.bounds().centerX(), into.bounds().centerY());
- click(into.bounds().centerX(), into.bounds().centerY());
- CustomSleep(3, 5, "请稍候…");
- }
- if (i > 10) {
- console.log("识别超时,退出当前任务");
- return;
- }
- if (text("累计任务奖励").exists()) {
- console.log("已检测到任务页面");
- break;
- }
- CustomSleep(3, 5, "请稍候…");
- }
- if (textMatches(/.*消耗.*爆竹/).exists()) {
- console.log("已检测到活动页面");
- PageStatus = 1//进入活动页面,未打开任务列表
- }
- }
- else {
- console.log("检测到活动页面");
- PageStatus = 1//进入活动页面,未打开任务列表
- }
- if (!text("累计任务奖励").exists()) {
- console.info("准备打开任务列表");
- let taskListButton = textMatches(/.*消耗.*爆竹/).findOne(10000)
- if (!taskListButton) {
- console.log("未能识别关键节点,退出当前任务");
- return;
- }
- setScreenMetrics(1440, 3120);//基于分辨率1440*3120的点击
- click(1275, 2100);
- click(1275, 2100);
- CustomSleep(2, 4, "请稍候…");
- setScreenMetrics(device.width, device.height);//恢复本机分辨率
- }
- for (var i = 0; !text("累计任务奖励").exists(); i++) {
- console.log("未识别到任务列表,请手动打开")
- CustomSleep(3, 5, "请稍候…");
- if (i >= 10) {
- console.log("未按时打开任务列表,退出当前任务");
- return;
- }
- }
- }
- else {
- console.log("领取奖励");
- }
- console.log("任务完成");
- } else if (taskText.match(/品牌墙店铺/)) {
- console.log("进行", taskText);
- taskButton.click();
- CustomSleep(1, 3, "请稍候…");
- if (textContains("后满").exists()) {
- var task2 = textContains("后满").findOne().parent().parent()
- for (var i = 0; i < 3; i++) {
- console.log("第" + (i + 1) + "个店铺")
- task2.child(task2.childCount() - 3).child(0).child(1).child(i).click();
- CustomSleep(3.5, 5, "请稍候…");
- for (var ii = 0; !textContains("后满").exists(); ii++) {
- console.log("返回")
- back();
- CustomSleep(1.5, 3, "请稍候…");
- if (ii > 4) {
- console.log("返回活动界面,退出当前任务");
- return;
- }
- }
- }
- task2.child(task2.childCount() - 1).click();//返回
- CustomSleep(1, 3, "请稍候…");
- console.info("准备打开任务列表");
- let taskListButton = textMatches(/.*消耗.*爆竹/).findOne(10000)
- if (!taskListButton) {
- console.log("未能识别关键节点,退出当前任务");
- return;
- }
- setScreenMetrics(1440, 3120);//基于分辨率1440*3120的点击
- click(1275, 2100);
- click(1275, 2100);
- CustomSleep(2, 4, "请稍候…");
- setScreenMetrics(device.width, device.height);//恢复本机分辨率
-
- for (var i = 0; !text("累计任务奖励").exists(); i++) {
- console.log("未识别到任务列表,请手动打开")
- CustomSleep(3, 5, "请稍候…");
- if (i >= 10) {
- console.log("未按时打开任务列表,退出当前任务");
- return;
- }
- }
- }
- else {
- console.log("未能识别关键节点,重进活动页面");
- if (!text("首页").exists()) {
- console.log("未识别到首页,等待5秒待跳转");
- if (text("首页").findOne(5000) == null) {
- console.log("未识别到首页,退出活动重进");
- back();
- CustomSleep(0.5, 0.8, "请稍候…");
- back();
- }
- }
- if (!text("累计任务奖励").exists()) {
- if (!textMatches(/.*消耗.*爆竹/).exists()) {
- for (var i = 0; !textMatches(/.*消耗.*爆竹/).exists(); i++) {
- console.log("未识别到活动页面,尝试通过首页浮层进入");
- if (text("首页").exists()) {
- let into = descContains("浮层活动").findOne(20000);
- CustomSleep(2, 4, "请稍候…");
- if (into == null) {
- console.log("无法找到京东活动入口,退出当前任务");
- return;
- }
- click(into.bounds().centerX(), into.bounds().centerY());
- click(into.bounds().centerX(), into.bounds().centerY());
- CustomSleep(3, 5, "请稍候…");
- }
- if (i > 10) {
- console.log("识别超时,退出当前任务");
- return;
- }
- CustomSleep(3, 5, "请稍候…");
- }
- if (textMatches(/.*消耗.*爆竹/).exists()) {
- console.log("已检测到活动页面");
- PageStatus = 1//进入活动页面,未打开任务列表
- }
- }
- else {
- console.log("检测到活动页面");
- PageStatus = 1//进入活动页面,未打开任务列表
- }
- console.info("准备打开任务列表");
- let taskListButton = textMatches(/.*消耗.*爆竹/).findOne(10000)
- if (!taskListButton) {
- console.log("未能识别关键节点,退出当前任务");
- return;
- }
- setScreenMetrics(1440, 3120);//基于分辨率1440*3120的点击
- click(1275, 2100);
- click(1275, 2100);
- CustomSleep(2, 4, "请稍候…");
- setScreenMetrics(device.width, device.height);//恢复本机分辨率
-
- for (var i = 0; !text("累计任务奖励").exists(); i++) {
- console.log("未识别到任务列表,请手动打开")
- CustomSleep(3, 5, "请稍候…");
- if (i >= 10) {
- console.log("未按时打开任务列表,退出当前任务");
- return;
- }
- }
- }
- }
- } else if (taskText.match(/累计浏览/)) {
- console.log("进行", taskText);
- if (taskText.match(/加购/)) {
- itemTask(true);
- }
- else {
- itemTask(false);
- }
- } else if (taskText.match(/小程序/)) {
- console.log("进行", taskText);
- taskButton.click();
- CustomSleep(3, 5, "请稍候…");
- while (id("ffp").exists() | text("取消").exists()) {
- if (id("ffp").exists()) {
- id("ffp").findOne().click();
- console.log("跳转微信异常,准备返回");
- CustomSleep(1.5, 3, "请稍候…");
- } else if (text("取消").exists()) {
- text("取消").findOne().click();
- console.log("取消");
- CustomSleep(1.5, 3, "请稍候…");
- }
- CustomSleep(2, 4, "请稍候…");
- }
- console.log("任务完成");
- } else if (taskText.match(/成功入会/)) {
- console.log("进行", taskText);
- taskButton.click();
- CustomSleep(3, 5, "请稍候…");
- if (textContains("确认授权并加入店铺会员").exists()) {
- if (IsJoinMember == 2) {
- console.log("当前店铺未入会,跳过");
- }
- else if (IsJoinMember == 1) {
- console.log("涉及个人隐私,请手动加入店铺会员或者忽略加入会员任务");
- return;
- }
- else if (IsJoinMember == 3) {
- console.log("当前店铺未入会,等待手动");
- sleep(8000);
- }
- }
- else {
- console.info("已是当前店铺会员");
- console.log("任务完成");
- }
- } else if (taskText.match(/玩AR游戏可得|每日6-9点打卡/)) {
- console.log("进行", taskText);
- taskButton.click();
- CustomSleep(2, 4, "请稍候…");
- console.log("任务完成");
- } else if (taskText.match(/浏览并关注可得|浏览可得|浏览即可得/)) {
- console.log("进行", taskText);
- let taskItemText = taskButton.parent().child(1).text()
- if (taskItemText.match(/种草城/)) {
- taskButton.click();
- CustomSleep(5, 8, "请稍候…");
- if (text("互动种草城").exists()) {
- if (textContains("/3)").exists()) {
- for (var i = 0; i < 3; i++) {
- console.log("第" + (i + 1) + "次浏览店铺");
- textContains("/3)").findOnce().parent().parent().child(2).click();
- CustomSleep(1, 3, "请稍候…");
- console.log("返回");
- back();
- CustomSleep(2, 4, "请稍候…");
- while (!text("互动种草城").exists()) {
- console.log("再次返回");
- back();
- CustomSleep(2, 4, "请稍候…");
- }
- }
- }
- }
- }
- else {
- taskButton.click();
- CustomSleep(2, 4, "请稍候…");
- }
- console.log("任务完成");
- }
-
- for (var i = 0; text("累计任务奖励").findOnce() == null; i++) {
- console.log("返回");
- back();
- CustomSleep(1, 3, "请稍候…");
- if (i == 5) {
- console.log("无法返回任务界面,退出当前任务");
- return;
- }
- while (id("ffp").exists() | text("取消").exists()) {
- if (id("ffp").exists()) {
- id("ffp").findOne().click();
- console.log("跳转微信异常,准备返回");
- CustomSleep(1.5, 3, "请稍候…");
- } else if (text("取消").exists()) {
- text("取消").findOne().click();
- console.log("取消");
- CustomSleep(1.5, 3, "请稍候…");
- }
- CustomSleep(2, 4, "请稍候…");
- }
- if ((text("领京豆").exists() && text("首页").exists()) | (app.getAppName(currentPackage()) == "京东" && text("首页").exists())) {
- console.log("发现首页,尝试退出并返回原任务列表");
- OutAPP(100);
- CustomSleep(2, 4, "请稍候…");
- if (text("累计任务奖励").exists()) {
- console.log("已返回任务列表");
- break;
- }
- }
- }
- console.info("准备下一个任务");
- if (textContains("重新连接").exists()) {
- console.info("尝试重新连接");
- textContains("重新连接").findOne().click();
- CustomSleep(0.5, 0.8, "请稍候…");
- }
- CustomSleep(1, 3, "请稍候…");
- }
- if (text("当前进度10/10").exists()) {
- console.log("领取累计任务奖励");
- for (var i = 1; text("当前进度10/10").exists() && i < 4; i++) {
- console.log("第" + i + "个宝箱");
- text("当前进度10/10").findOne().parent().child(2).child(i).click();
- CustomSleep(0.5, 0.8, "请稍候…");
- if (text("放入我的>我的优惠券").exists()) {
- console.log("发现优惠券")
- text("放入我的>我的优惠券").findOne().parent().parent().child(0).click();
- CustomSleep(0.5, 0.8, "请稍候…");
- }
- if (textContains("开心收下").exists()) {
- console.log("开心收下")
- textContains("开心收下").findOne().parent().click();
- CustomSleep(0.5, 0.8, "请稍候…");
- }
- CustomSleep(0.5, 0.8, "请稍候…");
- }
- console.log("累计任务奖励领取完毕");
- CustomSleep(1, 3, "请稍候…");
- }
- CustomSleep(0.5, 0.8, "请稍候…");
- back();
- CustomSleep(0.5, 0.8, "请稍候…");
- back();
- }
-
- function CleanCache(LauchAPPName, Isclean) {
- if (LauchAPPName == "分身有术Pro" && Isclean == 1) {
- console.info("打开分身有术Pro,准备清理缓存");
- app.launchApp("分身有术Pro");
- console.log("等待清理");
- for (var i = 0; !id("iv_home_clean").exists() && i < 15; i++) {
- CustomSleep(1, 3, "请稍候…");
- if (i == 5 | i == 10) {
- console.log("已等待" + i + "秒");
- }
- if (id("iv_home_clean").exists()) {
- id("iv_home_clean").findOne().click();
- console.log("加速完毕");
- CustomSleep(3, 5, "请稍候…");
- break;
- }
- }
- if (i >= 15) {
- console.error("识别超时,未能完成加速");
- }
- if (id("im_close_clear").exists()) {
- CustomSleep(2, 4, "请稍候…");
- id("im_close_clear").findOne().click();
- console.log("关闭加速弹窗");
- }
- }
- else {
- console.error("参数不符,退出清理任务");
- }
- }
-
-
- //自定义延迟
- //minNum~maxNum:延迟范围
- //msg:提示消息
- //scroll:是否自动滚屏
- function CustomSleep(minNum, maxNum, msg, scroll) {
- console.info(msg);
- if (maxNum > 0 && maxNum >= minNum) {
- var sleeptimes = parseInt(random(minNum * 1000, maxNum * 1000), 10);
- var tick = 1000;
- if (sleeptimes > tick) {
- for (var i = 0; i < sleeptimes; i += tick) {
- console.verbose("……【" + (100 - parseInt((sleeptimes - i) * 100 / (sleeptimes), 10)) + "%】……");
- var sleeptick = Math.min(tick, sleeptimes - i);
- sleep(sleeptick);
- if (scroll && i % 3 == 1) scrollDown();
- }
- }
- else {
- sleep(sleeptimes);
- if (scroll) scrollDown();
- }
- console.verbose("……【100%】……");
- }
- }
- //自定义返回
- function CustomBack() {
- back();
- CustomSleep(1, 3, "返回中");
- }
- //自定义结束任务
- function CustomExit() {
- CustomSleep(1, 3, "脚本即将终止运行");
- exit();
- }
复制代码
|