auto.js 实现信息发送、QQ点赞、微信点赞、健康日报签到

auto.js开发文档

点击学习

安装total control

total control 用于手机投屏在电脑屏幕上

在手机端安装auto.js apk

链接:https://pan.baidu.com/s/11aYh0vy4d-X9bFJtCse5rQ
提取码:life
复制这段内容后打开百度网盘手机App,操作更方便哦

安装vscode

(1)安装完成后,在商店内输入chinese,选择中文安装,快捷键 ctrl+shirt+p 输入configure 选择zh-ch,重启即可
(2)在商店输入 hyb1996,选择第一个免费版的
(3)快捷键 ctrl+shirt+p 输入auto.js server running
(4)快捷键 ctrl+shirt+p 输入auto.js start server
(8)打开手机端auto.js app 点做上讲选择连接电脑。
(6)输入电脑端ip(记住一定要在一个局域网上,比如手机和电脑连的WIFI是同一个)
在这里插入图片描述

短信多条发送

while(true){
    
    
var 文本框 = id("input").findOne();
文本框.setText("your name");
var 发送 = id("fun_btn").findOne();
发送.click()
}

QQ点赞

"auto";

function 下滑(){
    
    
  className("AbsListView").scrollable().scrollForward();
}

function (){
    
    
  className("ImageView").desc("赞").click();
}

function 显示更多(){
    
    
  for(let i = 0; i < 2;i++){
    
    
    click("显示更多");
  }
}

toast("请打开自己的资料页,点击点赞图标");
sleep(100);

while(notStopped()){
    
    
  for(let i = 0; i < 10; i++){
    
    
    ();
  }
  显示更多();
  下滑();
}

微信点赞

while(true){
    
    
    dianzan();
}
 
// 点赞当前页面的动态
function dianzan(){
    
    
    // 这里是需找到可以滚动的控件:ListView,className是不会改变的,这样写出来的程序会比较稳定
    var scroll=className("ListView").findOne();
    // 子控件
    var scroll_thing=scroll.children();
    // 遍历子控件
    scroll_thing.forEach((item,position)=>{
    
    
        var comment = item.findOne(desc("评论"));
        if(comment){
    
    
            comment.click();
            sleep(200)
            // 根据当前的选择器所确定的筛选条件,对屏幕上的控件进行搜索,如果找到符合条件的控件则返回该控件;否则返回null
            click("赞")
            sleep(500);
        }
    });
    // 直接调用向下滚动的方法
    scrollDown();
    sleep(1000);
}

健康日报填写

// auto;
// var packageName  = getPackageName("微信");
// openAppSetting(packageName);
// var close = className("android.widget.Button").id("right_button").findOne().click();
// log(close);
// sleep(100);
// var cl2 = className("android.widget.Button").text("强行停止").findOne();
// console.log(cl2);
// cl2.click();
// sleep(200);
var s = "学生工作在线"; 
launchApp("微信");
sleep(3000)

// var sousuo = packageName("com.tencent.mm").id("f8y").findOne(2000);//进行搜索

var sousuo = className("android.widget.ImageView").id("f8y").findOne(2000);//进行搜索
log(sousuo);
if(sousuo!=null){
    
    
    click(sousuo.bounds().centerX(),sousuo.bounds().centerY());
}

sleep(2000);
setText("0",s);
sleep(2000)
 var nyist = className("android.widget.TextView").text(s).findOnce(0);
 log(nyist);
if(nyist==null) exit();
 click(nyist.bounds().centerX(),nyist.bounds().centerY());
sleep(500);
var jiankang = className("android.widget.TextView").text("晨午日报").findOne(2000);
console.log(jiankang);
click(jiankang.bounds().centerX(),jiankang.bounds().centerY());
sleep(500);
var ribao = className("android.widget.TextView").text("健康日报").findOne(2000);
console.log(ribao);
click(ribao.bounds().centerX(),ribao.bounds().centerY());

sleep(2000);
var ribao = className("android.widget.RadioButton").text("在校").findOne(2000);
console.log(ribao);

