autojs刷⽹课之⼀、刷视频篇
autojs刷⽹课之⼀、刷视频篇
本程序还有许多需要改进的地⽅,希望路过的各位⼤佬不吝赐教,感谢!
背景:⽹课,2021春,形式与政策Ⅱ,知到app
功能:
定时打开app
跳过⼴告
播放形式与政策
1.5倍速
⾃动关闭弹题
连播三个视频后⾃动退出
准备:vivo⼿机(Android 7以上),autojs 4.1.2,vs code
个⼈背景:本⼈⼤三,在学习⼤⼆的计算机课程,只学过c和c++(所以⽤其他语⾔肯定有许多不规范的地⽅,感谢雅正!)
最近接触了autojs(javaScript),虽然没学过javaScript,但是庆幸的是基本可以⽤c/c++的知识写js。
相关说明
1. 本学期课程设学习习惯分 ,需要有五天学习时间(看视频,不包括见⾯课)超过25min,⼀定不要⼀下刷完!
2. 本⼈⽔平⼗分有限,都是基于兴趣进⾏相关学习,所以程序不会⼗分完善,只达到⾃⽤的程度 ,使⽤博客记录过程,⼀⽅⾯反思进
步,另⼀⽅⾯希望能和你们互惠互助,共同进步。
3. 本程序分为两部分,此篇为第⼀部分,实现了刷视频的功能,第⼆部分为⾃动答题篇;
4. 功能流程 :使⽤autojs⾃带的定时(时灵时不灵),息屏时亮屏并解锁(上滑,6位数字密码),打开app,跳过⼴告,点击学习,
点击形式与政策,点击继续学习,点击继续播放,放⼤,1.25x,1.5x,循环检测弹题,有题就选择A并关闭(未选就不能关闭),循环检测是否是下⼀个视频(⾃动播放下个视频的时候下边那个控制栏会出现,倍速会变为1.0x,检测到1.0x就点击两下变为1.5x,所以放⼤4次就表⽰看到第四个视频了(三个视频是为了凑够25min),就⾃动退出app;
5. 关于第⼆部分的⾃动答题,其实章节课后题总共就8章×5=40道题,⽹上也很容易查到答案,但是本⼈是为了锻炼对autojs的使⽤,
同时为另⼀个答题做准备,所以才写的,第⼆部分涉及了三个⽅⾯ 1.使⽤python爬取答案,写⼊⽂档制作题库 2.使⽤python将txt⽂件的问题和答案变为json键值对格式 3.获取页⾯⽂字,匹配键值,获取答案,⾃动答题,有兴趣的可以继续关注;
6. 之后应该会写爬⽹页,企业每⽇上报,定时抢购,stm32,ss答题等,时间不定,先挖个坑;
7. 新⼿上路,请多 点赞收藏关注 ,⼗分感谢 。
1.息屏状态下亮屏
while(!device.isScreenOn()){
device.wakeUp();
sleep(500)
swipe(700,1900,700,450,300);//上滑
sleep(400);
//解锁密码123456
desc(1).findOne().click();
desc(2).findOne().click();
desc(3).findOne().click();
desc(4).findOne().click();
desc(5).findOne().click();
desc(6).findOne().click();
sleep(400);
}
2.设置悬浮窗
var w = floaty.rawWindow(
<frame gravity="center" bg="#CC999999">
<text padding="5 0 5 0" w="auto" h="auto" id="text" textColor='#FFFFFF'></text> </frame>
);
w.setPosition(150,5);
w.setTouchable(false);
ui.run(function(){
});
3.打开app,跳过⼴告,点击相关课程
while(currentPackage().search(/wisdomtree/i)==-1){//如果没有到任何匹配的⼦串,则返回 -1。
launchApp("知到");
ui.run(function(){
});
sleep(1000);
}
if(id('tv_skip').findOne().click()){
ui.run(function(){
});
sleep(500);
}
var widget =text("学习").findOne();
//获取其中⼼位置并点击
click(widget.bounds().centerX()+random(0,10), widget.bounds().centerY()-40);
ui.run(function(){
});
sleep(4000);
如何启用javascript功能
if(id('rl_credit_all_info').findOne().click()){
ui.run(function(){
});
sleep(2000);
}
id("continue_study_btn").findOne().click();
sleep(500);
click(600,600);
ui.run(function(){
});
sleep(1000);
var number =0
device.MusicMaxVolume()/100* number)
click(800,800);sleep(500);
click(1000,800);
ui.run(function(){
});
4.弹题与倍速
/*思路:
问题⼀:弹题
⼀直检测,是否有题,有题就答
问题⼆:怎么调第⼆次倍速
1.间隔时间段后检测倍速
2.不调倍速
问题三:怎么判断三个视频播放完毕
第四次调倍速就退出脚本
*/
n=1;t=0;
while(true){
if(text('A').findOnce()){
sleep(500)
click("A");
sleep(1000)
click("关闭")
sleep(1000)
toast('关闭'+ n +'个弹题');
n=n+1;
}
if(text('1.0x').findOnce()){
click("1.0x")
t+=1;
sleep(500);
click("1.25x");sleep(500);
ui.run(function(){
});
}
//if(t == 3) 。。。
}
5.结束视频
if(t ==4){
if(id('ijk_layout_controller_cover_play_layout').findOnce().click()){
ui.run(function(){
});
}
back()
sleep(500);
back()
sleep(500);
if(id('positiveButton').text("确定").findOnce()){
log('确定退出');
click("确定")
}
back()
sleep(500);
back()
sleep(500);
home()
exit()
}
总结
写东西果然很难啊,特别是码代码的习惯特别不好,导致整理的时候要花费很长时间,注释也懒得写了,感觉都是很简单的语句,看不懂就看功能流程哈,再看不懂就评论,我看到就会回复的。
全部代码在
坚持就是胜利!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。