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<arr.length;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;
}