《学习强国》刷积分脚本

基于auto.js 编写的《学习强国》刷积分脚本

  1. 只刷阅读文章、视听学习。
  2. 只是模拟点击,封号应该不会(理论上哈,被封别找我!)。
  3. 只限制android系统。
  4. 只限于学习与交流,只分享我的学习过程!有问题可以私聊我!

准备工作

  1. android 手机一台
  2. 或者电脑模拟器
  3. 安装 auto.js app
  4. 请看完全文或者请从后面看起!

使用教学

  1. 打开auto.js app 点击侧边栏开启无障碍服务和悬浮窗,(这个过程需要手机一些权限,具体自己体会,反正能打开就行)。如图
  1. 打开悬浮窗退出应用会有个小窗。如图
  1. 怎么导入脚本?这个问题困扰我挺久的!最终找到最简单的方法: 将编写好的脚本文件 用微信发给自己,要打开auto.js app, 在微信会话中长按刚发给自己的脚本选择用其他应用打开,会弹出导入脚本,给脚本命名,这样导入脚本就导入好了。
  1. 最后点击点击脚本运行!见证奇迹!

最后总结

  1. 本人只在荣耀10测试和网易MUMU 模拟器实践过!其他没试过。

“ui”; var form = { type: null, offset: 0, cishu: 6, time: 60, } ui.layout( <vertical padding=”20″> <text gravity=”center” textSize=”18sp” textColor=”red” textStyle=”bold”> 《学习强国》辅助</text> <vertical> <text text=”提示: 用mumu模拟器可以边刷边玩电脑!手机是不能放在后台执行脚本的!”/> <text text=”注意: 使用前先把学习强国关闭,记住要删除进程!因为缓存机制会导致出错!”/> <text text=”仅用于学习交流!要爱党爱国家哦!”/> <text text=””/> </vertical> <vertical> <text text=”任务类型 :”/> <radiogroup id=”sel”> <radio id=”readVideo” text=”阅读文章和视听学习”></radio> <radio id=”read” text=”阅读文章”></radio> <radio id=”video” text=”视听学习”></radio> </radiogroup> </vertical> <vertical> <text text=”每个任务列表先下滑次数:”/> <input id=”offset” w=”*” marginLeft=”12″ padding=”12″ gravity=”left” text=”0″ inputType=”number”/> </vertical> <vertical> <text text=”每个任务执行次数(次):”/> <input id=”cishu” w=”*” marginLeft=”12″ padding=”12″ gravity=”left” text=”6″ inputType=”number”/> </vertical> <vertical> <text text=”进入详情等待时间(s):会加上10s随机数”/> <input id=”time” w=”*” marginLeft=”12″ padding=”12″ gravity=”left” text=”180″ inputType=”number”/> </vertical> <button id=”ok” w=”*” text=”立即执行”/> <button id=”stop” w=”*” text=”停止所有”/> </vertical> ); ui.stop.click(function(){ threads.shutDownAll(); engines.stopAll(); }); //指定确定按钮点击时要执行的动作 ui.ok.click(function(){ //通过getText()获取输入的内容 form.offset = ui.offset.getText(); form.cishu = ui.cishu.getText(); form.time = ui.time.getText(); if(!form.type){ toast(“请选择任务”) return; } if(form.offset<0){ toast(“次数必须大于等于0”) return; } if(form.cishu<=0){ toast(“次数必须大于0”) return; } if(form.time<=0){ toast(“等待时间必须大于0”) return; } log(form); try { var curThreads = threads.start(function(){ //在新线程执行的代码 if(form.type ===’readVideo’){ let view = init(); // 初始化 readTast(view.readListView,form.cishu,form.time,form.offset); videoTast(view.videoListView,form.cishu,form.time,form.offset); } if(form.type ===’read’){ let view = init(); // 初始化 readTast(view.readListView,form.cishu,form.time,form.offset); } if(form.type ===’video’) { let view = init(); // 初始化 videoTast(view.videoListView,form.cishu,form.time,form.offset); } curThreads.interrupt(); toast(“任务执行完毕!”); exit() }); } catch (error) { log(error); threads.shutDownAll() toast(“出现异常,请关闭应用重新执行脚本!”); exit(); // 有异常退出,结束脚本 } }); ui.read.on(“check”,function(check){ if(check){ form.type= “read”; } }); ui.video.on(“check”,function(check){ if(check){ form.type= “video”; } }); ui.readVideo.on(“check”,function(check){ if(check){ form.type= “readVideo”; } }); // 初始化 function init() { app.launchApp(“学习强国”); waitForPackage(“cn.xuexi.android”); sleep(5000); // 获取要闻和视频推荐两个listView let viewData = getReadVideoListView(initListView()); console.log(viewData); if (!viewData.readListView || !viewData.videoListView) { toast(“初始化失败!请关掉强国app,并清除强国进程,再尝试!”); exit(); } toast(“初始化成功!”); return viewData; } // 初始化ListView function initListView() { // 经验:切换页面会有缓存ListView 会导致判断不准确,所以干脆直接先让他缓存下来在判断是哪个页面再执行 // 学习首页 className(“android.widget.FrameLayout”).id(“home_bottom_tab_button_work”).findOne().click(); sleep(1500); // 跳到要闻 className(“android.widget.TextView”).text(“要闻”).findOne().parent().click(); sleep(1500); // 跳到视频推荐 className(“android.widget.FrameLayout”).id(“home_bottom_tab_button_contact”).findOne().click(); sleep(1500); let ListViews = className(“android.widget.ListView”).scrollable(true).find(); return ListViews } // 获取要闻和第一频道ListView function getReadVideoListView(ListViews) { // 经过测试那种利用id 或者和层级的兼容性贼差,反正他默认会缓存这几个默认的顺序,还不如直接记录 let list = []; ListViews.forEach(function (listView) { if(listView.findOne(className(“android.widget.TextView”).textMatches(/(.*央.*|.*人民日报.*|.*新华.*|.*学习.*)/))){ // 到这个里正常来说会缓存3个listView list.push(listView) } }) if(list.length ===3 ){ const data = { readListView: list[1], videoListView: list[2] } return data } return null } // 跳转到第一频道 function jumpVideo() { className(“android.widget.FrameLayout”).id(“home_bottom_tab_button_contact”).findOne().click(); sleep(1500); toast(“切换到第一频道”); } // 跳转到要闻 function jumpRead() { className(“android.widget.FrameLayout”).id(“home_bottom_tab_button_work”).findOne().click(); sleep(1500); // 跳到要闻 toast(“切换到要闻”); className(“android.widget.TextView”).text(“要闻”).findOne().parent().click(); } // 阅读文章 function readTast(view,num,delay,offset) { jumpRead(); // 跳到阅读文章 var cishu = 0; for(var i = 0; i<offset;i++){ // 向下滑动 view.scrollForward(); sleep(2000); } while(cishu < num){ var isClick = false; sleep(3000); view.scrollForward();//向下翻 if(view.childCount()>2&&view.child(1)){ console.log(‘child:’+ view.child(1)); isClick= view.child(1).click(); if(isClick){ cishu = cishu+1; var random = Math.floor(Math.random() * 10) log(‘random:’+ random); var delayTime = Number(random) + Number(delay) toast(‘点击进入详情!剩余’+delayTime+ ‘s’); log(‘delayTime:’+ delayTime); for(var i =1 ; i<=delayTime; i++){ var lastTime = delayTime – i; var lastCishu = num – cishu; if(lastTime%5===0){ toast(“正在等待模拟阅读,”+ lastTime +”s,剩余”+ lastCishu+”次”); } sleep(1000); // 考虑华为手机默认30会休眠所以用29s if(lastTime <=0){ sleep(1000); toast(‘返回!’); back(); } } } } } } // 视听学习任务 function videoTast(view, num,delay,offset) { jumpVideo(); // 跳到阅读视频 var cishu = 0; for(var i = 0; i<offset;i++){ // 向下滑动 view.scrollForward(); sleep(2000); } while(cishu < num){ var isClick = false; sleep(3000); view.scrollForward();//向下翻 if(view.childCount()>2&&view.child(1)){ console.log(‘child:’+ view.child(1)); isClick= view.child(1).click(); if(isClick){ cishu = cishu+1; var random = Math.floor(Math.random() * 10) log(‘random:’+ random); var delayTime = Number(random) + Number(delay) toast(‘点击进入详情!剩余’+delayTime+ ‘s’); log(‘delayTime:’+ delayTime); for(var i =1 ; i<=delayTime; i++){ var lastTime = delayTime – i; var lastCishu = num – cishu; if(lastTime%5===0){ toast(“正在等待模拟阅读,”+ lastTime +”s,剩余”+ lastCishu+”次”); } sleep(1000); // 考虑华为手机默认30会休眠所以用29s if(lastTime <=0){ sleep(1000); toast(‘返回!’); back(); } } } } } }

转自 https://my.oschina.net/u/3552880/blog/3134040

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