小米内测自动答题脚本
为啥要搞这个脚本呢,是真的被恶心到了,我记得我还是从高二开始就用的小米,MIUI从以前的真香,变成BUG一堆、负优化的UI。买了个小米11,到手3个月真心被这系统恶心到了,越更新越辣鸡,什么哈曼音效砍了(MIUI 12.0.22),4600ma的电池用着和老手机没什么区别,1月份首发到手,结果现在4月初所谓的MIUI12.5还没出来,以前可以随便刷开发版,现在也要个申请,关键是tmd不让过,无法了……
这个脚本本来是打算为了答题申请内测,现在搞完反而没想法了,等用坏了以后就不用小米手机。
本脚本仅交流使用,不提供任何技术支持。

效果如下:

脚本运行环境是auto.js免费版4.0,看了半个小时直接开始撸了,附带采集功能,题库中没有的题目自动入库,代码如下:
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("下一题");
}
}不知道为啥,正则那里用了前置断言就报错……








