auto.js的一些学习心得

昨天和今天把auto.js好好学和实践了一遍

事情的源头,是发现朋友圈有人把自动抢红包的脚本卖28元一个,我问了一下效果,发现就是普通的自动领取,能卖这个价钱实话真的很惊讶,然后我便想自己来写一写这样的脚本到底有多难写。

结果呢? 在刚开始学的时候便发现网上已经有不少开源的抢红包脚本了,大都都是AccessibilityService写的,已经很完善了,说实话,这种拿开源代码来赚钱的行为真的让人很不齿。


由于AccessibilityService的语言我没怎么学过,不太懂,我便选择用以JS为开发语言的auto.js,初期遇到的困难还是不少的,因为不是很懂语法。慢慢熟悉后,做的还算OK。代码也贴上来吧,有兴趣的可以看一看,不复杂.

auto();
var x = 0.63;//开的位置占屏幕长度的百分比 从上到下算起
var time1 = 0;//点“开”前等待时间,单位毫秒
var time2 = 0;//抢完红包后返回的等待时间,单位毫秒
var i = 0;
// 设备信息
var WIDTH = device.width, 
    HEIGHT = device.height, 
    TYPE = device.brand + ' ' + device.model;
device.keepScreenOn();
toast('欢迎使用');
// 获取截图权限
if (!requestScreenCapture()) {
    toast('请求截图失败,程序结束');
    exit();
}
 
var lineHeight; // 每行消息的高度
var white = 255; // 消息行背景色
var gray = 153; // 文字的颜色
var totalCount = 0; // 总共获取的红包数量
events.observeNotification();
events.onNotification(function(notification){
    printNotification(notification);
    
})
;

toast("监听中,请在日志中查看记录的通知及其内容");
function printNotification(notification){
    log("通知文本: " + notification.getText());
    log("通知时间: " + new Date(notification.when));
    log("通知摘要: " + notification.tickerText);
    if (notification.getText()=="[微信红包]")
    {
        sleep(500);
        swipe(500,10,500,2000,2000);
        sleep(500);
        click("[微信红包]");
        sleep(500);
        var chat = captureScreen();
            for (let k = parseInt(HEIGHT * 0.9); k > parseInt(HEIGHT * 0.1); k--) {
                var point = images.pixel(chat, parseInt(WIDTH * 0.5), k);
                var red = colors.red(point),
                    green = colors.green(point),
                    blue = colors.blue(point);
                if (Math.abs(red - 250) + Math.abs(green - 158) + Math.abs(blue - 59) <= 15) {
                    // 找到红包
                    click(parseInt(WIDTH * 0.5), k);
                    sleep(800);
                    // 寻找“开”
                    chat = captureScreen();
                    var count = 0;
                    for (let y = parseInt(HEIGHT * 0.4); y < parseInt(HEIGHT * 0.8); y++) {
                        var point = images.pixel(chat, parseInt(WIDTH * 0.5), y);
                        var red = colors.red(point),
                            green = colors.green(point),
                            blue = colors.blue(point);
                        if (Math.abs(red - 235) + Math.abs(green - 205) + Math.abs(blue - 153) <= 15) {
                            count += 1;
                        }
                    }
                    if (count > HEIGHT * 0.4 * 0.1) {
                        //“开”前等待
                        sleep(time1);
                        //有“开”,点击!
                        click(parseInt(WIDTH * 0.5), parseInt(HEIGHT * x));
                        sleep(1000);
                        toast("已按下“開”");
                        //“开”后等待
                        sleep(time2);
                        click(10,HEIGHT * 0.05);
                        if(!go){
                            toast("脚本已退出,感谢使用");
                            exit();
                        }else{
                            toast("本次运行已抢红包"+(++i)+"个");
                        }   
                    }
                }
            }
    }
}

最后希望大家不要去买什么所谓的脚本了,这些脚本的制作者大都是拿别人开源的代码来谋利,属于抄袭行为。至少也是会受到道德的谴责的~

你可能感兴趣的:(auto.js的一些学习心得)