此脚本非常的简单,就是不断的下载删除,操作也非常的简单,我分享一下这个auto.js写的源码,有兴趣的朋友可以试一下。

"ui";
var myapp = {}
myapp.sdk = ""
var mainThread = 0
var 悬浮创建 = 0
var 执行数量 = 0
ui.layout(<ScrollView ><vertical><appbar><toolbar id="toolbar" title="网易云音乐下载删除" /></appbar><card w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" gravity="center_vertical"><vertical padding="18 8" h="auto"><linear><Switch id="autoService" text="无障碍权限" checked="{{auto.service != null}}" w="auto" textStyle="bold" /><Switch id="overlayService" text="悬浮窗权限" checked="{{auto.service != null}}" w="auto" textStyle="bold" /></linear></vertical><View bg="#E51400" h="*" w="5" /></card><card w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" gravity="center_vertical"><vertical padding="18 8" h="auto"><linear><text text="操作次数" textcolor="black" w="auto" /><input id="执行数量" inputType="text" text="" w="120" /><text text="次" textcolor="black" w="auto" /></linear><linear><text text="下载超时时间" textcolor="black" w="auto" /><input id="等待时间" inputType="text" text="" w="120" /><text text="秒" textcolor="black" w="auto" /></linear></vertical><View bg="#ff5722" h="*" w="5" /></card><card w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" gravity="center_vertical"><vertical padding="18 8" h="auto"><text textColor="red" w="*" textSize="16sp">[网易云音乐版本 8.2.41.151413]</text></vertical><View bg="#ff5722" h="*" w="5" /></card><button style="Widget.AppCompat.Button.Colored" margin="5" id="start">保存脚本设置</button></vertical></ScrollView>
);
读取界面配置(true)
ui.autoService.on("check", function (checked) {// 用户勾选无障碍服务的选项时,跳转到页面让用户去开启if (checked && auto.service == null) {app.startActivity({action: "android.settings.ACCESSIBILITY_SETTINGS"});}if (!checked && auto.service != null) {auto.service.disableSelf();}
});
ui.emitter.on("resume", function () {// 此时根据无障碍服务的开启情况,同步开关的状态ui.autoService.checked = auto.service != null;
});
ui.overlayService.on("check", function (checked) {// 用户勾选无障碍服务的选项时,跳转到页面让用户去开启if (checked) {try {int = app.startActivity({packageName: "com.android.settings",className: "com.android.settings.Settings$AppDrawOverlaySettingsActivity",data: "package:" + context.getPackageName().toString()});} catch (err) {app.openAppSetting(getPackageName("网易云音乐下载删除"));}toast("请打开悬浮窗开关");}if (!checked && auto.service != null) {//auto.service.disableSelf();toast("已关闭悬浮窗权限");}
});ui.start.on("click", () => {   //按钮单击事件 哪个按钮 start 需要修改这个ID保存界面配置()          //先读取配置读取界面配置(false)if (auto.service == null) {toastLog("请先开启无障碍服务!");return};if (悬浮创建 == 0) {threads.start(function () {floatyLogInit(5, 0, 10, true)})// 屏蔽音量键调节声音events.setKeyInterceptionEnabled("volume_up", true);events.setKeyInterceptionEnabled("volume_down", true);events.observeKey();//监听音量键按下events.onKeyDown("volume_up", () => {exit()});events.onKeyDown("volume_down", () => {if (mainThread == 0) {mainThread = threads.start(APP_main);} else {addlog('脚本停止运行')mainThread.interrupt();mainThread = 0}});悬浮创建 = 1}home()toast('脚本转入后台')
});function APP_main() {addlog('脚本开始运行')var 删除成功 = falsevar 下载成功 = falsevar 数量叠加 = falsevar 下载计次 = 0while (true) {if (id('com.netease.cloudmusic:id/downloadBlock').findOnce()) {if (!删除成功) {addlog('点击更多')Click(desc('更多').findOnce())} else if (!下载成功) {if (下载计次 >= 2) {下载计次 = 0下载成功 = true} else {addlog('点击下载')var node = id('com.netease.cloudmusic:id/downloadBlock').findOnce()if (node != null) {node.click()}下载计次++}} else {if (!数量叠加) {执行数量++if (执行数量 >= parseInt(myapp.执行数量)) {addlog('当前下载删除任务完成 脚本停止')return} else {addlogEX('操作次数:' + 执行数量 + '/' + myapp.执行数量)}数量叠加 = true}下载计次 = 0back()}} else if (text('删除').findOnce()) {addlog('点击删除')Click(text('删除').findOnce())删除成功 = true} else if (text('清空下载文件').findOnce()) {addlog('清空下载文件')Click(text('清空下载文件').findOnce())} else if (textContains('下载音质').findOnce()) {addlog('选择下载音质标准')Click(textContains('标准').findOnce())} else if (text('下载').findOnce()) {addlog('点击确认下载')Click(text('下载').findOnce())下载成功 = true} else if (text('我喜欢的音乐').findOnce()) {APP_下载判断()addlog('点击我喜欢的音乐')if (Click(text('我喜欢的音乐').findOnce())) {下载成功 = false删除成功 = false数量叠加 = false}}sleep(800)}
}function Click(node) {try {if (node) {if (node.click()) {return true} else if (node.parent().click()) {return true} else if (node.parent().parent().click()) {return true} else if (node.parent().parent().parent().click()) {return true} else if (node.parent().parent().parent().parent().click()) {return true} else if (node.parent().parent().parent().parent().parent().click()) {return true} else if (node.parent().parent().parent().parent().parent().parent().click()) {return true}}} catch (e) { }return false
}
function floatyLogInit(linesCount, x, y, islog) {let _linesCount = linesCount || 6;if (typeof _linesCount != 'number') _linesCount = 6;if (typeof x != 'number') x = 0;if (typeof y != 'number') y = 10;if (typeof islog != 'boolean') islog = true;let initX = xlet initY = yfloatyLogW = floaty.rawWindow(<card w="*" h="auto" marginLeft="3" cardBackgroundColor='#66242424' cardCornerRadius="8dp" cardElevation="1dp" gravity="center_vertical"><vertical paddingLeft="5" paddingRight="5" w='*'><Chronometer id='chronometer' textSize="13dp" textColor="#DC143C" w="*" style="Widget/AppCompat.Button.Borderless" textStyle='bold' /><button id='logEX' textSize="13dp" textColor="#20B2AA" style="Widget/AppCompat.Button.Borderless" textStyle='bold'layout_weight='5' layout_width="wrap_content" layout_height="wrap_content" /><button id='log' textSize="13dp" textColor="#FFD700" style="Widget/AppCompat.Button.Borderless" textStyle='bold'layout_gravity="right" layout_weight='5' layout_width="wrap_content" layout_height="wrap_content" /></vertical></card>);let nowlogArr = [];addlogEX = function (printContent) {ui.run(() => { floatyLogW.logEX.text(printContent) })}floatyLogShow = function (x, y) {let _x = x || initXlet _y = y || initYui.run(() => { floatyLogW.setPosition(_x, _y) })}floatyLogHide = function () {ui.run(() => { floatyLogW.setPosition(3000, 3000) })}function dateFormat(date, fmt_str) {return java.text.SimpleDateFormat(fmt_str).format(new Date(date || new Date()));}ui.run(() => {addlog('音量-键 【启动】【停止】脚本')addlog('音量+键 【结束】脚本进程')addlogEX('操作次数:' + 执行数量 + '/' + myapp.执行数量)floatyLogW.chronometer.setFormat('[运行时间] %s')floatyLogW.chronometer.start()floatyLogW.setTouchable(false);floatyLogW.setPosition(x, y);})
}
function 保存界面配置() {保存本地数据(myapp.存储标识, "执行数量", ui.执行数量.text())保存本地数据(myapp.存储标识, "等待时间", ui.等待时间.text())
};
function 读取界面配置(是否设置组件值) {   //逻辑值 是否设置组件值if (读取本地数据(myapp.存储标识, "执行数量") != undefined) {myapp.执行数量 = 读取本地数据(myapp.存储标识, "执行数量")};是否设置组件值 && ui.执行数量.setText(myapp.执行数量);if (读取本地数据(myapp.存储标识, "等待时间") != undefined) {myapp.等待时间 = 读取本地数据(myapp.存储标识, "等待时间")};是否设置组件值 && ui.等待时间.setText(myapp.等待时间);
};
function 保存本地数据(存储标识, ID, 界面组件值) {const storage = storages.create(存储标识);  //创建storage对象storage.put(ID, 界面组件值);
};
function 读取本地数据(存储标识, ID) {const storage = storages.create(存储标识);  //创建storage对象if (storage.contains(ID)) {return storage.get(ID, "");};//默认返回undefined
};
function 到期判断(到期时间) {var 输入框月份, 输入框日期, 输入框小时, 输入框分钟, 输入框日期, 输入框年份, 输入框秒数输入框日期 = 到期时间输入框时间 = 输入框日期.split("S")if (输入框时间.length == 6) {输入框年份 = parseInt(输入框时间[0], 16)输入框月份 = parseInt(输入框时间[1], 16)输入框日期 = parseInt(输入框时间[2], 16)输入框小时 = parseInt(输入框时间[3], 16)输入框分钟 = parseInt(输入框时间[4], 16)输入框秒数 = parseInt(输入框时间[5], 16)输入框年份 = 输入框年份 / 1990输入框月份 = 输入框月份 / 1990输入框日期 = 输入框日期 / 1990输入框小时 = 输入框小时 / 1990输入框分钟 = 输入框分钟 / 1990输入框秒数 = 输入框秒数 / 1990var 激活卡时间 = new Date(输入框年份, 输入框月份 - 1, 输入框日期, 输入框小时, 输入框分钟, 输入框秒数);var 现在时间 = new Date()if (激活卡时间 < 现在时间) {return false} else {toastLog("到期时间:" + 输入框年份 + "年" + 输入框月份 + "月" + 输入框日期 + "日  " + 输入框小时 + "时" + 输入框分钟 + "分" + 输入框秒数 + "秒")return true}} else {return false}
}

