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

(第一期)-自动化实现全自动加好友(以QQ可能想认识的人为例) 大家好,我是公众号张二狗笔记的狗哥~ 最近有不少网友说,之前的QQ可能想认识的人引流程序用不了,不支持最新版本的qq,问我有没有时间更新一下,刚好昨天夜晚有点时间就顺手更新了一下,最后把整个开发过程给大家一起分享一下吧 再编写这款程序之前我们先来展示一下添加效果图: 比起前几次更新,这次更新可以说是有史以来我耗时最多的一次了. 改写了ui框架之前用到的是html 这次改用xml加载的速度手机上可能看不出来什么,如果在模拟器或者云手机上来看,加载的速度有明显的不同.另外也程序改写了核心代码,之前写的各种判 阅读详情
AI摘要

本文介绍了一个使用autox.js实现的手机QQ自动批量加好友的脚本。用户可以设定QQ号码列表和加好友间隔时间,脚本将全程自动化地在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;
}


【极速拓展人脉】QQ全自动引流脚本:让你社交圈秒变大杂烩! 它会根据你事先设置的条件,比如兴趣爱好、地理位置等,帮你找到与你相投的潜在朋友。你只需要告诉它你想认识的类型人,它就能帮你找到一大堆匹配的好友,让你的社交圈子像彩虹一样绚丽多彩!感受一下这个天才级的工具带给你的无穷魅力!首先,设置你感兴趣的领域和地理位置,让脚本知道你想找的是什么类型的人。立即行动,让你的社交圈子秒变大杂烩,释放你的社交魅力!忘记那些乏味的日子,一探社交新天地,寻找与你志同道合的伙伴,打造属于你的社交帝国!赶紧行动起来,体验这个改变你社交游戏规则的全自动引流脚本,让你的社交圈子秒变大杂烩。 阅读详情

相关推荐

【脚本工具】QQ个人数据管理方法与脚本

企鹅用户的数据清理痛点 电脑QQ用户有一个长期的痛点,那就是QQ经常下载没有用的广告、聊天图片、文件缓存,占据大量磁盘空间,导致C盘爆掉。 网上有五花八门的清理方法,但都很散乱。就我搜索到的清理数据途径大概有几种: (1)删除特定群聊/私聊的聊天记录:直接在“消息管理器”中删除 (2)QQ中自带的“文件管理-个人文件夹清理” 默认放在一个叫Tencent Files\QQ号的文件夹下面,这个可以自定义。 (3)XX电脑管家等第三方的检测清理软件 没用过。我不想为了一个小

qq_41134363的博客 3819

自动发送qq消息的脚本

批量自动发送qq消息,群发,操作简单便捷; 启动qq聊天界面,设置好发送消息循环次数,双击vbs脚本,看结果吧 有可能被T哦

QQ前台无限加好友 艾叶QQ前台无限加好友软件 v1.0

艾叶QQ前台无限加好友软件是一款较新漏洞加好友软件,软件占用内存少,加人效率高,速度快。艾叶QQ前台无限加好友软件功能:软件主要有2个功能,分为:加快速和无限加打开软件

图像特征(一)——颜色特征(颜色直方图,颜色矩,颜色集,颜色聚合向量和颜色相关图)

本文主要是为了更好地理解图像特征,理解各方法的原理。转载请注明出处https://mp.csdn.net/console/editor/html/105090183 图像模式识别的一般步骤为:输入图像--图像预处理--特征提取--特征选择--图像分类--输出结果。 图像特征主要有:颜色特征、形状特征、纹理特征和空间关系特征。 本文主要介绍颜色特征,并给出matlab上实现的demo。 颜...

gloria_iris的博客 3万+

Zynq UltraScale+网络加速方案:用AXI Ethernet Subsystem实现2.5G吞吐量的配置秘籍

本文详细介绍了在Xilinx Zynq UltraScale+平台上使用AXI Ethernet Subsystem实现2.5Gbps网络吞吐量的配置方法。通过硬件设计优化、Vivado工程配置、Linux驱动调优及性能测试等关键步骤,为工业视觉和5G前传等高速网络应用提供可靠解决方案。

weixin_30485379的博客 614

告别裸奔MCU!手把手教你用MCP2515+STM32搭建稳定CAN总线通信(附完整代码)

本文详细介绍了如何使用MCP2515与STM32搭建稳定可靠的CAN总线通信系统,适用于汽车电子和工业控制领域。通过硬件架构设计、驱动层实现、数据收发实战及故障排查手册,帮助开发者快速掌握CAN通信技术,提升系统稳定性和开发效率。

weixin_28703489的博客 208

海康工业相机LabVIEW二次开发实战——参数配置优化与图像高效存储

本文详细介绍了海康工业相机在LabVIEW平台上的二次开发实战,重点解析了相机参数配置的优化方法与图像高效存储策略。通过剖析曝光、增益、触发模式等核心参数的设置逻辑,并结合生产者-消费者设计模式,指导开发者构建稳定、高效的图像采集与异步存储流程,有效提升工业视觉项目的开发效率与系统稳定性。

weixin_29306317的博客 221

STM32H743IIT6上LVGL移植实战:从零到触摸屏驱动的完整配置流程

本文详细记录了在STM32H743IIT6高性能MCU上,从零开始移植LVGL图形库到7寸RGB触摸屏的完整实战流程。内容涵盖工程搭建、显示与触摸驱动配置、LVGL核心优化及常见问题排查,重点讲解了如何利用STM32H743的硬件特性(如DMA2D、LTDC)提升GUI性能,为嵌入式GUI开发提供了一份详实的配置指南。

spark7igniter的博客 549

ABAQUS二次开发中创建SET

在ABAQUS中创建加载、边界条件时,需要使用set,创建set时需要使用对象集合对象中的Set函数,这个函数需要提供加入对象集合的列表,但这个对象列表好像并不能自行创建,只能通过ABAQUS各类对象集合中的findAt、getSequenceFromMask、getByBoundingSphere、getByBoundingCylinder或getByBoundingSphere函数得到,但这几个函数在直接使用PYTHON编程时都不太好用。这个函数返回一个字典,如下所示。

hohoyu的专栏 2482

海康VM加密狗无法识别常见问题排查

海康VM加密狗无法识别常见问题排查

视觉人机器视觉的博客 2710

从零到一:桌面宠物的硬件架构设计与工程实践

本文详细介绍了基于STM32F103C8T6主控平台的桌面宠物机器人硬件架构设计与工程实践。内容涵盖电源管理、舵机控制、PCB布局及系统调试等核心环节,为硬件爱好者提供从零到一的完整开发指南,助力打造稳定可靠的智能桌面伴侣。

alice7model的博客 1112

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: 基于自动化工具autox.js的抢票(猫眼)
下一篇: 网上商城、宠物商城源码(Java)
Java_wucao
博客等级 码龄11年 272粉丝 42原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Java_wucao

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

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

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

打赏作者

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

抵扣说明:

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

余额充值