-
Notifications
You must be signed in to change notification settings - Fork 227
/
快手极速版.js
154 lines (140 loc) · 4.28 KB
/
快手极速版.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/**
* 3元起提,没有限制,只要求手机验证码
*/
const perVideoWatchTime=5//每隔视频观看10秒
const halfDeviceHeight=device.height/2
const halfDeviceWidth=device.width/2
const videoSwipeDistance=halfDeviceHeight-100//视频下滑的长度 px
// test()
// onlyRun()
//只允许本脚本时,将上行解除注释
function onlyRun(){
auto();
console.show()
log("开始快手极速版")
images.requestScreenCapture(false)
log("已获得截屏权限")
let totalTime=2*60*60 //刷2小时
run(totalTime)
}
function test(){
auto();
console.show()
log("开始快手极速测试")
images.requestScreenCapture(false)
log("已获得截屏权限")
click("我知道了")
exit()
}
var kuaiShou = {};
kuaiShou.main = function (totalTime) {
run(totalTime)
};
module.exports = kuaiShou;
function run(totalTime){
log("计划时长:"+totalTime)
launchApp()
let watchTime=0;
for(let i=1;totalTime>watchTime;i++){
if(text("拖动滑块").findOnce()){
log("出现验证码,结束")
runOver()
break;
}
let waitTime=perVideoWatchTime+random(-4,4)
log("本视频观看时长"+waitTime)
sleep(waitTime/2*1000);
likeAndfollow(7)
sleep(waitTime/2*1000);
watchTime+=waitTime
log("已看:"+i+"个视频 "+watchTime+"秒")
swipeVideo(i)
}
}
function launchApp(){
let isLauchApp=false
while(!isLauchApp){
log("尝试启动")
launchPackage("com.kuaishou.nebula")
sleep(10000)
let mesbox=id("com.kuaishou.nebula:id/a4v").findOnce()
if(mesbox){
mesbox.click()
}
mesbox=id("com.kuaishou.nebula:id/close").findOnce()
if(mesbox){
mesbox.click()
}
mesbox=text("我知道了").findOnce()
if(mesbox){
mesbox.click()
}
isLauchApp=id("com.kuaishou.nebula:id/circular_progress_bar").findOnce()
}
log("已启动")
}
//swipeCount,滑动视频的次数
function swipeVideo(swipeCount){
let offset=random(-100,0)
if(swipeCount%6==0){
// 双数的第6次下滑
swipe(halfDeviceWidth-random(-50,50), halfDeviceHeight+offset+(videoSwipeDistance/2),
halfDeviceWidth+random(-50,50), halfDeviceHeight+offset-(videoSwipeDistance/2), 30);
}else if(swipeCount%2==0){
//双数次上滑
swipe(halfDeviceWidth+random(-50,50), halfDeviceHeight+offset,
halfDeviceWidth+random(-50,50), halfDeviceHeight+offset+(videoSwipeDistance/2), 30);
}else {
//单数下滑
swipe(halfDeviceWidth-random(-50,50), halfDeviceHeight+offset+(videoSwipeDistance/2),
halfDeviceWidth+random(-50,50), halfDeviceHeight+offset-(videoSwipeDistance/2), 30);
}
}
//有range*2+1分之一的概率点喜欢,range*4+1分之一的概率点关注,关注必定喜欢
function likeAndfollow(range){
let isLike=random(-1*range,range)
if(isLike==0){
click(halfDeviceWidth,halfDeviceHeight)
sleep(50)
click(halfDeviceWidth,halfDeviceHeight)
log("双击喜欢")
let isFollow=random(-1*range,range)
if(isFollow==0){
text("关注").click()
log("点了关注")
}else{
// log("不是点关注的概率:"+isFollow)
}
}else{
// log("不是点喜欢的概率:"+isLike)
}
}
//是否已经不再有收益了
function isNoIncome(){
let isIncome=findIncomeIcon()
if(!isIncome){
sleep(6000)
isIncome=findIncomeIcon()
if(!isIncome){
log("等待6秒,不见收益红包")
return false
}
}
log("正在收益中")
return true;
}
//查找收入红包的图标,是收益中的返回true 否则返回false
function findIncomeIcon(){
let redBag=id(" com.kuaishou.nebula:id/circular_progress_bar").findOnce()
if(redBag){
let redBagBounds=redBag.bounds()
let screen=images.captureScreen();
// log(redBagBounds)
let p=images.findColorEquals(screen,"#f85050",redBagBounds.left,redBagBounds.top,redBagBounds.width(),redBagBounds.height())
return p?true:false;
}
return false;
}
function runOver(){
home()
}