小米内测自动答题脚本
为啥要搞这个脚本呢,是真的被恶心到了,我记得我还是从高二开始就用的小米,MIUI从以前的真香,变成BUG一堆、负优化的UI。买了个小米11,到手3个月真心被这系统恶心到了,越更新越辣鸡,什么哈曼音效砍了(MIUI 12.0.22),4600ma的电池用着和老手机没什么区别,1月份首发到手,结果现在4月初所谓的MIUI12.5还没出来,以前可以随便刷开发版,现在也要个申请,关键是tmd不让过,无法了…… 这个脚本本来是打算为了答题申请内测,现在搞完反而没想法了,等用坏了以后就不用小米手机。 本脚本仅交流使用,不提供任何技术支持。 效果如下: 脚本运行环境是auto.js免费版4.0,看了半个小时直接开始撸了,附带采集功能,题库中没有的题目自动入库,代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 toast("开始运行!"); // click("再次答题"); // click("同意协议并开始答题"); var myAPP = {}; // 唯一的全局变量myAPP myAPP.packageName = "com.xiaomi.vipaccount"; console.log('查找题目'); var patt = /,,.*(?=多选题|单选题)/g; for (let i = 0; i < 40; i++) { let title = textContains("选题").findOne().text(); console.log('?????????') var reg=new RegExp(patt); var result = reg.exec(title); // console.log('题目',title); title = result[0].replace(',,','').replace(' ',''); console.log(result[0]); // break; if (title == undefined) { continue; } console.log("题目:", title); // console.log(title.textMatches(patt)); let an; try { an = textContains("未选中").find(); } catch (error) { console.log('异常'); } /*增加题目到题库*/ let post = {}; post.question = title; for (let i = 0; i < an.length; i++) { let an_t = an[i].text().replace(',未选中', ''); if (i === 0) { post.answer_a = an_t; } else if (i === 1) { post.answer_b = an_t; } else if (i === 2) { post.answer_c = an_t; } else if (i === 3) { post.answer_d = an_t; } } // console.log(JSON.stringify(post)); let url = "http://192.168.15.227:8012/add_question"; let url_select = "http://192.168.15.227:8012/getQuestion?title=" + title; var r = http.get(url_select); var data_j = JSON.parse(r.body.string()); console.log('返回结果:', data_j); if(data_j.code === -1){ // 没有题库,直接提交到数据库 http.postJson(url, post); console.log(post); click(post.answer_a + ",未选中"); sleep(1000); click("下一题"); }else{ // data_j. var nc = Number(data_j.data.answer); console.log('答案',nc); if ((nc & 16) === 16) { console.log('点击',data_j.data.answer_a + ',未选中'); click(data_j.data.answer_a); } if ((nc & 32) === 32) { console.log('点击',data_j.data.answer_b + ',未选中'); click(data_j.data.answer_b); } if ((nc & 64) === 64) { console.log('点击',data_j.data.answer_c +',未选中'); click(data_j.data.answer_c); } if ((nc & 128) === 128) { console.log('点击',data_j.data.answer_d + ',未选中'); click(data_j.data.answer_d); } sleep(1000); click("下一题"); } } 不知道为啥,正则那里用了前置断言就报错…… ...