Lv4黄金准会员
- 积分
- 2338
果果-
果冻-
- 星星
-
- 持有ART
-
- ART积分
-
- 粉丝数量
- 注册时间
- 2021-8-26
- 最后登录
- 1970-1-1
|
本帖最后由 带眼镜的盲流 于 2022-10-21 17:00 编辑
不知道哪个大神出的代码,不知道有没有后门,懂代码的大佬可以看一下。别的群搞来的我试了可以用
手机安装AUTO.JS 4.1以上的APK,导入这个JS文件就可以直接使用了
字节太多一贴发不完,二楼发另一半
代码上半部分
- if (!auto.service) {
- toast('无障碍服务未启动!退出!')
- exit()
- }
- console.show()
- function getSetting() {
- let indices = []
- autoOpen && indices.push(0)
- autoMute && indices.push(1)
- autoJoin && indices.push(2)
- indices.push(3)
-
- let settings = dialogs.multiChoice('任务设置', ['自动打开京东进入活动。多开或任务列表无法自动打开时取消勾选', '自动调整媒体音量为0。以免直播任务发出声音,首次选择需要修改系统设置权限', '自动完成入会任务。京东将授权手机号给商家,日后可能会收到推广短信', '此选项用于保证选择的处理,勿动!'], indices)
-
- if (settings.length == 0) {
- toast('取消选择,任务停止')
- exit()
- }
-
- if (settings.indexOf(0) != -1) {
- storage.put('autoOpen', true)
- autoOpen = true
- } else {
- storage.put('autoOpen', false)
- autoOpen = false
- }
- if (settings.indexOf(1) != -1) {
- storage.put('autoMute', true)
- autoMute = true
- } else {
- storage.put('autoMute', false)
- autoMute = false
- }
- if (settings.indexOf(2) != -1) {
- storage.put('autoJoin', true)
- autoJoin = true
- } else {
- storage.put('autoJoin', false)
- autoJoin = false
- }
- }
-
- let storage = storages.create("jd_task");
- let autoOpen = storage.get('autoOpen', true)
- let autoMute = storage.get('autoMute', true)
- let autoJoin = storage.get('autoJoin', true)
- getSetting()
-
- if (autoMute) {
- try {
- device.setMusicVolume(0)
- toast('成功设置媒体音量为0')
- } catch (err) {
- alert('首先需要开启权限,请开启后再次运行脚本')
- exit()
- }
- }
-
- console.log('开始完成京东任务...')
- console.log('按音量下键停止')
-
- device.keepScreenDim(30 * 60 * 1000) // 防止息屏30分钟
-
- // 自定义取消亮屏的退出方法
- function quit() {
- device.cancelKeepingAwake()
- exit()
- }
-
- // 监听音量下键
- function registerKey() {
- try {
- events.observeKey()
- } catch (err) {
- console.log('监听音量键停止失败,应该是无障碍权限出错,请关闭软件后台任务重新运行。')
- console.log('如果还是不行可以重启手机尝试。')
- quit()
- }
- events.onKeyDown('volume_down', function (event) {
- console.log('京东任务脚本停止了')
- console.log('请手动切换回主页面')
- startCoin && console.log('本次任务开始时有' + startCoin + '金币')
- quit()
- })
- }
- threads.start(registerKey)
-
- // 自定义一个findTextDescMatchesTimeout
- function findTextDescMatchesTimeout(reg, timeout) {
- let c = 0
- while (c < timeout / 50) {
- let result = textMatches(reg).findOnce() || descMatches(reg).findOnce()
- if (result) return result
- sleep(50)
- c++
- }
- return null
- }
-
- // 打开京东进入活动
- function openAndInto() {
- console.log('正在打开京东App...')
- if (!launch('com.jingdong.app.mall')) {
- console.log('可能未安装京东App')
- }
-
- sleep(2000)
- console.log('进入活动页面')
-
- app.startActivity({
- action: "VIEW",
- data: 'openApp.jdMobile://virtual?params={"category":"jump","action":"to","des":"m","sourceValue":"JSHOP_SOURCE_VALUE","sourceType":"JSHOP_SOURCE_TYPE","url":" 🔗 [ 京东链接 ] ;}'
- })
- }
-
- // 获取金币数量
- function getCoin() {
- let anchor = text('消耗').findOne(5000)
- if (!anchor) {
- console.log('找不到消耗控件')
- return false
- }
- let coin = anchor.parent().parent().parent().parent().child(1).text()
- if (coin) {
- return parseInt(coin)
- } else {
- coin = anchor.parent().parent().parent().parent().child(2).text() // 有可能中间插了个控件
- if (coin) {
- return parseInt(coin)
- } else {
- return false
- }
- }
- }
-
- // 打开任务列表
- function openTaskList() {
- console.log('打开任务列表')
- let taskListButtons = text('消耗').findOne(20000)
- if (!taskListButtons) {
- console.log('未能打开任务列表,请关闭京东重新运行!')
- quit()
- }
- taskListButtons = taskListButtons.parent().parent().parent().parent().children()
-
- let taskListButton = taskListButtons.findOne(boundsInside(device.width/2, 0, device.width, device.height).clickable())
-
- if (!taskListButton || !taskListButton.clickable()) {
- console.log('无法找到任务列表控件')
- quit()
- }
- taskListButton.click()
- console.log('等待任务列表')
- if (!findTextDescMatchesTimeout(/累计任务奖励/, 5000)) {
- console.log('似乎没能打开任务列表,重试')
- taskListButton.click()
- }
-
- if (!findTextDescMatchesTimeout(/累计任务奖励/, 10000)) {
- console.log('似乎没能打开任务列表,退出!')
- console.log('如果已经打开而未检测到,请删除101版本及以上的webview或使用国内应用市场版京东尝试。')
- quit()
- }
- }
-
- // 关闭任务列表
- function closeTaskList() {
- console.log('关闭任务列表')
- let renwu = findTextDescMatchesTimeout(/.*做任务.*/, 5000)
- if (!renwu) {
- console.log('无法找到任务奖励标识')
- return false
- }
- let closeBtn = renwu.parent().parent().parent().child(0)
- return closeBtn.click()
- }
-
- // 重新打开任务列表
- function reopenTaskList() {
- closeTaskList()
- sleep(3000)
- openTaskList()
- sleep(5000)
- }
-
- // 获取未完成任务,根据数字标识,返回任务按钮、任务介绍、任务数量(数组)
- function getTaskByText() {
- let tButton = null,
- tText = null,
- tCount = 0,
- tTitle = null
- console.log('寻找未完成任务...')
- let taskButtons = textMatches(/去完成|去领取|去打卡/).find()
- if (!taskButtons.empty()) { // 如果找不到任务,直接返回
- for (let i = 0; i < taskButtons.length; i++) {
- let button = taskButtons[i]
- // if (tButton.text() == '去领取') {
- // console.log('领取奖励')
- // tButton.click()
- // sleep(500)
- // continue
- // }
-
- let tmp = button.parent().child(button.indexInParent() - 1)
- tTitle = tmp.child(0).text()
- let r = tTitle.match(/(\d*)\/(\d*)/)
- if (!r) continue
-
- tCount = (r[2] - r[1])
-
- console.log(tTitle, tCount)
- if (tCount) { // 如果数字相减不为0,证明没完成
- tText = tmp.child(1).text()
- if (!autoJoin && tText.match(/成功入会/)) continue
- if (tTitle.match(/下单|小程序/)) continue
- tButton = button
- break
- }
- }
- } else {
- console.log('任务提示未找到')
- }
- return [tButton, tText, tCount, tTitle]
- }
-
- // 返回任务列表并检查是否成功,不成功重试一次,带有延时
- function backToList() {
- sleep(500)
- back()
- for (let i = 0; i < 3; i++) { // 尝试返回3次
- if (!findTextDescMatchesTimeout(/累计任务奖励/, 5000)) {
- console.log('返回失败,重试返回')
- sleep(2000)
- back()
- continue
- } else {
- break
- }
- }
- sleep(3000)
- }
-
- // 浏览n秒的任务
- function timeTask() {
- console.log('等待浏览任务完成...')
- if (textMatches(/.*滑动浏览.*[^可]得.*/).findOne(10000)) {
- sleep(1000)
- console.log('模拟滑动')
- swipe(device.width / 2, device.height - 200, device.width / 2 + 20, device.height - 500, 1000)
- }
- let c = 0
- while (c < 40) { // 0.5 * 40 = 20 秒,防止死循环
- if ((textMatches(/获得.*?金币/).exists() || descMatches(/获得.*?金币/).exists())) // 等待已完成出现
- break
- if ((textMatches(/已浏览/).exists() || descMatches(/已浏览/).exists())) { // 失败
- console.log('上限,返回刷新任务列表')
- return false
- }
-
- // 弹窗处理
- let pop = text('升级开卡会员领好礼')
- if (pop.exists()) {
- pop.findOnce().parent().parent().child(2).click()
- console.log('关闭会员弹窗')
- }
-
- sleep(500)
- c++
- }
- if (c > 39) {
- console.log('未检测到任务完成标识。')
- return false
- }
- console.log('已完成,准备返回')
- return true
- }
-
- // 入会任务
- function joinTask() {
- let check = textMatches(/.*确认授权即同意.*|.*我的特权.*|.*立即开卡.*|.*解锁全部会员福利.*/).findOne(8000)
- if (!check) {
- console.log('无法找到入会按钮,判定为已经入会')
- return true
- } else if (check.text().match(/我的特权/)) {
- console.log('已经入会,返回')
- return true
- } else {
- sleep(2000)
- if (check.text().match(/.*立即开卡.*|.*解锁全部会员福利.*|授权解锁/)) {
- let btn = check.bounds()
- console.log('即将点击开卡/解锁福利,自动隐藏控制台')
- sleep(500)
- console.hide()
- sleep(500)
- click(btn.centerX(), btn.centerY())
- sleep(500)
- console.show()
- sleep(5000)
- check = textMatches(/.*确认授权即同意.*/).boundsInside(0, 0, device.width, device.height).findOne(8000)
- }
-
- if (!check) {
- console.log('无法找到入会按钮弹窗,加载失败')
- return false
- }
-
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
评分
-
查看全部评分
|