ribao.click();
log(device.width);
log(device.height)
swipe(300,1000,300,1,1000);
swipe(300,1000,300,1,1000);
// var sumit =className("android.view.View").id("submit").findOne(2000);
var sumit =className("android.view.View").text("提交").findOne(2000);
log(sumit);
if(sumit==null){
    
    
    exit();
}
click(sumit.bounds().centerX(),sumit.bounds().centerY());
sleep(500);
click("确定");

home();

叠猫猫

/**
 * 淘宝+京东双十一活动脚本
 * 支持淘宝\支付宝\京东任务自动执行
 * 
 * Author: Hyue418
 * Date: 2020/10/21
 * Time: 21:16
 * Versions: 2.1.0
 * Github: https://github.com/hyue418
 */

try {
    
    
    auto();
} catch (error) {
    
    
    toast("请手动开启无障碍并授权给Auto.js");
    sleep(2000);
    exit();
}

//初始化参数
versions = 'V2.1.0';
speed = 1;
float = 1.25;
patNum = 0;
swipeTips = "滑啊滑啊滑啊滑";
taskChooseList = ["淘宝赚喵币", "淘宝拍猫猫", "支付宝赚喵币", "京东全民营业"];
taobaoActivityData = "taobao://pages.tmall.com/wow/z/hdwk/act-20201111/index";
activityActivityData = "alipays://platformapi/startapp?appId=68687502";

height = device.height;
width = device.width;
setScreenMetrics(width, height);

console.show();
log("淘宝+京东双十一活动脚本" + versions + "\n");
log("脚本执行期间请勿手动点击按钮");
log("=========================");
log("GitHub: https://github.com/hyue418");
log("Powered By Hyue418");
log("=========================");
alert("【淘宝+京东双十一活动脚本 " + versions + "】", "脚本执行过程请勿手动点击按钮,否则脚本执行可能会错乱,导致任务失败\n\n执行淘宝任务时请确保使用低版本淘宝(V9.5及以下),否则无法获取奖励\n\n最新版脚本请到GitHub获取\nGitHub: https://github.com/hyue418\n\nPowered By Hyue418");
//开始执行任务弹窗
taskChoose();
log("GitHub: https://github.com/hyue418");
log("Powered By Hyue418");
alert("任务已完成", "所有任务貌似都做完啦!\n若仍有任务请重新运行噢!\n\nGitHub: https://github.com/hyue418\nPowered By Hyue418");

/**
 * 任务选择
 */
function taskChoose() {
    
    
    var options = dialogs.multiChoice("请选择需要执行的任务", taskChooseList);
    if (options == '') {
    
    
        toastLog("脚本已退出");
        exit();
    }
    //选中拍猫猫时弹出次数选择
    if (options.indexOf(1) > -1) {
    
    
        var frequencyOptions = [10, 30, 50, 100, 200];
        var i = dialogs.select(
            "请选择拍猫猫次数",
            frequencyOptions
        );
        if (i == -1) {
    
    
            toastLog("脚本已退出");
            exit();
        }
        //拍猫次数加随机数,向下取整
        patNum = Math.floor(ramdomByFloat(frequencyOptions[i]));
        toastLog("选择拍猫猫" + frequencyOptions[i] + "次,加随机数至" + patNum + "次");
    }
    runOptions(options);
}

/**
 * 执行选中任务
 * @param options 选项数组
 */
function runOptions(options) {
    
    
    options.forEach(option => {
    
    
        switch (option) {
    
    
            case 0:
                //执行淘宝任务
                var taskList = ['签到', '领取', '去浏览', '去搜索', '去观看', '领取奖励', '去完成'];
                log("=====开始执行" + taskChooseList[option] + "=====");
                runTaobao("手机淘宝", taobaoActivityData, taskList);
                break;
            case 1:
                //执行拍猫猫任务
                log("=====开始执行" + taskChooseList[option] + "=====");
                options.indexOf(0) > -1 ? patCat(patNum, 1) : patCat(patNum, 2);
                break;
            case 2:
                //执行支付宝任务
                var taskList = ['签到', '逛一逛'];
                log("=====开始执行" + taskChooseList[option] + "=====");
                activityData = "alipays://platformapi/startapp?appId=68687502";
                runTaobao("支付宝", activityActivityData, taskList);
                break;
            case 3:
                //执行京东任务
                var taskList = ['签到', '去完成'];
                log("=====开始执行" + taskChooseList[option] + "=====");
                runJd(taskList);
                break;
            default:
                break;
        }
    });
}