分享一个网易云会员包项目刷下载量的脚本相关推荐

  1. Vue3+node.js网易云音乐实战项目(八)

    播放界面实现 1.准备工作 2.顶部布局 3.中部唱片部分布局 4.底部部分布局 最后一个页面还没写完,由于我要去比赛,所以暂时先写到这,等放假了再写 其他页面可以看我页面专栏 Vue3实战项目-网易 ...

  2. 数据挖掘r语言和python知乎_Hellobi Live |R语言爬虫实战案例分享:网易云课堂、知乎live、今日头条、B站视频...

    课程名称 R语言爬虫实战案例分享:网易云课堂.知乎live.今日头条.B站视频 网络数据抓取是数据科学中获取数据中的重要途径,但是一直以来受制于高门槛,都是专业程序员的专属技能.直到R语言和Pytho ...

  3. Vue3+node.js网易云音乐实战项目(五)

    推荐歌单详细页面顶部 1.推荐歌单详细页面 1.1.导航条和背景 1.2.头像和简介 1.3.头部完整代码 1.4.链接 实现效果 1.推荐歌单详细页面 1.1.导航条和背景 推荐歌单页面做好后,我们 ...

  4. 手把手教你用Java实现一个“网易云音乐”

    话说前阵子与三枪内衣 推出联名内裤的网易云音乐, 又有热门话题了! 想必大家也已经猜出来 据说是因违反相关规定被下架30天, 在各大安卓应用商店搜索显示 "服务调整"暂不提供下载, ...

  5. Vue3+node.js网易云音乐实战项目(三)

    页面 一.头部导航栏布局 二.轮播图的实现 三.请求网易的banner图 四 链接 一.头部导航栏布局 首先我们看最上面这里的布局,大致可分为三个模块,顶部左边,顶部中间,顶部右边 那么我们在comp ...

  6. 开源的网易云音乐API项目都是怎么实现的?

    上一篇文章这个高颜值的开源第三方网易云音乐播放器你值得拥有介绍了一个开源的第三方网易云音乐播放器,这篇文章我们来详细了解一下其中使用到的网易云音乐api项目NeteaseCloudMusicApi的实 ...

  7. 如何创建一个网易云歌单外链

                                  如何创建一个网易云歌单外链 首先打开网易云音乐,打开一个歌单或者自己创建一个歌单 点解生成外链播放器 这里可以选择iframe和flash两 ...

  8. 分享一个比较完整的Vue2+项目供大家交流学习

    分享一个比较完整的Vue2+项目供大家交流学习,这个项目的英文简介:Awesome douban DEMO created with Vue2.x + Vuex + Vue-router + vue- ...

  9. python 公众号文章发布_分享一个牛逼的Python项目:公众号文章爬虫

    我订阅了近 100 个公众号,有时候想再找之前读过的文章,发现搜索起来特别困难,如果忘了收藏,估计得找半小时,更让人无语的是,文章已经发布者删除,或者文章因违规被删除.那么有没有这样的爬虫,可以将公众 ...

