QQ自动批量加好友(手机端)

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;
}


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java_wucao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值