/**
 * 淘宝活动脚本,兼容淘宝&支付宝
 * @param appName 
 * @param activityData 
 * @param taskList 
 */
function runTaobao(appName, activityData, taskList) {
    
    
    var i = j = 0;
    toastLog("打开【" + appName + "】活动页");
    app.startActivity({
    
    
        action: "VIEW",
        data: activityData
    })
    randomSleep(1000 * speed);
    className("android.widget.Button").text("赚喵币").waitFor()
    randomSleep(1000 * speed);
    if (!textContains("累计任务奖励").exists()) {
    
    
        clickContent("赚喵币");
    }
    randomSleep(1500 * speed);
    if (className("android.widget.Button").text("领取奖励").exists()) {
    
    
        clickContent("领取奖励");
        randomSleep(200 * speed);
        log("领取奖励成功");
    }
    randomSleep(1500 * speed);
    taskList.forEach(task => {
    
    
        while (textContains(task).exists()) {
    
    
            var button = text(task).findOnce(j);
            if (button == null) {
    
    
                break;
            }
            log("开始做第" + (i + 1) + "次任务");
            switch (task) {
    
    
                case '去搜索':
                case '逛一逛':
                case '去完成':
                    log("开始【" + task + "】任务")
                    clickButton(button);
                    randomSleep(3000 * speed);
                    if (textContains("复制链接").exists()) {
    
    
                        log("跳过分享任务");
                        j++;
                        i++;
                        back();
                        sleep(200 * speed);
                        back();
                        break;
                    }
                    if (textContains("淘宝特价版送红包").exists()) {
    
    
                        log("跳过打开APP任务");
                        j++;
                        i++;
                        back();
                        break;
                    }
                    toast(swipeTips);
                    randomSwipe();
                    randomSleep(5000 * speed);
                    toast(swipeTips);
                    randomSwipe();
                    randomSleep(6000 * speed);
                    toast(swipeTips);
                    randomSwipe();
                    descContains("任务完成").findOne(8000 * speed);
                    randomSleep(1000 * speed);
                    i++;
                    log("已完成");
                    back();
                    //支付宝任务返回后需要点击确认按钮
                    if (appName == '支付宝') {
    
    
                        randomSleep(2000 * speed);
                        clickContent('好的,我知道了');
                    }
                    break;
                case '去观看':
                case '去浏览':
                    log("开始【" + task + "】任务")
                    randomSleep(500 * speed);
                    clickButton(button);
                    randomSleep(3000 * speed);
                    if (!textContains("跟主播聊").exists() || !textContains("赚金币").exists()) {
    
    
                        toast(swipeTips);
                        randomSwipe();
                        randomSleep(3500 * speed);
                        toast(swipeTips);
                        randomSwipe();
                        randomSleep(5500 * speed);
                        toast(swipeTips);
                        randomSwipe();
                    } else {
    
    
                        randomSleep(15000 * speed);
                    }
                    textContains("全部完成").findOne(8000 * speed);
                    randomSleep(1000 * speed);
                    i++;
                    log("已完成")
                    back();
                    break;
                case '领取奖励':
                case '签到':
                case '领取':
                    clickButton(button);
                    randomSleep(1500 * speed);
                    log("【" + task + "】成功")
                    //支付宝任务签到后需要点击确认按钮
                    if (appName == '支付宝') {
    
    
                        clickContent('好的,我知道了');
                    }
                    break;
                default:
                    log("跳过")
                    break;
            }
            randomSleep(2000 * speed);
        }
    });
    toastLog("【" + appName + "】任务已完成");
    log("=========================");
}

