var allTasks = []; let taskText = ''; // 美好生活 debug start(); function start () { auto.waitFor() var appName = "cn.youth.news"; if (launch(appName)) { console.info("启动中青看点"); } console.show(); kkz(); exit(); } //看看赚 function kkz () { //初始化时要忽略的任务 let rct; let needBack = false; for (var i = 1; i < 50; i++) { needBack = false; sleep(1000); if (i % 5 == 0) console.clear(); if (text('看看赚').findOnce() == undefined) { console.log(i, '未在看看赚页面,后退'); back(); } try { var task = getTask(i); if (task == undefined) { console.log(i, '未获取到任务'); continue; } needBack = true; console.log(i, '开始任务 ' + taskText); rct = task.bounds(); randomClick(rct.centerX(), rct.centerY()); sleep(500); console.warn(' 任务 ' + taskText + ' 成功'); // if (!viewTask(task)) { // console.warn(' 任务 ' + taskText + ' 失败'); // } // else { // console.warn(' 任务 ' + taskText + ' 成功'); // } } catch (error) { console.error(error.message); } finally { if (needBack) backViewTask(); sleep(1000); if (rct) scorrToTask(rct.centerY()); } } } function getById (maxIndex, name) { for (let index = 0; index < maxIndex; index++) { console.verbose(index, name); var t = id(name).findOnce(); if (t != undefined) return t; sleep(500); } return null; } function getTask (i) { // var task1 = textContains('进行中').find(); // var task2 = text('去完成').find(); // var tasks = task1.concat(task2); //查找所有任务 var tasks = textContains('0青豆').find(); console.log(i, "找到的任务数据 ", tasks.length); for (let index = 0; index < tasks.length; index++) { let task = tasks[index]; taskText = ''; let par = task.parent(); if (par && par.childCount() >= 3) { let statusText = par.child(2).text(); //忽略已完成 if (statusText != '去完成' && statusText != '进行中') continue; taskText = par.child(0).text(); // console.log(" ", index, taskText); } else { continue; } //还未处理过 if (allTasks.indexOf(taskText) > -1) { //console.log(" ", index, "已经处理的任务 ", taskText); } else { allTasks.push(taskText); return task; } } } function scorrToTask (y) { // var y = task.bounds().centerY(); if (device.height - 500 < y) { console.log("滚动任务列表") gesture(400, [520, 1550], [520, 450]); } } function backViewTask () { if (id('cz').findOnce() == undefined) return; var close = id('ahp').clickable().findOnce(); if (close != undefined) close.click(); else back(); } //进入世界任务页面 function viewTask (task) { //判断是否进入的标志 if (id('cz').findOnce() == undefined) { console.log(' ', '未在viewTask页面', task.bounds()); return; } for (var i = 0; i < 8; i++) { if (id('cz').findOnce() == undefined) { console.log(' ', i, '未在viewTask页面'); break; } closeAd(); var l1 = boundsInside(10, 300, device.width, device.height).packageName('cn.youth.news').className('android.view.View').clickable().findOnce(); var l2 = boundsInside(10, 300, device.width, device.height).packageName('cn.youth.news').className('android.widget.Image').clickable().findOnce(); var link = l1 || l2; if (link == undefined) { console.log(' ', i, '未找到连接'); } else { let linkText = link.text() || link.contentDescription || ""; linkText = linkText.length > 8 ? linkText.substring(0, 8) : linkText; // console.log(' ', i, "link ", linkText.length, " ", linkText); console.log(' ', i, "link ", linkText); if (linkText.indexOf && linkText.indexOf('广告') > -1) { continue; } sleep(200) link.click(); sleep(1000); back(); sleep(1000); } // console.log(" 下滑!") if (id('cz').findOnce() == undefined) { console.log(' ', i, '已经退出了viewTask页面'); break; } gesture(400, [520, 1550], [520, 450]); sleep(300); } return true; } function closeAd () { var closeBtn = id('big_pic_close_btn').findOnce(); if (closeBtn != undefined) { console.log("点击广告关闭按钮"); randomClickObject(closeBtn); sleep(1300); } closeBtn = id('btn-close').findOnce(); if (closeBtn != undefined) { console.log("点击广告关闭按钮"); randomClickObject(closeBtn); sleep(1300); } closeBtn = idContains('gdt_template').findOnce(); if (closeBtn != undefined) { let rect = closeBtn.bounds(); console.log("点击广告右上角按钮"); randomClick(rect.right - 30, rect.top + 30); sleep(1300); } } /** * 点击 * @param {横坐标} x * @param {纵坐标} y */ function randomClick (x, y) { var rx = 0;// random(0, 5); var ry = 0;//random(0, 5); click(x + rx, y + ry); return true; } /** * 点击 * @param {横坐标} x * @param {纵坐标} y */ function randomClickObject (obj) { var rx = 0;// random(0, 5); var ry = 0;// random(0, 5); var rct = obj.bounds(); click(rct.centerX() + rx, rct.centerY() + ry); click(rct.centerX() + rx, rct.centerY() + ry); click(rct.centerX() + rx, rct.centerY() + ry); return true; }