auto.js的一些学习心得
2020-01-23 本文已影响0人
缘点点
昨天和今天把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)+"个");
}
}
}
}
}
}
最后希望大家不要去买什么所谓的脚本了,这些脚本的制作者大都是拿别人开源的代码来谋利,属于抄袭行为。至少也是会受到道德的谴责的~