/**
 * 京东活动脚本
 */
function runJd(taskList) {
    
    
    var i = j = 0;
    var activityButton = "浮层活动";
    launch("com.jingdong.app.mall");
    randomSleep(2000 * speed);
    if (!descContains(activityButton).exists()) {
    
    
        alert("温馨提示", "首页没有找到【全民营业】活动入口浮层\n请手动打开活动页,进入后脚本会自动执行");
    } else {
    
    
        clickContent(activityButton, "desc");
        log("正在打开【京东】活动页");
        randomSleep(300 * speed);
        //部分账号首页的活动浮层默认是收起状态,再次点击(有时候会点击失败,所以用while)
        while (descContains(activityButton).exists()) {
    
    
            clickContent(activityButton, "desc");
            randomSleep(300 * speed);
        }
        toastLog("若页面有弹窗,请手动关闭");
        randomSleep(5000 * speed);
    }
    text("领金币").waitFor();
    clickContent("领金币");
    log("展开任务列表");
    randomSleep(1000 * speed);
    //未打开任务列表则再次尝试点击
    while (!textContains("去完成").exists() && !textContains("已完成").exists()) {
    
    
        clickContent("领金币");
        randomSleep(300 * speed);
    }
    taskList.forEach(task => {
    
    
        while (textContains(task).exists()) {
    
    
            var button = text(task).findOnce(j);
            if (button == null) {
    
    
                break;
            }
            log("开始做第" + (i + 1) + "次任务");
            switch (task) {
    
    
                case '签到':
                    jdClickButton(button);
                    log("签到成功");
                    i++;
                    randomSleep(1000 * speed);
                    break;
                case '去完成':
                    jdClickButton(button);
                    randomSleep(3000 * speed);
                    if (textContains("口令").exists() && textContains("取消").exists()) {
    
    
                        log("跳过助力任务");
                        j++;
                        i++;
                        clickContent("取消");
                        randomSleep(1000 * speed);
                        break;
                    }
                    //若未点击成功,则再次点击
                    while (textContains(task).exists()) {
    
    
                        jdClickButton(button);
                        randomSleep(300 * speed);
                    }
                    if (textContains("任意浏览").exists() || textContains("任意加购").exists() || textContains("联合开卡").exists() || textContains("商圈红包").exists()) {
    
    
                        log("跳过任务");
                        j++;
                        i++;
                        back();
                        randomSleep(500 * speed);
                        break;
                    }
                    if (textContains("宠汪汪").exists() || textContains("京喜财富岛").exists() || textContains("天天加速").exists()) {
    
    
                        randomSleep(10000 * speed);
                    } else {
    
    
                        randomSleep(2500 * speed);
                        toast(swipeTips);
                        randomSwipe();
                        randomSleep(2200 * speed);
                        toast(swipeTips);
                        randomSwipe();
                        randomSleep(3500 * speed);
                        toast(swipeTips);
                        randomSwipe();
                    }
                    descContains("获得").findOne(8000 * speed);
                    randomSleep(500 * speed);
                    i++;
                    log("已完成");
                    back();
                    randomSleep(4000 * speed);
                    break;
                default:
                    log("跳过")
                    break;
            }
        }
    });
    toastLog("【京东】任务已完成");
    log("=========================");
}

/**
 * 拍猫猫任务
 * @param num 拍猫猫次数
 * @param type 任务执行类型:1当前页面执行,2打开淘宝APP执行
 */
function patCat(num, type) {
    
    
    if (type == 1) {
    
    
        clickContent("关闭");
    } else if (type == 2) {
    
    
        toastLog("打开【淘宝】活动页");
        app.startActivity({
    
    
            action: "VIEW",
            data: taobaoActivityData
        })
    }
    log("开始【拍猫猫】");
    if (num == 0) {
    
    
        return true;
    }
    toastLog("正在疯狂撸猫中...");
    for (var i = 0; i < num; i++) {
    
    
        clickContent("我的猫,点击撸猫", "text", 100);
    }
    toastLog("【拍猫猫】任务已完成,共拍猫" + num + "次");
    log("=========================");
}

