1.需求
按照格式输入批量qq号,输入加好友间隔时间,脚本自动打开qq应用开始自动加好友,全程自动化操作。
输入qq号格式:
运行示意图:
2.代码
function carmiLogin () {
var carmi = getCarMi()
try {
const data = {"key": carmi}
http.__okhttp__.setTimeout(30000)
const result = http.post("http://121.41.10.129:8080/user/carmiLogin",data);
const html = result.body.string();
const obj = JSON.parse(html);
print(obj);
if (obj.code === 200) {
toastLog("卡密登录成功!")
return true;
}else{
toastLog(obj.msg)
return false;
}
} catch (e) {
toastLog("卡密登录异常:"+e)
return false;
}
}
//获取加好友的间隔时间
function getCarMi(){
var carMi = rawInput("请输入卡密");
if (carMi == null || carMi.trim()=='') {
alert("请输入卡密!");
return getCarMi();
}
return carMi;
}
print(111111)
carmiLogin();
print(222222)
var packName = "qq加好友";
// 检查无障碍服务是否已经启用,如果没有启用则跳转到无障碍服务启用界面,并等待无障碍服务启动;当无障碍服务启动后脚本会继续运行。
auto.waitFor();
//打开猫眼app
app.launchApp("QQ");
openConsole();
console.setTitle("QQ自动加好友!","#ff11ee00",30);
main();
function main() {
// var s = className("android.widget.ImageView").depth(12).findOne()
// var click11 = onClickMode(s,4);
// console.log("click11:"+click11)s
// while(!click("QQ号/QID/手机号/群")){
// }
//return
// if(!checkTime()){
// alert("超过测试时间 无法使用!");
// return
// }
// console.log(1234)
// return
// var suu = id("suu").exists();
// console.log("网络搜索!"+suu)
// id("suu").findOne().click();
// click(900, 520);
// click(1000, 1500);
// //1080 1920
// console.log("width"+device.width+"height:"+device.height)
// //id("ivTitleBtnLeft").findOne().click()
// var searchBtn= id("vwb").findOne();
// onClickMode(searchBtn,1);
// sleep(1000)
// setText("1396808517")
// sleep(1000)
// var vvu = id("vvu").findOne()
// var rectBtnBuy = vvu.bounds();
// var clickPosX = rectBtnBuy.centerX();
// var clickPosY = rectBtnBuy.centerY();
// console.log("clickPosX:"+clickPosX+"clickPosY:"+clickPosY)
// vvu.click();
// sleep(1000)
// click(clickPosX,clickPosY);
// sleep(1000)
// id("vvv").findOne().click()
// return;
// while(!click("网络查找")){
// var s = click("网络查找")
// console.log("s:"+s)
// }
// var s1 = click("3058035783")
// var s2 = click("3058035783",1)
// var s3 = click("3058035783",2)
// console.log("s1:"+s1)
// console.log("s2:"+s2)
// console.log("s3:"+s3)
var width = device.width;
var height = device.height;
var x = Math.floor(width*(900/1080)*100)/100
var y = Math.floor(height*(700/1920)*100)/100
console.log("x: "+x+" y:"+y);
//添加好友的间隔时间
var intervalTime = getIntervalTime();
console.log("intervalTime:"+intervalTime);
var qqstr = getAddQQ();
console.log("输入的qq号:"+qqstr);
var arr = qqstr.split('\n')
// for(var i = 0;i // var qq = arr[i]; // console.log("输入qq号:"+qq) // } // retur } //获取加好友的间隔时间 function getIntervalTime(){ var sellTime = rawInput("添加好友的间隔时间(单位:秒)", "3"); if (sellTime == null || sellTime.trim()=='') { alert("请输入添加好友的间隔时间!"); return getIntervalTime(); } return sellTime; } //获取待添加的qq号 function getAddQQ(){ var qqstr = rawInput("输入要待添加qq号"); if (qqstr == null || qqstr.trim()=='') { alert("请输入待添加qq号!"); return getAddQQ(); } return qqstr; } /** * * @param {按钮控件} btn * @param {适合本手机的点击模式} mode */ function onClickMode(btn, mode) { //print("mode=" + mode); //文本 var btnText = btn.text(); //坐标 var rectBtnBuy = btn.bounds(); var clickPosX = rectBtnBuy.centerX(); var clickPosY = rectBtnBuy.centerY(); if (1 == mode) { // print("\n这是xxx.click()点击,如果进入场次页,说明支持xxx.click()"); return btn.click(); } if (2 == mode) { // print("\n这是click()点击,如果进入场次页,说明支持click()"); return click(btnText); } if (3 == mode) { // print("\n这是text点击,如果进入场次页,说明支持text"); return text(btnText).click(); } if (mode == 4) { // print("\n这是click(x,y)点击,如果进入场次页,说明支持click(x,y)"); return click(clickPosX, clickPosY); } if (mode == 5) { // print("\n这是press点击,如果进入场次页,说明支持press"); return press(clickPosX, clickPosY, 20); } } function checkTime(){ var inputTime = '11-20 12:18'; //在这里使用输入的时间进行后续操作 //console.log("可使用时间:" + inputTime); var times = inputTime.split(" "); var time1 = times[0] var time2 = times[1] var monthDay= time1.split("-"); month = monthDay[0] - 1; day = monthDay[1]; var hourMinute= time2.split(":"); hour = hourMinute[0]; minute= hourMinute[1]; // 设置开抢时间 var year = new Date().getFullYear(); var second = 0; var msecond = 0; var startTimestamp = new Date(year, month, day, hour, minute, second, msecond).getTime(); // 减去 45ms 的网络延迟 startTimestamp = startTimestamp - 45; var startTime = convertToTime(startTimestamp); console.log("可使用时间:", startTime); var damaiTimestamp = getDamaiTimestamp(); //当前时间 大于指定日期 if(damaiTimestamp>startTimestamp){ return false; } return true } function getDamaiTimestamp() { return JSON.parse(http.get("https://mtop.damai.cn/gw/mtop.common.getTimestamp/", { headers: { 'Host': 'mtop.damai.cn', 'Content-Type': 'application/json;charset=utf-8', 'Accept': '*/*', 'User-Agent': 'floattime/1.1.1 (iPhone; iOS 15.6; Scale/3.00)', 'Accept-Language': 'zh-Hans-CN;q=1, en-CN;q=0.9', 'Accept-Encoding': 'gzip, deflate, br', 'Connection': 'keep-alive' } }).body.string()).data.t; } /** * * @param {时间戳} timestamp * @returns ISO 8601 格式的北京时间 */ function convertToTime(timestamp) { var date = new Date(Number(timestamp)); var year = date.getUTCFullYear(); var month = (date.getUTCMonth() + 1).toString().padStart(2, "0"); var day = date.getUTCDate().toString().padStart(2, "0"); var hours = (date.getUTCHours() + 8).toString().padStart(2, "0"); var minutes = date.getUTCMinutes().toString().padStart(2, "0"); var seconds = date.getUTCSeconds().toString().padStart(2, "0"); var milliseconds = date.getUTCMilliseconds().toString().padStart(3, "0"); var iso8601 = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`; return iso8601; }