最新文章

  1. 对面向对象基本原则的总结
  2. Datawhale组队学习周报(第047周)
  3. [LeetCode] Wildcard Matching 题解
  4. Netflix Play API:我们为什么构建了一个演进式架构?
  5. 监控工具—Prometheus—监控Java程序
  6. 正在搜索需要的文件_【数澜发布-澜寻】智能内容搜索引擎,释放“机器阅读” 潜力...
  7. Python网络编程基础
  8. android触屏设备event模拟,android 使用命令模拟点击 滑动
  9. ABP理论学习之NHibernate集成
  10. python垃圾邮件识别_手把手教你用 python 和 scikit-learn 实现垃圾邮件过滤
  11. SpringBoot:用腾讯企业微信邮箱发送邮件
  12. 还不快点刷面试题,史上最全Java工程师面试题汇总,全会月薪至少3W
  13. Chrome去除新标签页最近访问
  14. Python中对一个数组各个数进行累加(反差分计算) cumsum()函数
  15. 微信小程序 三角形实现 (评论三角形)
  16. 如何有效的避免图片侵权(100%避免网站图片侵权)
  17. 光流传感器不是一个到手就能用的PIX外设
  18. web前端-纯前端音频剪辑,vue音频编辑组件
  19. 【springboot】上传并解析excel表,使用postman测试上传文件,解决excel版本报错问题
  20. 计算机路由表更新算法画图

热门文章

  1. isset与empty的区别
  2. 获取CloudFlare上的所有域名的ID (zone_identifier) - by PHP
  3. Java多word文件生成后进行压缩并导出下载后,压缩文件损坏并提示“不可预料的压缩文件末端”和“CRC校验失败”
  4. 君子不和牛置气,混蛋让它混到底-- 骂 老板 6
  5. ubuntu启动报错kernel panic
  6. linux中useradd命令的使用详解
  7. 小程序中wxs的使用
  8. 聚焦化工安全:化工厂人员定位
  9. 免费安装office流程(官方自动批量激活)
  10. prototype.js详解