/**
 * 通过文字内容模拟点击按钮
 * @param content 按钮文字内容
 * @param type 点击类型,默认为text点击
 * @param sleepTime 等待时间,默认1000毫秒
 */
function clickContent(content, type, sleepTime) {
    
    
    var type = type || "text";
    var sleepTime = sleepTime || 1000;
    sleep(sleepTime * float * speed);
    if (type == "text") {
    
    
        var button = text(content).findOne();
    } else {
    
    
        var button = desc(content).findOne();
    }
    clickButton(button);
    return button;
}

/**
 * 根据控件的坐标范围随机模拟点击
 * @param button 
 */
function clickButton(button) {
    
    
    var bounds = button.bounds();
    press(random(bounds.left, bounds.right), random(bounds.top, bounds.bottom), random(50, 350));
}

/**
 * 根据控件的坐标范围随机模拟点击(京东用)
 * 京东任务按钮有圆角,通用的随机点击方法容易点出圆角外导致点击失效,此处做修正
 * @param button 
 */
function jdClickButton(button) {
    
    
    var bounds = button.bounds();
    var width = bounds.right - bounds.left;
    press(random(bounds.left + width / 5, bounds.right - width / 5), random(bounds.top, bounds.bottom), random(50, 350));
}

/**
 * 根据float倍数sleep随机时间
 * @param time 
 */
function randomSleep(time) {
    
    
    sleep(ramdomByFloat(time));
}

/**
 * 随机滑动
 */
function randomSwipe() {
    
    
    smlMove(ramdomByFloat(width / 2), ramdomByFloat(height / 1.5), ramdomByFloat(width / 2), ramdomByFloat(height / 4), ramdomByFloat(800));
}

/**
 * 范围随机数生成
 * @param min 
 * @param max 
 */
function random(min, max) {
    
    
    return Math.round(Math.random() * (max - min)) + min;
}

/**
 * 根据float生成随机数
 * @param number 
 */
function ramdomByFloat(number) {
    
    
    return random(number, number * float);
}

/**
 * 仿真随机带曲线滑动 
 * @param qx 起点x轴坐标
 * @param qy 起点y轴坐标
 * @param zx 终点x轴坐标
 * @param zy 终点y轴坐标
 * @param time 滑动时间,毫秒
 */
function smlMove(qx, qy, zx, zy, time) {
    
    
    var xxy = [time];
    var point = [];
    var dx0 = {
    
    
        "x": qx,
        "y": qy
    };
    var dx1 = {
    
    
        "x": random(qx - 100, qx + 100),
        "y": random(qy, qy + 50)
    };
    var dx2 = {
    
    
        "x": random(zx - 100, zx + 100),
        "y": random(zy, zy + 50),
    };
    var dx3 = {
    
    
        "x": zx,
        "y": zy
    };
    for (var i = 0; i < 4; i++) {
    
    
        eval("point.push(dx" + i + ")");
    };
    for (let i = 0; i < 1; i += 0.08) {
    
    
        xxyy = [parseInt(bezierCurves(point, i).x), parseInt(bezierCurves(point, i).y)];
        xxy.push(xxyy);
    }
    gesture.apply(null, xxy);
};

function bezierCurves(cp, t) {
    
    
    cx = 3.0 * (cp[1].x - cp[0].x);
    bx = 3.0 * (cp[2].x - cp[1].x) - cx;
    ax = cp[3].x - cp[0].x - cx - bx;
    cy = 3.0 * (cp[1].y - cp[0].y);
    by = 3.0 * (cp[2].y - cp[1].y) - cy;
    ay = cp[3].y - cp[0].y - cy - by;

    tSquared = t * t;
    tCubed = tSquared * t;
    result = {
    
    
        "x": 0,
        "y": 0
    };
    result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x;
    result.y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp[0].y;
    return result;
};

猜你喜欢

转载自blog.csdn.net/qq_43573663/article/details/109506816