├── README.md └── autojs_script-master ├── common.js ├── config.json ├── init.js ├── main.js ├── template.js ├── 东方头条.js ├── 中青看点.js ├── 兔头条.js ├── 头条多多.js ├── 微鲤看看.js ├── 悦头条.js ├── 惠头条.js ├── 点米头条.js ├── 牛牛头条.js ├── 百姓头条.js ├── 看看赚.js ├── 红包头条.js ├── 芒果看点.js ├── 芝麻头条.js ├── 薪头条.js └── 趣头条.js /README.md: -------------------------------------------------------------------------------- 1 | # autoJS_news_read 2 | autojs脚本实现自动阅读 3 | -------------------------------------------------------------------------------- /autojs_script-master/common.js: -------------------------------------------------------------------------------- 1 | var util = {}; 2 | 3 | 4 | //唤醒主屏幕 5 | util.wakeUp = function(){ 6 | if(!device.isScreenOn()){ 7 | device.wakeUpIfNeeded(); 8 | } 9 | } 10 | 11 | //打开APP 12 | util.launch = function(appName) { 13 | //打开应用 14 | app.launchApp(appName); 15 | 16 | //如果存在提示,则点击允许 17 | var loop = 0; 18 | while(loop < 5){ 19 | loop++; 20 | util.UITextClick("允许"); 21 | } 22 | 23 | //设置屏幕缩放 24 | setScreenMetrics(1080, 1920); 25 | sleep(15000); 26 | }; 27 | 28 | //通过坐标点击 29 | util.boundsClick = function(item) { 30 | var bounds = item.bounds(); 31 | click(bounds.centerX(),bounds.centerY()); 32 | sleep(1000); 33 | } 34 | 35 | //通过UI点击 36 | util.UIClick = function(eleId) { 37 | var uiele = id(eleId).findOnce(); 38 | if(uiele){ 39 | uiele.click(); 40 | } 41 | sleep(1000); 42 | } 43 | util.idClick = function(eleId) { 44 | var uiele = id(eleId).findOnce(); 45 | var flag = false; 46 | if(uiele){ 47 | uiele.click(); 48 | flag = true; 49 | } 50 | sleep(1000); 51 | return flag; 52 | } 53 | 54 | //通过UI文本点击 55 | util.UITextClick = function(textContent) { 56 | var uiele = text(textContent).findOnce(); 57 | if(uiele){ 58 | uiele.click(); 59 | } 60 | sleep(1000); 61 | } 62 | util.textClick = function(textContent) { 63 | var uiele = text(textContent).findOnce(); 64 | var flag = false; 65 | if(uiele){ 66 | uiele.click(); 67 | flag = true; 68 | } 69 | sleep(1000); 70 | return flag; 71 | } 72 | 73 | //通过UI文本的坐标点击 74 | util.UITextBoundsClick = function(textContent) { 75 | var thisEle = text(textContent).findOnce(); 76 | var flag = false; 77 | if (thisEle) { 78 | util.boundsClick(thisEle); 79 | flag = true; 80 | } 81 | sleep(1000); 82 | return flag; 83 | } 84 | util.textBoundsClick = function(textContent) { 85 | var thisEle = text(textContent).findOnce(); 86 | var flag = false; 87 | if (thisEle) { 88 | util.boundsClick(thisEle); 89 | flag = true; 90 | } 91 | sleep(1000); 92 | return flag; 93 | } 94 | 95 | //通过UI点击 96 | util.backToIndex = function(indexFlagText) { 97 | var indexBtn = false; 98 | var loop = 0; 99 | while(!indexBtn){ 100 | back(); 101 | sleep(1000); 102 | indexBtn = text(indexFlagText).findOnce(); 103 | 104 | //超出退出时长的,做一些特殊处理 105 | 106 | if(loop > 5){ 107 | //无限返回的页面 108 | var isSucc = util.textClick("关闭"); 109 | if(!isSucc){ 110 | util.textBoundsClick("关闭"); 111 | } 112 | 113 | //系统的安装页面 114 | if(!isSucc){ 115 | util.UITextClick("取消"); 116 | } 117 | 118 | //成功关闭 119 | if(isSucc){ 120 | indexBtn = true; 121 | } 122 | } 123 | loop++; 124 | } 125 | } 126 | 127 | //滑动阅读新闻 128 | util.swapeToRead = function() { 129 | //滑动阅读新闻 130 | swipe(device.width / 2, device.height * 0.8 , 131 | device.width / 2, device.height * 0.5, 5000); 132 | 133 | swipe(device.width / 2, device.height * 0.8 , 134 | device.width / 2, device.height * 0.5, 5000); 135 | } 136 | 137 | module.exports = util; -------------------------------------------------------------------------------- /autojs_script-master/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "newsAppList":[ 3 | { 4 | "name":"东方头条", 5 | "version":1 6 | } 7 | ], 8 | "videoAppList":[ 9 | 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /autojs_script-master/init.js: -------------------------------------------------------------------------------- 1 | const utils = require('common.js'); 2 | 3 | /** 4 | * 通过酷安或者豌豆荚的连接下载 5 | * 1:浏览器下载 6 | * 2:小米app商城下载 7 | */ 8 | //趣头条 9 | download("http://api.1sapp.com/app/download",1); 10 | //中青看点 11 | download("https://res.youth.cn/youth_v1.2.8_code20_180824_c3001.apk",1); 12 | //红包头条 13 | download("https://www.wandoujia.com/apps/com.martian.hbnews/download/dot?ch=detail_normal_dl",1); 14 | //微鲤看看 15 | download("https://www.wandoujia.com/apps/cn.weli.story/download/dot?ch=detail_normal_dl",1); 16 | //牛牛头条 17 | download("https://www.wandoujia.com/apps/com.huolea.bull/download/dot?ch=detail_normal_dl",1); 18 | //惠头条 19 | download("https://www.wandoujia.com/apps/com.cashtoutiao/download/dot?ch=detail_normal_dl",1); 20 | //薪头条 21 | download("http://www.shouzuan.net/download.php?id=19578",1); 22 | 23 | //下载app 24 | function download(url,type){ 25 | //打开浏览器下载 26 | app.openUrl(url); 27 | if(type == 1){ 28 | //立即下载 29 | utils.UITextClick("立即下载"); 30 | //循环找安装 31 | var installFlag = false; 32 | while(!installFlag){ 33 | var uiele = text("安装").findOnce(); 34 | if(uiele){ 35 | uiele.click(); 36 | installFlag = true; 37 | } 38 | } 39 | //安装完成 40 | var installFinishFlag = false; 41 | while(!installFinishFlag){ 42 | var uiele = text("完成").findOnce(); 43 | if(uiele){ 44 | uiele.click(); 45 | installFinishFlag = true; 46 | } 47 | } 48 | } 49 | 50 | if(type == 2){ 51 | //循环找安装 52 | var installFlag = false; 53 | while(!installFlag){ 54 | toast(installFlag); 55 | var uiele = text("安装").findOnce(); 56 | toast(123); 57 | if(uiele){ 58 | toast(uiele); 59 | uiele.click(); 60 | installFlag = true; 61 | } 62 | sleep(2000); 63 | } 64 | } 65 | 66 | } 67 | 68 | 69 | -------------------------------------------------------------------------------- /autojs_script-master/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 必备软件 3 | * 1、虚拟定位:大牛助手 4 | * 2、虚拟步数:大牛助手 5 | * 2、虚拟IP: 6 | */ 7 | /** 8 | * 执行规则 9 | * 1、顺序执行 10 | * 2、0-7点不执行 11 | * 3、每次阅读10篇文章 12 | * 4、阅读时候,需要有一定的停顿 13 | */ 14 | init(); 15 | function init(){ 16 | storages.remove("version"); 17 | //每次阅读的时间 18 | var normalRumTime = 0.5*60*60; 19 | while(true){ 20 | var config = getConfig(); 21 | //新闻类的列表 22 | var newsList = config.newsAppList; 23 | //视频类的列表 24 | var videoList = config.videoAppList; 25 | 26 | /** 27 | * 0-7点阅读视频 28 | * 其他时间阅读新闻 29 | */ 30 | if(new Date().getHours() >= 7){ 31 | var appNum = newsList.length; 32 | for(var i = 0;i< appNum;i++){ 33 | exec(newsList[i].name,normalRumTime); 34 | } 35 | }else{ 36 | //TODO 37 | sleep(1000*60*30);//睡眠半个小时 38 | } 39 | } 40 | } 41 | 42 | //获取主配置 43 | function getConfig(){ 44 | toast("开始获取配置"); 45 | var url = "https://raw.githubusercontent.com/maxwellyue/autojs_script/master/config.json"; 46 | var str = http.get(url) 47 | str = JSON.parse(str.body.string()); 48 | toast("配置获取完成"); 49 | return str; 50 | } 51 | 52 | //执行脚本 53 | function exec(scriptName,seconds){ 54 | //自动获取脚本更新 55 | updateScript(scriptName); 56 | 57 | //开始执行 58 | var startDate = new Date();//开始时间 59 | var exectuion = engines.execScriptFile("/sdcard/脚本/"+scriptName+".js"); 60 | 61 | //计时器,检测时间 62 | var isIExec = true; 63 | while(isIExec){ 64 | //计时 65 | var runSeconds = ((new Date().getTime()) - startDate.getTime())/1000; 66 | toast(scriptName+"已执行"+runSeconds +"秒"); 67 | if(runSeconds > seconds){ 68 | isIExec = false; 69 | } 70 | 71 | sleep(60*1000);//每一分钟检测一次 72 | 73 | //检测当前执行的任务是否已经完成 74 | //如果发现只有一个进程,则跳转到下一个 75 | if(engines.all().length < 2){ 76 | isIExec = false; 77 | stopCurrent(exectuion); 78 | } 79 | } 80 | //停止脚本 81 | stopCurrent(exectuion); 82 | } 83 | 84 | //停止当前脚本 85 | function stopCurrent(exectuion){ 86 | toast("执行停止"); 87 | exectuion.getEngine().forceStop(); 88 | sleep(2000); 89 | back(); 90 | sleep(1000); 91 | back(); 92 | sleep(1000); 93 | home(); 94 | sleep(5000); 95 | } 96 | 97 | //更新脚本 98 | function updateScript(scriptName){ 99 | toast("检测脚本更新"); 100 | var storage = storages.create("version"); 101 | var scriptVersion = storage.get(scriptName); 102 | 103 | var config = getConfig(); 104 | var newsAppList = config.newsAppList; 105 | for(var i = 0; i< newsAppList.length;i++){ 106 | var thisScript = newsAppList[i]; 107 | var name = thisScript.name; 108 | var version = thisScript.version; 109 | 110 | if(scriptName == name && version != scriptVersion){ 111 | toast("检测开始更新"); 112 | var path = "/sdcard/脚本/"+scriptName+".js"; 113 | var scriptContent = http.get("https://raw.githubusercontent.com/maxwellyue/autojs_script/master/"+scriptName+".js").body.string(); 114 | files.write(path,scriptContent); 115 | storage.put(scriptName,version); 116 | toast("检测更新完成"); 117 | return true; 118 | } 119 | toast("检测无需更新"); 120 | return false; 121 | } 122 | } 123 | 124 | -------------------------------------------------------------------------------- /autojs_script-master/template.js: -------------------------------------------------------------------------------- 1 | const utils = require('./common.js'); 2 | var template = {}; 3 | 4 | /** 5 | * 初始化参数 6 | */ 7 | var initParam = { 8 | appName:"",//应用名称 9 | lastNewsText:"",//上一次新闻标题 10 | 11 | totalNewsReaded : 0,//已经阅读的新闻条数 12 | totalNewsOneTime : 50,//一次性阅读多少条新闻 13 | loopTimeToFindNews : 20,//找了多少次新闻找不到会退出 14 | 15 | indexBtnText: "首页", //其他页面挑到首页的按钮文字,重要! 16 | indexFlagText : "刷新",//首页特有的标志文字,重要! 17 | 18 | timeAwardText : "领取",//时段奖励关键字 19 | } 20 | template.init = function(param){ 21 | Object.assign(initParam, param); 22 | } 23 | 24 | /** 25 | * 运行 26 | * 需要的方法 27 | * 1、签到:signIn 28 | * 2、寻找一条新闻条目:findNewsItem 29 | */ 30 | template.run = function(fun){ 31 | /** 32 | * 启动 33 | */ 34 | utils.wakeUp(); 35 | utils.launch(initParam.appName); 36 | 37 | /** 38 | * 自动更新 39 | */ 40 | template.autoUpdate(fun); 41 | 42 | /** 43 | * 回归首页的位置 44 | */ 45 | template.jumpToIndex(fun.getIndexBtnItem); 46 | 47 | /** 48 | * 签到 49 | */ 50 | if(fun.signIn != null){ 51 | fun.signIn(); 52 | } 53 | 54 | /** 55 | * 新闻阅读流程 56 | */ 57 | while(true){ 58 | //领取时段奖励 59 | template.getTimeAward(fun.doingAfterTimeAward); 60 | //找到一条新闻 61 | template.getOneNews(fun.findNewsItem); 62 | //阅读新闻60s 63 | template.readNews(60,fun.isShouldBack); 64 | //返回新闻列表 65 | utils.backToIndex(initParam.indexFlagText); 66 | } 67 | } 68 | 69 | template.autoUpdate = function(fun){ 70 | var updateFlag = false; 71 | var updateBtn; 72 | if(text("安全升级").findOnce()){ 73 | updateFlag = true; 74 | updateBtn = text("安全升级").findOnce(); 75 | } 76 | if(text("立即升级").findOnce()){ 77 | updateFlag = true; 78 | updateBtn = text("立即升级").findOnce(); 79 | } 80 | if(text("立即更新").findOnce()){ 81 | updateFlag = true; 82 | updateBtn = text("立即更新").findOnce(); 83 | } 84 | if(text("升级").findOnce()){ 85 | updateFlag = true; 86 | updateBtn = text("升级").findOnce(); 87 | } 88 | 89 | if(updateFlag){ 90 | updateBtn.click(); 91 | }else{ 92 | return; 93 | } 94 | 95 | //循环找安装,有可能安装还不能用 96 | var installFlag = false; 97 | while(!installFlag){ 98 | sleep(1000); 99 | var uiele = text("安装").findOnce(); 100 | toast("开始找安装"); 101 | if(uiele){ 102 | uiele.click(); 103 | sleep(1000); 104 | uiele = text("安装").findOnce(); 105 | if(!uiele){ 106 | installFlag = true; 107 | } 108 | } 109 | } 110 | //安装完成 111 | var installFinishFlag = false; 112 | while(!installFinishFlag){ 113 | sleep(1000); 114 | var uiele = text("完成").findOnce(); 115 | if(uiele){ 116 | uiele.click(); 117 | installFinishFlag = true; 118 | } 119 | } 120 | 121 | //重新运行 122 | template.run(fun); 123 | } 124 | 125 | /** 126 | * 跳转到首页 127 | * 1、返回和首页标识一起判断 128 | */ 129 | template.jumpToIndex = function(getIndexBtnItem){ 130 | 131 | var indexFlag = text(initParam.indexFlagText).findOnce(); 132 | while(!indexFlag){ 133 | //点击首页标识性文字 134 | var flag = false; 135 | if(getIndexBtnItem == null){ 136 | flag = utils.UITextBoundsClick(initParam.indexBtnText); 137 | }else{ 138 | flag = getIndexBtnItem().click(); 139 | } 140 | 141 | //执行返回 142 | if(!flag){ 143 | back(); 144 | } 145 | sleep(1000); 146 | //重新取flag 147 | indexFlag = text(initParam.indexFlagText).findOnce(); 148 | } 149 | } 150 | 151 | /** 152 | * 获取时段奖励 153 | */ 154 | template.getTimeAward = function(doingAfterTimeAward){ 155 | utils.UITextBoundsClick(initParam.timeAwardText); 156 | //判断是否有提示 157 | if(doingAfterTimeAward != null){ 158 | doingAfterTimeAward(); 159 | } 160 | } 161 | 162 | /** 163 | * 获取一条新闻 164 | */ 165 | template.getOneNews = function(findNewsItem){ 166 | //阅读超过50条,刷新页面 167 | if(initParam.totalNewsReaded > initParam.totalNewsOneTime){ 168 | initParam.totalNews = 0; 169 | click(1,1919); 170 | sleep(2000); 171 | } 172 | 173 | //上滑找新闻 174 | var isFindNews = false;//是否找到新闻 175 | var newsText = "";//新闻标题 176 | var newsItem;//新闻条目 177 | initParam.loopTimeToFindNews = 0;//循环次数 178 | while((!isFindNews || initParam.lastNewsText === newsText) && initParam.loopTimeToFindNews < 20){ 179 | //找新闻次数+1 180 | initParam.loopTimeToFindNews++; 181 | 182 | //进行下翻 183 | swipe(device.width / 2, device.height / 4 * 2, device.width / 2, device.height / 4, 1000); 184 | sleep(1000); 185 | 186 | //新闻条目 187 | newsItem = findNewsItem(); 188 | if(newsItem){ 189 | newsText = newsItem.child(0).text(); 190 | isFindNews = true; 191 | } 192 | } 193 | 194 | //找到新闻,点击阅读 195 | if(isFindNews){ 196 | initParam.lastNewsText = newsText; 197 | initParam.totalNewsReaded++; 198 | newsItem.click(); 199 | }else{ 200 | toast("20次滑动没有找到新闻,请检查新闻ID"); 201 | exit(); 202 | } 203 | } 204 | 205 | //阅读新闻 206 | template.readNews = function(seconds,isShouldBack){ 207 | 208 | //滑动阅读新闻 209 | for(var i = 0 ;i < seconds/10 ;i++){ 210 | utils.swapeToRead(); 211 | 212 | //判断是否直接返回 213 | var shouldBack = false; 214 | if(isShouldBack != null){ 215 | shouldBack = isShouldBack(); 216 | } 217 | if(shouldBack){ 218 | return; 219 | } 220 | } 221 | } 222 | 223 | module.exports = template; -------------------------------------------------------------------------------- /autojs_script-master/东方头条.js: -------------------------------------------------------------------------------- 1 | const utils = require('common.js'); 2 | 3 | utils.wakeUp(); 4 | utils.launch("东方头条"); 5 | sleep(15000); 6 | setScreenMetrics(1080, 1920); 7 | 8 | 9 | /** 10 | * 全局参数 11 | */ 12 | var lastNewsText="";//上一次新闻标题 13 | var totalNewsReaded = 0;//已经阅读的新闻条数 14 | var totalNewsOneTime = 50;//一次性阅读多少条新闻 15 | var loopTimeToFindNews=20;//找了多少次新闻找不到会退出 16 | 17 | /** 18 | * 全局控件ID 19 | */ 20 | var newsItemId = "oc";//新闻条目ID 21 | var indexFlagText="发布";//首页特有的标志文字 22 | 23 | //开始刷新闻,主循环 24 | jumpToIndex(); 25 | while(true){ 26 | //领取时段奖励 27 | getAward(); 28 | //点击进入新闻 29 | getOneNews(); 30 | //阅读新闻60s 31 | readNews(60); 32 | //返回新闻列表 33 | utils.backToIndex(indexFlagText); 34 | } 35 | 36 | //跳转到首页 37 | function jumpToIndex(){ 38 | 39 | //循环关闭所有的弹出框 40 | var flag = text(indexFlagText).findOnce(); 41 | while(!flag){ 42 | //关闭推荐 43 | var awardClose = id("ts").findOnce(); 44 | if(awardClose){ 45 | awardClose.click(); 46 | } 47 | 48 | //点击左下角关闭提现提醒 49 | click(1,1919); 50 | 51 | sleep(1000); 52 | flag = text(indexFlagText).findOnce(); 53 | } 54 | } 55 | 56 | //领取时段奖励 57 | function getAward(){ 58 | 59 | //关闭推荐新闻 60 | var awardClose = id("ut").findOnce(); 61 | if(awardClose){ 62 | awardClose.click(); 63 | } 64 | } 65 | 66 | // 获取一条新闻 67 | function getOneNews(){ 68 | 69 | //阅读超过50条,刷新页面 70 | if(totalNewsReaded > totalNewsOneTime){ 71 | totalNews = 0; 72 | click(1,1919); 73 | sleep(2000); 74 | } 75 | 76 | //上滑找新闻 77 | var isFindNews = false;//是否找到新闻 78 | var newsText = "";//新闻标题 79 | loopTimeToFindNews = 0; 80 | while((!isFindNews || lastNewsText === newsText) && loopTimeToFindNews < 20){ 81 | //找新闻次数+1 82 | loopTimeToFindNews++; 83 | 84 | //进行下翻 85 | swipe(device.width / 2, device.height / 4 * 2,device.width / 2, device.height / 4, 1000); 86 | sleep(1000); 87 | 88 | //找到新闻item 89 | var newsItem = id(newsItemId).findOnce(); 90 | if(newsItem){ 91 | //判断是不是广告,通过是否有阅读数量判断 92 | var adFlag = newsItem.child(1); 93 | if(adFlag && adFlag.text() == "广告"){ 94 | newsItem = null; 95 | }else{ 96 | newsText = newsItem.child(0).text(); 97 | isFindNews=true; 98 | } 99 | } 100 | } 101 | 102 | //找到新闻 103 | if(newsItem){ 104 | lastNewsText = newsText; 105 | totalNewsReaded++; 106 | newsItem.click(); 107 | }else{ 108 | toast("20次滑动没有找到新闻,请检查新闻ID"); 109 | exit(); 110 | } 111 | } 112 | 113 | //阅读新闻 114 | function readNews(seconds){ 115 | var times = seconds/10; 116 | 117 | //开始滑动 118 | for(var i = 1;i < times;i++){ 119 | //滑动阅读新闻 120 | swipe(device.width / 2, device.height * 0.8 , 121 | device.width / 2, device.height * 0.5, 5000); 122 | 123 | swipe(device.width / 2, device.height * 0.8 , 124 | device.width / 2, device.height * 0.5, 5000); 125 | 126 | //关闭继续阅读 127 | var textOk = id("text_ok").findOnce(); 128 | if(textOk){ 129 | textOk.click(); 130 | } 131 | 132 | } 133 | } 134 | -------------------------------------------------------------------------------- /autojs_script-master/中青看点.js: -------------------------------------------------------------------------------- 1 | const commons = require('common.js'); 2 | const templates = require('template.js'); 3 | 4 | 5 | templates.init({ 6 | appName:"中青看点", 7 | indexFlagText:"美文", 8 | }); 9 | 10 | templates.run({ 11 | //获取首页按钮 12 | getIndexBtnItem:function(){ 13 | return id("tv_home_tab").findOnce(); 14 | }, 15 | //签到 16 | signIn:function(){ 17 | //进入我的 18 | click(1079,1919); 19 | sleep(500); 20 | //进入任务中心 21 | var taskCenter = text("任务中心").findOnce(); 22 | if(taskCenter){ 23 | commons.boundsClick(taskCenter); 24 | sleep(5000); 25 | } 26 | //点击签到领红包 27 | commons.UITextClick("签到领红包"); 28 | sleep(1000); 29 | //返回主页面 30 | back(); 31 | back(); 32 | sleep(1000); 33 | //回到新闻 34 | click(1,1919); 35 | }, 36 | //找出新闻的条目 37 | findNewsItem:function(){ 38 | var newsItem = id("tv_read_count").findOnce(1); 39 | //判断是否是广告 40 | if(newsItem){ 41 | newsItem = newsItem.parent(); 42 | var adFlag = newsItem.child(1); 43 | if(adFlag && adFlag.text() == "广告"){ 44 | newsItem = null; 45 | } 46 | } 47 | return newsItem; 48 | }, 49 | //阅读页面是否应该返回 50 | isShouldBack:function(){ 51 | //不存在奖励,直接退出 52 | if(!id("news_income_container").findOnce()){ 53 | return true; 54 | } 55 | 56 | //存在下载安装 57 | if(id("button2").findOnce()){ 58 | id("button2").findOnce().click(); 59 | return true; 60 | } 61 | 62 | return false; 63 | } 64 | }); 65 | -------------------------------------------------------------------------------- /autojs_script-master/兔头条.js: -------------------------------------------------------------------------------- 1 | const utils = require('common.js'); 2 | 3 | /** 4 | * 全局参数 5 | */ 6 | var lastNewsText="";//上一次新闻标题 7 | var totalNewsReaded = 0;//已经阅读的新闻条数 8 | var totalNewsOneTime = 50;//一次性阅读多少条新闻 9 | var loopTimeToFindNews=20;//找了多少次新闻找不到会退出 10 | var indexFlagText="刷新";//首页特有的标志文字 11 | 12 | /** 13 | * 主循环 14 | */ 15 | utils.wakeUp(); 16 | utils.launch("兔头条"); 17 | jumpToIndex(); 18 | signIn(); 19 | while(true){ 20 | //领取时段奖励 21 | getAward(); 22 | //找到一条新闻 23 | getOneNews(); 24 | //阅读新闻60s 25 | readNews(45); 26 | //返回新闻列表 27 | utils.backToIndex(indexFlagText); 28 | } 29 | 30 | //跳转到首页 31 | function jumpToIndex(){ 32 | //跳转到首页 33 | click(1,1919); 34 | } 35 | 36 | //签到 37 | function signIn(){ 38 | utils.UITextBoundsClick("任务"); 39 | sleep(2000); 40 | click(1,1919); 41 | sleep(2000); 42 | click(1,1919); 43 | } 44 | 45 | //领取时段奖励 46 | function getAward(){ 47 | utils.UIClick("fh_iv_boxgif"); 48 | utils.UIClick("close_view"); 49 | } 50 | 51 | // 获取一条新闻 52 | function getOneNews(){ 53 | 54 | //阅读超过50条,刷新页面 55 | if(totalNewsReaded > totalNewsOneTime){ 56 | totalNews = 0; 57 | click(1,1919); 58 | sleep(2000); 59 | } 60 | 61 | //上滑找新闻 62 | var isFindNews = false;//是否找到新闻 63 | var newsText = "";//新闻标题 64 | var newsItem;//新闻条目 65 | loopTimeToFindNews = 0;//循环次数 66 | while((!isFindNews || lastNewsText === newsText) && loopTimeToFindNews < 20){ 67 | //找新闻次数+1 68 | loopTimeToFindNews++; 69 | 70 | //进行下翻 71 | swipe(device.width / 2, device.height / 4 * 2, device.width / 2, device.height / 4, 1000); 72 | sleep(1000); 73 | 74 | //新闻条目 75 | newsItem = className("android.support.v4.view.ViewPager") 76 | .className("android.support.v4.view.ViewPager") 77 | .className("android.support.v7.widget.RecyclerView") 78 | .className("LinearLayout").findOnce(); 79 | if(newsItem){ 80 | newsText = newsItem.child(0).text(); 81 | isFindNews = true; 82 | } 83 | } 84 | 85 | //找到新闻,点击阅读 86 | if(isFindNews){ 87 | lastNewsText = newsText; 88 | totalNewsReaded++; 89 | newsItem.click(); 90 | }else{ 91 | toast("20次滑动没有找到新闻,请检查新闻ID"); 92 | exit(); 93 | } 94 | } 95 | 96 | //阅读新闻 97 | function readNews(seconds){ 98 | 99 | //滑动阅读新闻 100 | for(var i = 0 ;i < seconds/10 ;i++){ 101 | utils.swapeToRead(); 102 | } 103 | 104 | } -------------------------------------------------------------------------------- /autojs_script-master/头条多多.js: -------------------------------------------------------------------------------- 1 | const utils = require('common.js'); 2 | 3 | /** 4 | * 全局参数 5 | */ 6 | var lastNewsText="";//上一次新闻标题 7 | var totalNewsReaded = 0;//已经阅读的新闻条数 8 | var totalNewsOneTime = 50;//一次性阅读多少条新闻 9 | var loopTimeToFindNews=20;//找了多少次新闻找不到会退出 10 | var indexFlagText="首页";//首页特有的标志文字 11 | 12 | /** 13 | * 主循环 14 | */ 15 | utils.wakeUp(); 16 | utils.launch("头条多多"); 17 | jumpToIndex(); 18 | signIn(); 19 | while(true){ 20 | //领取时段奖励 21 | getAward(); 22 | //找到一条新闻 23 | getOneNews(); 24 | //阅读新闻60s 25 | readNews(90); 26 | //返回新闻列表 27 | utils.backToIndex(indexFlagText); 28 | } 29 | 30 | //跳转到首页 31 | function jumpToIndex(){ 32 | //跳转到首页 33 | click(1,1919); 34 | } 35 | 36 | //签到 37 | function signIn(){ 38 | utils.UITextBoundsClick("赚钱"); 39 | sleep(2000); 40 | click(1,1919); 41 | } 42 | 43 | //领取时段奖励 44 | function getAward(){ 45 | utils.UITextBoundsClick("领取"); 46 | } 47 | 48 | // 获取一条新闻 49 | function getOneNews(){ 50 | 51 | //阅读超过50条,刷新页面 52 | if(totalNewsReaded > totalNewsOneTime){ 53 | totalNews = 0; 54 | click(1,1919); 55 | sleep(2000); 56 | } 57 | 58 | //上滑找新闻 59 | var isFindNews = false;//是否找到新闻 60 | var newsText = "";//新闻标题 61 | var newsItem;//新闻条目 62 | loopTimeToFindNews = 0;//循环次数 63 | while((!isFindNews || lastNewsText === newsText) && loopTimeToFindNews < 20){ 64 | //找新闻次数+1 65 | loopTimeToFindNews++; 66 | 67 | //进行下翻 68 | swipe(device.width / 2, device.height / 4 * 2, device.width / 2, device.height / 4, 1000); 69 | sleep(1000); 70 | 71 | //新闻条目 72 | newsItem = className("android.support.v4.view.ViewPager") 73 | .className("android.support.v7.widget.RecyclerView").findOnce(0).child(0).child(0); 74 | if(newsItem){ 75 | //判断是不是广告,通过是否有阅读数量判断 76 | if(newsItem.childCount() > 1 && newsItem.child(1) && newsItem.child(1).text() == "广告"){ 77 | newsItem = null; 78 | }else{ 79 | newsText = newsItem.child(0).text(); 80 | isFindNews=true; 81 | } 82 | } 83 | } 84 | 85 | //找到新闻,点击阅读 86 | if(isFindNews){ 87 | lastNewsText = newsText; 88 | totalNewsReaded++; 89 | newsItem.click(); 90 | }else{ 91 | toast("20次滑动没有找到新闻,请检查新闻ID"); 92 | exit(); 93 | } 94 | } 95 | 96 | //阅读新闻 97 | function readNews(seconds){ 98 | //滑动阅读新闻 99 | for(var i = 0 ;i < seconds/10 ;i++){ 100 | utils.swapeToRead(); 101 | } 102 | } -------------------------------------------------------------------------------- /autojs_script-master/微鲤看看.js: -------------------------------------------------------------------------------- 1 | const commons = require('common.js'); 2 | const templates = require('template.js'); 3 | 4 | 5 | templates.init({ 6 | appName:"微鲤看看", 7 | indexFlagText:"发布", 8 | timeAwardText:"领红包", 9 | }); 10 | 11 | templates.run({ 12 | //获取首页按钮 13 | getIndexBtnItem:function(){ 14 | return id("rl_bottom_1").findOnce(); 15 | }, 16 | //签到 17 | signIn:function(){ 18 | commons.UIClick("rl_bottom_4"); 19 | sleep(1000); 20 | commons.UIClick("ll_not_sign"); 21 | sleep(1000); 22 | back(); 23 | sleep(1000); 24 | commons.UIClick("rl_bottom_1"); 25 | }, 26 | //找出新闻的条目 27 | findNewsItem:function(){ 28 | 29 | //领取宝藏 30 | commons.UIClick("text_ok"); 31 | commons.UIClick("bt_ok"); 32 | 33 | var newsItem = id("tv_title").findOnce(1); 34 | //判断是否是广告 35 | if(newsItem){ 36 | newsItem = newsItem.parent(); 37 | var adFlag = newsItem.child(1); 38 | if(adFlag && adFlag.text() == "广告"){ 39 | newsItem = null; 40 | } 41 | } 42 | return newsItem; 43 | }, 44 | //时段奖励之后执行 45 | doingAfterTimeAward:function(){ 46 | back(); 47 | }, 48 | //阅读页面是否应该返回 49 | isShouldBack:function(){ 50 | 51 | //领取宝藏 52 | commons.UIClick("text_ok"); 53 | commons.UIClick("bt_ok"); 54 | 55 | return false; 56 | } 57 | }); -------------------------------------------------------------------------------- /autojs_script-master/悦头条.js: -------------------------------------------------------------------------------- 1 | const utils = require('common.js'); 2 | 3 | /** 4 | * 全局参数 5 | */ 6 | var lastNewsText="";//上一次新闻标题 7 | var totalNewsReaded = 0;//已经阅读的新闻条数 8 | var totalNewsOneTime = 50;//一次性阅读多少条新闻 9 | var loopTimeToFindNews=20;//找了多少次新闻找不到会退出 10 | var indexFlagText="刷新";//首页特有的标志文字 11 | 12 | /** 13 | * 主循环 14 | */ 15 | utils.wakeUp(); 16 | utils.launch("悦头条"); 17 | jumpToIndex(); 18 | signIn(); 19 | while(true){ 20 | //领取时段奖励 21 | getAward(); 22 | //找到一条新闻 23 | getOneNews(); 24 | //阅读新闻60s 25 | readNews(30); 26 | //返回新闻列表 27 | utils.backToIndex(indexFlagText); 28 | } 29 | 30 | //跳转到首页 31 | function jumpToIndex(){ 32 | 33 | //循环关闭所有的弹出框 34 | var flag = text(indexFlagText).findOnce(); 35 | while(!flag){ 36 | 37 | //领取奖励 38 | utils.UIClick("ll_quit"); 39 | 40 | sleep(1000); 41 | flag = text(indexFlagText).findOnce(); 42 | } 43 | } 44 | 45 | //签到 46 | function signIn(){ 47 | utils.UITextBoundsClick("任务"); 48 | sleep(2000); 49 | click(1,1919); 50 | sleep(2000); 51 | click(1,1919); 52 | } 53 | 54 | //领取时段奖励 55 | function getAward(){ 56 | } 57 | 58 | // 获取一条新闻 59 | function getOneNews(){ 60 | 61 | //阅读超过50条,刷新页面 62 | if(totalNewsReaded > totalNewsOneTime){ 63 | totalNews = 0; 64 | click(1,1919); 65 | sleep(2000); 66 | } 67 | 68 | //上滑找新闻 69 | var isFindNews = false;//是否找到新闻 70 | var newsText = "";//新闻标题 71 | var newsItem;//新闻条目 72 | loopTimeToFindNews = 0;//循环次数 73 | while((!isFindNews || lastNewsText === newsText) && loopTimeToFindNews < 20){ 74 | //找新闻次数+1 75 | loopTimeToFindNews++; 76 | 77 | //进行下翻 78 | swipe(device.width / 2, device.height / 4 * 2, device.width / 2, device.height / 4, 1000); 79 | sleep(1000); 80 | 81 | //新闻条目 82 | newsItem = className("android.support.v4.view.ViewPager") 83 | .className("android.support.v7.widget.RecyclerView") 84 | .className("LinearLayout").findOnce(); 85 | if(newsItem){ 86 | //判断是不是广告,通过是否有阅读数量判断 87 | var adFlag = newsItem.child(1); 88 | if(adFlag && adFlag.text() == "【广告】"){ 89 | newsItem = null; 90 | }else{ 91 | newsText = newsItem.child(0).text(); 92 | isFindNews=true; 93 | } 94 | } 95 | } 96 | 97 | //找到新闻,点击阅读 98 | if(isFindNews){ 99 | lastNewsText = newsText; 100 | totalNewsReaded++; 101 | newsItem.click(); 102 | }else{ 103 | toast("20次滑动没有找到新闻,请检查新闻ID"); 104 | exit(); 105 | } 106 | } 107 | 108 | //阅读新闻 109 | function readNews(seconds){ 110 | 111 | //滑动阅读新闻 112 | for(var i = 0 ;i < seconds/10 ;i++){ 113 | utils.swapeToRead(); 114 | } 115 | 116 | } -------------------------------------------------------------------------------- /autojs_script-master/惠头条.js: -------------------------------------------------------------------------------- 1 | const commons = require('common.js'); 2 | const templates = require('template.js'); 3 | 4 | 5 | templates.init({ 6 | appName:"惠头条", 7 | indexBtnText: "头条", 8 | indexFlagText:"刷新", 9 | timeAwardText : "点击领取",//时段奖励关键字 10 | }); 11 | 12 | templates.run({ 13 | //签到 14 | signIn:function(){ 15 | commons.UITextBoundsClick("任务中心"); 16 | sleep(1000); 17 | commons.UIClick("sign_btn_container"); 18 | sleep(1000); 19 | click(20,1917); 20 | sleep(1000); 21 | click(20,1917); 22 | }, 23 | //找出新闻的条目 24 | findNewsItem:function(){ 25 | var newsItem = id("tv_title").findOnce(1); 26 | //判断是否是广告 27 | if(newsItem){ 28 | newsItem = newsItem.parent(); 29 | var adFlag = newsItem.child(1); 30 | if(adFlag && adFlag.text() == "广告"){ 31 | newsItem = null; 32 | } 33 | } 34 | return newsItem; 35 | }, 36 | //阅读页面是否应该返回 37 | isShouldBack:function(){ 38 | commons.UITextClick("取消"); 39 | return false; 40 | }, 41 | //时段奖励之后执行 42 | doingAfterTimeAward:function(){ 43 | back(); 44 | }, 45 | }); -------------------------------------------------------------------------------- /autojs_script-master/点米头条.js: -------------------------------------------------------------------------------- 1 | const utils = require('common.js'); 2 | 3 | /** 4 | * 全局参数 5 | */ 6 | var lastNewsText="";//上一次新闻标题 7 | var totalNewsReaded = 0;//已经阅读的新闻条数 8 | var totalNewsOneTime = 50;//一次性阅读多少条新闻 9 | var loopTimeToFindNews=20;//找了多少次新闻找不到会退出 10 | var indexFlagText="首页";//首页特有的标志文字 11 | 12 | /** 13 | * 主循环 14 | */ 15 | utils.wakeUp(); 16 | utils.launch("点米头条"); 17 | jumpToIndex(); 18 | signIn(); 19 | while(true){ 20 | //领取时段奖励 21 | getAward(); 22 | //找到一条新闻 23 | getOneNews(); 24 | //阅读新闻60s 25 | readNews(30); 26 | //返回新闻列表 27 | utils.backToIndex(indexFlagText); 28 | } 29 | 30 | //跳转到首页 31 | function jumpToIndex(){ 32 | //循环关闭所有的弹出框 33 | var flag = text(indexFlagText).findOnce(); 34 | while(!flag){ 35 | 36 | //领取奖励 37 | utils.UIClick("iv_close"); 38 | 39 | sleep(1000); 40 | flag = text(indexFlagText).findOnce(); 41 | } 42 | } 43 | 44 | //签到 45 | function signIn(){ 46 | utils.UITextBoundsClick("任务"); 47 | sleep(2000); 48 | utils.UITextBoundsClick("签到"); 49 | sleep(2000); 50 | click(1,1919); 51 | } 52 | 53 | //领取时段奖励 54 | function getAward(){ 55 | } 56 | 57 | // 获取一条新闻 58 | function getOneNews(){ 59 | 60 | //阅读超过50条,刷新页面 61 | if(totalNewsReaded > totalNewsOneTime){ 62 | totalNews = 0; 63 | click(1,1919); 64 | sleep(2000); 65 | } 66 | 67 | //上滑找新闻 68 | var isFindNews = false;//是否找到新闻 69 | var newsText = "";//新闻标题 70 | var newsItem;//新闻条目 71 | loopTimeToFindNews = 0;//循环次数 72 | while((!isFindNews || lastNewsText === newsText) && loopTimeToFindNews < 20){ 73 | //找新闻次数+1 74 | loopTimeToFindNews++; 75 | 76 | //进行下翻 77 | swipe(device.width / 2, device.height / 4 * 2, device.width / 2, device.height / 4, 1000); 78 | sleep(1000); 79 | 80 | //新闻条目 81 | newsItem = className("android.support.v4.view.ViewPager") 82 | .className("android.support.v4.view.ViewPager") 83 | .className("android.support.v7.widget.RecyclerView") 84 | .className("RelativeLayout").findOnce(); 85 | if(newsItem){ 86 | newsText = newsItem.child(0).text(); 87 | isFindNews = true; 88 | } 89 | } 90 | 91 | //找到新闻,点击阅读 92 | if(isFindNews){ 93 | lastNewsText = newsText; 94 | totalNewsReaded++; 95 | newsItem.click(); 96 | }else{ 97 | toast("20次滑动没有找到新闻,请检查新闻ID"); 98 | exit(); 99 | } 100 | } 101 | 102 | //阅读新闻 103 | function readNews(seconds){ 104 | 105 | //滑动阅读新闻 106 | for(var i = 0 ;i < seconds/10 ;i++){ 107 | utils.swapeToRead(); 108 | } 109 | 110 | } -------------------------------------------------------------------------------- /autojs_script-master/牛牛头条.js: -------------------------------------------------------------------------------- 1 | const commons = require('common.js'); 2 | const templates = require('template.js'); 3 | 4 | 5 | templates.init({ 6 | appName:"牛牛头条", 7 | indexBtnText: "资讯", 8 | indexFlagText:"刷新", 9 | }); 10 | 11 | templates.run({ 12 | //签到 13 | signIn:function(){ 14 | commons.UITextBoundsClick("每日金币"); 15 | sleep(2000); 16 | click(1,1919); 17 | }, 18 | //找出新闻的条目 19 | findNewsItem:function(){ 20 | var newsItem = className("android.support.v4.view.ViewPager") 21 | .className("android.support.v4.view.ViewPager") 22 | .className("android.support.v7.widget.RecyclerView") 23 | .className("RelativeLayout").findOnce(); 24 | //判断是否是广告 25 | if(newsItem){ 26 | if(newsItem.childCount() > 1){ 27 | var adFlag = newsItem.child(1); 28 | if(adFlag && adFlag.text() == "广告"){ 29 | newsItem = null; 30 | } 31 | } 32 | } 33 | return newsItem; 34 | }, 35 | //阅读页面是否应该返回 36 | isShouldBack:function(){ 37 | return false; 38 | }, 39 | //时段奖励之后执行 40 | doingAfterTimeAward:function(){ 41 | back(); 42 | }, 43 | }); 44 | -------------------------------------------------------------------------------- /autojs_script-master/百姓头条.js: -------------------------------------------------------------------------------- 1 | const utils = require('common.js'); 2 | 3 | /** 4 | * 全局参数 5 | */ 6 | var lastNewsText="";//上一次新闻标题 7 | var totalNewsReaded = 0;//已经阅读的新闻条数 8 | var totalNewsOneTime = 50;//一次性阅读多少条新闻 9 | var loopTimeToFindNews=20;//找了多少次新闻找不到会退出 10 | var indexFlagText="刷新";//首页特有的标志文字 11 | 12 | /** 13 | * 主循环 14 | */ 15 | utils.wakeUp(); 16 | utils.launch("百姓头条"); 17 | jumpToIndex(); 18 | signIn(); 19 | while(true){ 20 | //领取时段奖励 21 | getAward(); 22 | //找到一条新闻 23 | getOneNews(); 24 | //阅读新闻60s 25 | readNews(60); 26 | //返回新闻列表 27 | utils.backToIndex(indexFlagText); 28 | } 29 | 30 | //跳转到首页 31 | function jumpToIndex(){ 32 | 33 | //循环关闭所有的弹出框 34 | var flag = text(indexFlagText).findOnce(); 35 | while(!flag){ 36 | 37 | utils.UIClick("iv_dialog_close"); 38 | click(1,1919); 39 | 40 | sleep(1000); 41 | flag = text(indexFlagText).findOnce(); 42 | } 43 | } 44 | 45 | //签到 46 | function signIn(){ 47 | } 48 | 49 | //领取时段奖励 50 | function getAward(){ 51 | } 52 | 53 | // 获取一条新闻 54 | function getOneNews(){ 55 | 56 | //阅读超过50条,刷新页面 57 | if(totalNewsReaded > totalNewsOneTime){ 58 | totalNews = 0; 59 | click(1,1919); 60 | sleep(2000); 61 | } 62 | 63 | //上滑找新闻 64 | var isFindNews = false;//是否找到新闻 65 | var newsText = "";//新闻标题 66 | var newsItem;//新闻条目 67 | loopTimeToFindNews = 0;//循环次数 68 | while((!isFindNews || lastNewsText === newsText) && loopTimeToFindNews < 20){ 69 | //找新闻次数+1 70 | loopTimeToFindNews++; 71 | 72 | //进行下翻 73 | swipe(device.width / 2, device.height / 4 * 2, device.width / 2, device.height / 4, 1000); 74 | sleep(1000); 75 | 76 | //新闻条目 77 | newsItem = id("content").findOnce(); 78 | if(newsItem){ 79 | newsItem = newsItem.parent(); 80 | newsText = newsItem.child(0).text(); 81 | isFindNews = true; 82 | } 83 | } 84 | 85 | //找到新闻,点击阅读 86 | if(isFindNews){ 87 | lastNewsText = newsText; 88 | totalNewsReaded++; 89 | utils.boundsClick(newsItem); 90 | }else{ 91 | toast("20次滑动没有找到新闻,请检查新闻ID"); 92 | exit(); 93 | } 94 | } 95 | 96 | //阅读新闻 97 | function readNews(seconds){ 98 | 99 | //退出图集 100 | sleep(1000); 101 | if(id("i8").findOnce()){ 102 | return; 103 | } 104 | 105 | //滑动阅读新闻 106 | for(var i = 0 ;i < seconds/10 ;i++){ 107 | utils.swapeToRead(); 108 | } 109 | 110 | } -------------------------------------------------------------------------------- /autojs_script-master/看看赚.js: -------------------------------------------------------------------------------- 1 | const utils = require('common.js'); 2 | 3 | /** 4 | * 全局参数 5 | */ 6 | var lastNewsText="";//上一次新闻标题 7 | var totalNewsReaded = 0;//已经阅读的新闻条数 8 | var totalNewsOneTime = 50;//一次性阅读多少条新闻 9 | var loopTimeToFindNews=20;//找了多少次新闻找不到会退出 10 | var indexFlagText="刷新";//首页特有的标志文字 11 | 12 | /** 13 | * 主循环 14 | */ 15 | utils.wakeUp(); 16 | utils.launch("看看赚"); 17 | jumpToIndex(); 18 | signIn(); 19 | while(true){ 20 | //领取时段奖励 21 | getAward(); 22 | //找到一条新闻 23 | getOneNews(); 24 | //阅读新闻60s 25 | readNews(30); 26 | //返回新闻列表 27 | utils.backToIndex(indexFlagText); 28 | } 29 | 30 | //跳转到首页 31 | function jumpToIndex(){ 32 | //跳转到首页 33 | click(1,1919); 34 | } 35 | 36 | //签到 37 | function signIn(){ 38 | utils.UITextBoundsClick("任务"); 39 | sleep(2000); 40 | desc("签到").click(); 41 | sleep(2000); 42 | click(1,1919); 43 | } 44 | 45 | //领取时段奖励 46 | function getAward(){ 47 | utils.UITextBoundsClick("领取"); 48 | utils.UITextBoundsClick("忽略"); 49 | } 50 | 51 | // 获取一条新闻 52 | function getOneNews(){ 53 | 54 | //阅读超过50条,刷新页面 55 | if(totalNewsReaded > totalNewsOneTime){ 56 | totalNews = 0; 57 | click(1,1919); 58 | sleep(2000); 59 | } 60 | 61 | //上滑找新闻 62 | var isFindNews = false;//是否找到新闻 63 | var newsText = "";//新闻标题 64 | var newsItem;//新闻条目 65 | loopTimeToFindNews = 0;//循环次数 66 | while((!isFindNews || lastNewsText === newsText) && loopTimeToFindNews < 20){ 67 | //找新闻次数+1 68 | loopTimeToFindNews++; 69 | 70 | //进行下翻 71 | swipe(device.width / 2, device.height / 4 * 2, device.width / 2, device.height / 4, 1000); 72 | sleep(1000); 73 | 74 | //新闻条目 75 | newsItem = className("android.support.v4.view.ViewPager") 76 | .className("android.support.v4.view.ViewPager") 77 | .className("android.support.v7.widget.RecyclerView") 78 | .className("LinearLayout").findOnce(); 79 | if(newsItem){ 80 | newsText = newsItem.child(0).text(); 81 | isFindNews = true; 82 | } 83 | } 84 | 85 | //找到新闻,点击阅读 86 | if(isFindNews){ 87 | lastNewsText = newsText; 88 | totalNewsReaded++; 89 | newsItem.click(); 90 | }else{ 91 | toast("20次滑动没有找到新闻,请检查新闻ID"); 92 | exit(); 93 | } 94 | } 95 | 96 | //阅读新闻 97 | function readNews(seconds){ 98 | 99 | //滑动阅读新闻 100 | for(var i = 0 ;i < seconds/10 ;i++){ 101 | utils.swapeToRead(); 102 | } 103 | 104 | } -------------------------------------------------------------------------------- /autojs_script-master/红包头条.js: -------------------------------------------------------------------------------- 1 | const commons = require('common.js'); 2 | const templates = require('template.js'); 3 | 4 | templates.init({ 5 | appName:"红包头条", 6 | indexBtnText: "头条", 7 | indexFlagText:"头条", 8 | }); 9 | 10 | templates.run({ 11 | //签到 12 | signIn:function(){ 13 | 14 | }, 15 | //找出新闻的条目 16 | findNewsItem:function(){ 17 | var newsItem = id("ll_root").findOnce();; 18 | //判断是否是广告 19 | if(newsItem){ 20 | var adFlag = newsItem.child(1); 21 | if(adFlag && adFlag.text() == "广告"){ 22 | newsItem = null; 23 | } 24 | } 25 | return newsItem; 26 | }, 27 | //阅读页面是否应该返回 28 | isShouldBack:function(){ 29 | //不存在奖励,直接退出 30 | if(!id("circularProgressBar").findOnce()){ 31 | return true; 32 | } 33 | return false; 34 | } 35 | }); 36 | -------------------------------------------------------------------------------- /autojs_script-master/芒果看点.js: -------------------------------------------------------------------------------- 1 | const utils = require('common.js'); 2 | 3 | /** 4 | * 全局参数 5 | */ 6 | var lastNewsText="";//上一次新闻标题 7 | var totalNewsReaded = 0;//已经阅读的新闻条数 8 | var totalNewsOneTime = 50;//一次性阅读多少条新闻 9 | var loopTimeToFindNews=20;//找了多少次新闻找不到会退出 10 | 11 | /** 12 | * 全局控件ID 13 | */ 14 | var newsItemId = "tv_title";//新闻条目ID 15 | var indexFlagText="刷新";//首页特有的标志文字 16 | 17 | //开始刷新闻,主循环 18 | init(); 19 | signIn(); 20 | jumpToIndex(); 21 | while(true){ 22 | //领取时段奖励 23 | getAward(); 24 | //点击进入新闻 25 | getOneNews(); 26 | //阅读新闻60s 27 | readNews(60); 28 | //返回新闻列表 29 | utils.backToIndex(indexFlagText); 30 | } 31 | 32 | function init(){ 33 | utils.wakeUp(); 34 | utils.launch("芒果看点"); 35 | } 36 | 37 | function signIn(){ 38 | //点击任务 39 | var taskBtn = text("任务").findOnce(); 40 | if(taskBtn){ 41 | utils.boundsClick(taskBtn); 42 | } 43 | 44 | //点击签到 45 | utils.UIClick("iv_isqian"); 46 | 47 | //回到新闻 48 | click(1,1919); 49 | } 50 | 51 | //跳转到首页 52 | function jumpToIndex(){ 53 | 54 | //循环关闭所有的弹出框 55 | var flag = text(indexFlagText).findOnce(); 56 | while(!flag){ 57 | 58 | 59 | 60 | 61 | sleep(1000); 62 | flag = text(indexFlagText).findOnce(); 63 | } 64 | } 65 | 66 | //领取时段奖励 67 | function getAward(){ 68 | var timeAward = text("领取").findOnce(); 69 | if(timeAward){ 70 | utils.boundsClick(timeAward); 71 | sleep(1000); 72 | utils.UIClick("btn_cancel"); 73 | } 74 | } 75 | 76 | // 获取一条新闻 77 | function getOneNews(){ 78 | 79 | //阅读超过50条,刷新页面 80 | if(totalNewsReaded > totalNewsOneTime){ 81 | totalNews = 0; 82 | click(1,1919); 83 | sleep(2000); 84 | } 85 | 86 | //上滑找新闻 87 | var isFindNews = false;//是否找到新闻 88 | var newsText = "";//新闻标题 89 | loopTimeToFindNews = 0; 90 | while((!isFindNews || lastNewsText === newsText) && loopTimeToFindNews < 20){ 91 | //找新闻次数+1 92 | loopTimeToFindNews++; 93 | 94 | //进行下翻 95 | swipe(device.width / 2, device.height / 4 * 2,device.width / 2, device.height / 4, 1000); 96 | sleep(1000); 97 | 98 | //找到新闻item 99 | var newsItem = id(newsItemId).findOnce().parent(); 100 | if(newsItem){ 101 | //判断是不是广告,通过是否有阅读数量判断 102 | var adFlag = newsItem.child(1); 103 | if(adFlag && adFlag.text() == "广告"){ 104 | newsItem = null; 105 | }else{ 106 | newsText = newsItem.child(0).text(); 107 | isFindNews=true; 108 | } 109 | } 110 | } 111 | 112 | //找到新闻 113 | if(newsItem){ 114 | lastNewsText = newsText; 115 | totalNewsReaded++; 116 | newsItem.click(); 117 | }else{ 118 | toast("20次滑动没有找到新闻,请检查新闻ID"); 119 | exit(); 120 | } 121 | } 122 | 123 | //阅读新闻 124 | function readNews(seconds){ 125 | var times = seconds/10; 126 | 127 | //开始滑动 128 | for(var i = 1;i < times;i++){ 129 | //滑动阅读新闻 130 | utils.swapeToRead(); 131 | 132 | //不存在奖励,直接退出 133 | if(!id("ll_get_fruit").findOnce()){ 134 | return; 135 | } 136 | 137 | } 138 | } 139 | -------------------------------------------------------------------------------- /autojs_script-master/芝麻头条.js: -------------------------------------------------------------------------------- 1 | const utils = require('common.js'); 2 | 3 | utils.wakeUp(); 4 | utils.launch("芝麻头条"); 5 | 6 | //睡眠15s 7 | sleep(15000); 8 | 9 | 10 | /** 11 | * 所有的控件ID 12 | */ 13 | var xwid = "tv_title";//新闻标题的id,每次更新都会变更 14 | var btm1 = "tab_news";//底部1 新闻 15 | 16 | //开始刷新闻,主循环 17 | jumpToIndex(); 18 | while(true){ 19 | //领取时段奖励 20 | getAward(); 21 | //点击进入新闻 22 | getOneNews(); 23 | //阅读新闻60s 24 | readNews(60); 25 | //返回新闻列表 26 | backToIndex(); 27 | } 28 | 29 | //跳转到首页 30 | function jumpToIndex(){ 31 | //领取奖励 32 | var awardBtn = id("tv_draw_bonuses").findOnce(); 33 | if(awardBtn){ 34 | awardBtn.click(); 35 | } 36 | //跳转到首页 37 | id(btm1).click(); 38 | } 39 | 40 | //领取时段奖励 41 | function getAward(){ 42 | 43 | //自动领取时段奖励 44 | // var textOk = id("ll_timing").findOnce(); 45 | // if(textOk){ 46 | // textOk.click(); 47 | // } 48 | 49 | } 50 | 51 | 52 | 53 | // 获取一条新闻 54 | var lastNewsText="";//上一次新闻标题 55 | var totalNews = 0; 56 | function getOneNews(){ 57 | 58 | /** 59 | * 阅读超过50条,刷新页面 60 | */ 61 | if(totalNews > 50){ 62 | totalNews = 0; 63 | //刷新 64 | var refresh = id(btm1).findOnce(); 65 | if(refresh){ 66 | refresh.click(); 67 | sleep(2000); 68 | } 69 | } 70 | 71 | /** 72 | * 上滑找新闻 73 | */ 74 | var newsItem = false; 75 | var loopTime = 0;//循环次数 76 | var newsText = "";//新闻标题 77 | while((!newsItem || lastNewsText === newsText) && loopTime < 20){ 78 | loopTime++; 79 | 80 | //进行下翻 81 | swipe(device.width / 2, device.height / 4 * 2, 82 | device.width / 2, device.height / 4, 1000); 83 | sleep(1000); 84 | 85 | //找到阅读次数,这个是正规的新闻 86 | newsItem = id(xwid).findOnce(1); 87 | newsText = newsItem.text(); 88 | } 89 | 90 | /** 91 | * 找到新闻 92 | */ 93 | if(newsItem){ 94 | lastNewsText = newsText; 95 | totalNews++; 96 | }else{ 97 | toast("20次滑动没有找到新闻,请检查新闻ID"); 98 | exit(); 99 | } 100 | 101 | utils.boundsClick(newsItem); 102 | return newsItem; 103 | } 104 | 105 | //阅读新闻 106 | function readNews(seconds){ 107 | var times = seconds/5; 108 | 109 | //开始滑动 110 | for(var i = 1;i < times;i++){ 111 | swipe(device.width / 2, device.height / 5 * 3, 112 | device.width / 2, device.height / 4 * 1, 5000); 113 | } 114 | } 115 | 116 | //回到主页面 117 | function backToIndex(){ 118 | var indexBtn = false; 119 | while(!indexBtn){ 120 | back(); 121 | sleep(500); 122 | indexBtn = id(btm1).findOnce(); 123 | } 124 | } -------------------------------------------------------------------------------- /autojs_script-master/薪头条.js: -------------------------------------------------------------------------------- 1 | const utils = require('common.js'); 2 | 3 | /** 4 | * 全局参数 5 | */ 6 | var lastNewsText="";//上一次新闻标题 7 | var totalNewsReaded = 0;//已经阅读的新闻条数 8 | var totalNewsOneTime = 50;//一次性阅读多少条新闻 9 | var loopTimeToFindNews=20;//找了多少次新闻找不到会退出 10 | var indexFlagText="刷新";//首页特有的标志文字 11 | 12 | /** 13 | * 主循环 14 | */ 15 | utils.wakeUp(); 16 | utils.launch("薪头条"); 17 | jumpToIndex(); 18 | signIn(); 19 | while(true){ 20 | //领取时段奖励 21 | getAward(); 22 | //找到一条新闻 23 | getOneNews(); 24 | //阅读新闻60s 25 | readNews(30); 26 | //返回新闻列表 27 | utils.backToIndex(indexFlagText); 28 | } 29 | 30 | //跳转到首页 31 | function jumpToIndex(){ 32 | //跳转到首页 33 | click(1,1919); 34 | } 35 | 36 | //签到 37 | function signIn(){ 38 | utils.UITextBoundsClick("任务"); 39 | sleep(2000); 40 | click(1,1919); 41 | } 42 | 43 | //领取时段奖励 44 | function getAward(){ 45 | utils.UITextBoundsClick("领取"); 46 | } 47 | 48 | // 获取一条新闻 49 | function getOneNews(){ 50 | 51 | //阅读超过50条,刷新页面 52 | if(totalNewsReaded > totalNewsOneTime){ 53 | totalNews = 0; 54 | click(1,1919); 55 | sleep(2000); 56 | } 57 | 58 | //上滑找新闻 59 | var isFindNews = false;//是否找到新闻 60 | var newsText = "";//新闻标题 61 | var newsItem;//新闻条目 62 | loopTimeToFindNews = 0;//循环次数 63 | while((!isFindNews || lastNewsText === newsText) && loopTimeToFindNews < 20){ 64 | //找新闻次数+1 65 | loopTimeToFindNews++; 66 | 67 | //进行下翻 68 | swipe(device.width / 2, device.height / 4 * 2, device.width / 2, device.height / 4, 1000); 69 | sleep(1000); 70 | 71 | //新闻条目 72 | newsItem = className("android.support.v4.view.ViewPager") 73 | .className("android.support.v4.view.ViewPager") 74 | .className("android.support.v7.widget.RecyclerView") 75 | .className("RelativeLayout").findOnce(); 76 | if(newsItem){ 77 | newsText = newsItem.child(0).text(); 78 | isFindNews = true; 79 | } 80 | } 81 | 82 | //找到新闻,点击阅读 83 | if(isFindNews){ 84 | lastNewsText = newsText; 85 | totalNewsReaded++; 86 | newsItem.click(); 87 | }else{ 88 | toast("20次滑动没有找到新闻,请检查新闻ID"); 89 | exit(); 90 | } 91 | } 92 | 93 | //阅读新闻 94 | function readNews(seconds){ 95 | 96 | //滑动阅读新闻 97 | for(var i = 0 ;i < seconds/10 ;i++){ 98 | utils.swapeToRead(); 99 | } 100 | 101 | } -------------------------------------------------------------------------------- /autojs_script-master/趣头条.js: -------------------------------------------------------------------------------- 1 | const commons = require('common.js'); 2 | const templates = require('template.js'); 3 | 4 | 5 | templates.init({ 6 | appName:"趣头条" 7 | }); 8 | 9 | templates.run({ 10 | //签到 11 | signIn:function(){ 12 | commons.UITextBoundsClick("任务"); 13 | sleep(2000); 14 | click(1,1919); 15 | }, 16 | //找出新闻的条目 17 | findNewsItem:function(){ 18 | var newsItem = className("android.support.v4.view.ViewPager").className("LinearLayout").findOnce(); 19 | //判断是否是广告 20 | if(newsItem && newsItem.childCount() > 0){ 21 | var adFlag = newsItem.child(1); 22 | if(adFlag && adFlag.text() == "广告"){ 23 | newsItem = null; 24 | } 25 | } 26 | return newsItem; 27 | }, 28 | //阅读页面是否应该返回 29 | isShouldBack:function(){ 30 | //图集直接返回 31 | var imgItem = className("android.support.v4.view.ViewPager").className("ImageView").findOnce(); 32 | if(imgItem){ 33 | return true; 34 | } 35 | return false; 36 | } 37 | }); 38 | --------------------------------------------------------------------------------