Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1112|回复: 0
打印 上一主题 下一主题

auto.js的使用以及薅羊毛插件示例

[复制链接]

1269

主题

2064

帖子

7933

积分

认证用户组

Rank: 5Rank: 5

积分
7933
跳转到指定楼层
楼主
发表于 2021-1-18 19:11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Qter 于 2021-1-18 19:12 编辑

https://www.52pojie.cn/thread-1324180-1-1.html
https://github.com/JavisPeng/taojinbi

https://zhuanlan.zhihu.com/p/72319859

auto.js简介什么是auto.js
auto.js是一个支持无障碍服务的Android平台上的JavaScript IDE,可以编写各种自动化脚本,它主要有以下优点:
  • 无需root:基于无障碍服务;
  • 基于控件:以坐标为基础的按键精灵、脚本精灵很容易出现分辨率问题,而以控件为基础的Auto.js则没有这个问题;
  • 上手简单:使用javascript编写,支持中文变量名;
  • 可打包 :可以将JavaScript打包为apk文件,这一点可以简化用户操作,对上了年纪的用户很重要;
另外auto.js还有结合Tasker、自动布局分析、生成简单代码等功能,详见官方文档,这里就不搬运了~
auto.js能做什么
auto.js可以替代用户做一些手机操作,比如以下脚本:
  • 一键收集蚂蚁森林能量
  • 微信跳一跳脚本
  • 支付宝星星球脚本
  • 手机屏幕取色器
  • 百度贴吧一键签到
  • 东方头条、趣头条自动刷金币
  • 超星尔雅学习刷课脚本
  • 王者荣耀刷金币
auto.js怎么用
首先下载auto.js APP,地址在下方
  • 安装并打开,会提示需要启用无障碍服务,点击去设置,会跳转到手机设置-系统-无障碍页面,在应用列表选择Auto.js,开启无障碍服务即可;
2. 回到APP主页,点击页面上方脚本选项卡,进入脚本列表,右下角可以选择导入脚本,或者新建文件或文件夹,我们新建一个send.js,点击三角标志可以运行脚本,首先点击铅笔图标进入编辑页面;
3. auto.js提供了很好的手机端辅助编辑工具,我们输入以下代码,这段代码可以实现输入一段文字,并发送给QQ好友:
//本示例来自官方文档,是一个QQ文本消息分享脚本var content = rawInput('请输入要分享的文本');//启动QQ发送组件app.startActivity({    action: "android.intent.action.SEND",    type: "text/*",    extras: {      "android.intent.extra.TEXT": content    },    packageName: "com.tencent.mobileqq",    className: "com.tencent.mobileqq.activity.JumpActivity"});

4. 右上角点击保存,然后点击运行按钮,运行示例如下:



autojs






5. 发送成功后脚本运行结束,可以在auto.js APP里查看日志,对于循环调用的脚本,推荐在APP设置里打开音量上键停止所有脚本,这样也避免了我们不小心写了死循环的情况。
6. auto.js也可以使用电脑开发,推荐使用vscode的Auto.js-VSCodeExt插件,使用很简单,详见https://github.com/hyb1996/Auto.js-VSCode-Extension
相关资料
官方文档:
[color=inherit !important]Auto.js​hyb1996.github.io
Github:
[color=inherit !important]https://github.com/hyb1996/Auto.js​github.com
APP下载地址:
[color=inherit !important][backcolor=rgba(246, 246, 246, 0.88)]Auto.js_其他软件类Auto.js软件下载_百度手机助手​shouji.baidu.com[color=inherit !important][backcolor=rgba(246, 246, 246, 0.88)]Auto.js(com.stardust.scriptdroid) - 3.1.0 Beta - 应用 - 酷安网​[backcolor=rgba(246, 246, 246, 0.88)]www.coolapk.com
bilibili视频教程:
[color=inherit !important]https://www.bilibili.com/video/av35582484?from=search&seid=12319191216902661794​www.bilibili.com
bilibili文字教程:
[color=inherit !important][backcolor=rgba(246, 246, 246, 0.88)]【免root脚本制作教程】自动坐标操作手机(Auto.js使用教程-1)​[backcolor=rgba(246, 246, 246, 0.88)]www.bilibili.com
薅羊毛脚本示例
好了我们进入正题,如何使用自动化脚本薅一把羊毛呢?这让我不得不想到我们小镇的薅羊毛团体:他们白天霸占公园,晚上霸占广场,连朋友圈,都被他们转发的新闻链接霸占~
没错,他们就是大爷大妈们,他们长期使用东方头条、趣头条等软件,每天手动看新闻刷金币,分享新闻刷金币,最后使用金币兑换人民币并提现,以此达到薅资本主义羊毛的目的。
我简单了解了一下,新手阶段过去之后,一个APP大概要两三天能得到一元钱,这真是个体力活呢,算时薪的话几乎没法看了~
而且跳广场舞的时候又不能使用手机看新闻,这真是广场舞与羊毛不可兼得啊,这正是我们自动化脚本的用武之处:这边手机自动刷着新闻,那边跳了一轮又一轮,跳完舞还可以对比一下谁刷的金币多,啊,仿佛看见了广场舞自由~
好了,不开玩笑了,使用脚本刷金币的行为是被厂家所禁止的,所以以下脚本仅供学习交流使用,严禁使用于任何商业用途:
腾讯新闻极速版自动读新闻脚本
我们以腾讯新闻极速版v1.6.20为例,简单介绍一下思路:
  • 首先打开app,如果不是首页的要先回到首页:
app.launchApp("腾讯新闻极速版");backHomePage(8);function backHomePage(flag) {    log("返回主页函数调用次数" + flag)    if (flag < 0) {        start();    } else if (!isHomePage()) {        back()        sleep(1500)        backAndEnter(--flag)    }}function isHomePage() {    //判断有无评论组件,防止把视频新闻页面误判为首页    return currentActivity() === "com.tencent.news.activity.SplashActivity" && id(assemblyId.isHomePage).findOne(200) == null;}
  • 获取新闻列表,点击进入新闻页面,判断有没有红包,没有的话返回首页,刷新新闻后重新进入新闻页面:
var ar = id(assemblyId.newList).find();ar.get([num]).parent().click();if (id(assemblyId.redPacket).exists()) {    sleep(1000);    toNextNew();} else {    backAndEnter(8)    refreshNews()}
  • 如果有红包,则使用swipe模拟滑动到页面最底部,等待红包打开后,上拉进入下个新闻:
scrollDown();log("滑动完成,等待红包")waitTipOpen(500);log("判断暂无相关内容")if (text("暂无相关内容").exists()) {    backAndEnter(8);    refreshNews();} else {    randomSwipeDown(1000, 300);    readNews();}//滑动到最后function scrollDown() {    while (!(text("查看更多评论").exists() || id(assemblyId.sofa).exists())) {        if (waitArr[waitFlag]) {            sleep(waitArr[waitFlag++])        }        randomSwipeDown(1100, 300);    }}//等待红包打开,超过8秒未打开则继续function waitTipOpen(i) {    if (id(assemblyId.redPacket).exists() && i > 0) {        sleep(10);        waitTipOpen(--i);    }}
  • 如果下一条新闻没有红包,那就返回首页,刷新新闻后重新进入新闻页面;
以上几步就可以完成一个简单的自动阅读脚本,运行后就可以不停的阅读新闻了。是不是很简单,但是实际编写测试中会有很多坑,因为脚本运行起来有很多不确定性,经常卡在奇怪的地方,需要花许多时间调试才能获得一个稳定版本。
建议有兴趣的伙伴,可以自行学习并编写脚本,我已经调试出了一个稳定版本,可以稳定执行到手机没电的那种,下面给出github地址,欢迎感兴趣的朋友交流学习:
[color=inherit !important]https://github.com/forgetallthing/autojsScripts​github.com
脚本增加了休息模式,可以在脚本中编辑工作时长和休息时长:
var config = {    mode: "new",    startNewNo: 7, //从第几个新闻开始(0-10)    continuReadNum: 20, //连续阅读数,防止app出现不能通过向上滑动切换新闻的情况    workTime: 60000 * 45, //工作时间    restTime: 60000 * 1, //休息时间    noRest: false, //不休模式}
github中有安装和使用此脚本的示例gif和视频,另外我会在github中持续更新脚本,喜欢的点个star,不胜感激。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-11 10:54 , Processed in 0.059704 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表