const VERSION = '2022618-16'

if (!auto.service) {
toast('无障碍服务未启动!退出!')
exit()
}

let showVersion = function () {
console.log('当前版本:' + VERSION)
console.log('Hello, World!')
toast('当前版本:' + VERSION)
}

// alert('请把手机放稳,不要摇晃!', '不然有时候会跳出合伙赢喵币,导致任务阻塞')

function getSetting() {
let indices = []
autoOpen && indices.push(0)
autoMute && indices.push(1)

let settings = dialogs.multiChoice('任务设置', ['自动打开淘宝进入活动。多开或任务列表无法自动打开时取消勾选(注意,分身运行淘宝大概率导致任务收益变为100)', '自动调整媒体音量为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
}
}

let storage = storages.create("tb_task");
let autoOpen = storage.get('autoOpen', true)
let autoMute = storage.get('autoMute', true)
getSetting()

if (autoMute) {
try {
device.setMusicVolume(0)
toast('成功设置媒体音量为0')
} catch (err) {
alert('首先需要开启权限,请开启后再次运行脚本')
exit()
}
}

console.show()
showVersion()
console.log('开始完成喵糖任务...')
console.log('按音量下键停止')

device.keepScreenDim(60 * 60 * 1000)

function registerKey() {
try {
events.observeKey()
} catch(err) {
console.log('监听音量键停止失败,应该是无障碍权限出错,请关闭软件后台任务重新运行。')
console.log('如果还是不行可以重启手机尝试。')
quit()
}
events.onKeyDown('volume_down', function (event) {
console.log('喵币任务脚本停止了')
console.log('请手动切换回主页面')
device.cancelKeepingAwake()
exit()
})
}
threads.start(registerKey)

// 全局try catch,应对无法显示报错
try {

// 自定义去取消亮屏的退出方法
function quit() {
device.cancelKeepingAwake()
exit()
}

// 自定义一个findTimeout,find_f是原本的查询器 text('sss').find()
function findTimeout(findF, timeout) {
let c = 0
while (c < timeout / 50) {
let result = findF.find()
if (result.nonEmpty()) return result
sleep(50)
c++
}
return null
}

// 自定义一个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 findTask() {
var jumpButtonFind = textMatches(/去浏览|去搜索|去完成|去签到|逛一逛|去逛逛|去观看|去参赛/) // 找进入任务的按钮,10秒
var jumpButtons = findTimeout(jumpButtonFind, 10000)

if (!jumpButtons) {
return null
}

for (var i = 0; i < jumpButtons.length; i++) {
var taskName, content
try {
taskName = jumpButtons[i].parent().child(0).child(0).text()
content = jumpButtons[i].parent().child(0).child(1).child(0).text()
} catch (err) {
console.log(err)
continue
}
if (taskName) {
if (taskName.match(/签到领/)) {
console.log('进行签到任务')
sleep(1000)
jumpButtons[i].click()
sleep(8000)
return findTask()
}
if (!(taskName.match(/淘金币|提醒|话费|斗地主|消消乐|流浪猫|开88|扔喵糖|占领|邀请|登录|组队|参与|施肥|浇水|特价版|小鸡|消除|穿搭|森林|点淘|人生|我的淘宝|庄园/) || content.match(/小互动/))) {
return [taskName, jumpButtons[i]]
}
}
}
return null
}

function liulan() {
// if (textMatches(/.*浏览.*/).findOne(10000)) { // 等待浏览出现
// let v = className('android.support.v7.widget.RecyclerView').findOnce() // 滑动
// if (v) {
// sleep(1000)
// v.scrollForward()
// }
// }

// textMatches(/.*浏览得奖励.*/).findOne(15000) // 等待开始
sleep(5000)
let finish_c = 0
while (finish_c < 50) { // 0.5 * 50 = 25 秒,防止死循环
let finish_reg = /.*任务已完成.*|.*失败.*|.*上限.*|.*开小差.*|.*喵币已发放.*/
if (textMatches(finish_reg).exists() || descMatches(finish_reg).exists()) { // 等待已完成出现,有可能失败
break
}
if (textMatches(/.*休息会呗.*/).exists()) {
alert('触发淘宝验证', '请手动验证后返回淘宝首页,重新执行任务')
console.log('异常退出。')
quit()
}
if (textContains('互动奖励').exists() ||
descContains('互动奖励').exists()) {
console.log('跳过互动任务')
break
}
sleep(500)
finish_c++
}

if (finish_c > 49) {
console.log('未检测到任务完成标识。返回。')
// console.log('如果你认为这是一个bug请截图反馈。')
// console.log('一般情况下,二次运行脚本即可。')
// console.log('请手动切换回主页面')
// device.cancelKeepingAwake()
// quit()
back()
sleep(1000)
// TODO: 返回检测
if (!textContains('当前进度').findOne(5000)) {
console.log('似乎没有返回,二次尝试')
back()
}
return
}

console.log('任务完成,返回')

back()
sleep(1000)
if (!textContains('当前进度').findOne(5000)) {
if (currentActivity() == 'com.taobao.tao.TBMainActivity') {
console.log('返回到了主页,尝试重新进入任务')
id('com.taobao.taobao:id/rv_main_container').findOnce().child(3).child(0).click()
} else {
console.log('似乎没有返回,二次尝试')
back()
}
}
}

// 打开淘宝活动页面
console.log('正在打开淘宝...')
var url = 'pages.tmall.com/wow/z/hdwk/20220618/gamehome?disableNav=YES'

app.startActivity({
action: "VIEW",
data: "taobao://" + url
})
sleep(2000)

console.log('等待页面加载...')

try {
textMatches(/领喵币/).findOne(20000)
console.log('准备打开任务列表')
sleep(2000)
let c = findTextDescMatchesTimeout(/领喵币/, 1000)
if (c) {
console.log('使用默认方法尝试打开任务列表')
c.click()
} else {
throw '无法找到任务列表入口'
}
if (!textContains('当前进度').findOne(8000)) {
console.log('默认方式打开失败,二次尝试')
console.log('首先检测弹窗')
for (let i = 0; i < 2 && text('关闭').findOne(2000); i++) { // 关闭弹窗
console.log('检测到弹窗,关闭')
click('关闭')
sleep(2000)
}
console.log('出现未能自动关闭的弹窗请手动关闭')
sleep(2000)
// let right = c.bounds().right
// let left = c.bounds().left
// let top = c.bounds().top
// let bottom = c.bounds().bottom
// click(random(right,left), random(top, bottom))
click(c.bounds().centerX(), c.bounds().centerY())
console.log('已点击,等待任务列表出现')
if (!textContains('当前进度').findOne(8000)) {
throw '无法打开任务列表'
}
}
console.log('准备搜索任务')
sleep(2000)
} catch (err) {
console.log(err)
console.log('无法进入任务列表,如果你认为这是bug,请截图反馈')
quit()
}

while (true) {
console.log('寻找任务入口...')
var jumpButton = findTask()

if (jumpButton == null) {
// 没有任务之后领取奖励
var awardButtonFind = textMatches(/立即领取/)
var awardButtons = findTimeout(awardButtonFind, 10000)

if (awardButtons) {
for (var i = 0; i < awardButtons.length; i++) {
console.log('领取累计任务奖励')
awardButtons[i].click()
console.log('等待5秒再次领取...')
sleep(5000)
}
}

console.log('没找到合适的任务。也许任务已经全部做完了。退出。互动任务不会自动完成。')
console.log('请手动切换回主页面')
alert('任务已完成', '别忘了在脚本主页领取618红包!互动任务需要手动完成。')
quit()
}

if (jumpButton[0].match('去浏览店铺领能量')) {
console.log('进行浏览店铺任务')
jumpButton[1].click()
while (!textContains('任务完成').exists()) {
console.log('进入店铺浏览')
text('逛店最多').findOne(15000).parent().click()
liulan()
sleep(2000)
}
back()
} else if (jumpButton[0].match(/.*玩游戏.*|.*浏览餐饮卡券.*|.*加油赛.*|.*赚星星.*/)) {
console.log('进行' + jumpButton[0] + '任务,10秒后返回')
jumpButton[1].click()
sleep(10000)
back()
} else if (jumpButton[0].match(/领现金/)) {
console.log('进行' + jumpButton[0] + '任务')
jumpButton[1].click()
let into = text('打开链接').findOne(10000)
if (!into) {
console.log('无法找到进入领现金的按钮!')
quit()
}
into.click()
liulan()
} else {
console.log('进行' + jumpButton[0] + '任务')
jumpButton[1].click()
liulan()
}

console.log('等待页面刷新...')
sleep(2000)
}
} catch (err) {
device.cancelKeepingAwake()
if (err.toString() != 'JavaException: com.stardust.autojs.runtime.exception.ScriptInterruptedException: null') {
console.error(err)
}
showVersion()
}

自动完成淘宝618活动任务:使用autojs脚本代码轻松实现相关推荐

  1. 【任务脚本】0530更新淘宝618活动领喵币脚本,OrangeJs基于autojs全自动程序稳定运行,向大神致敬...

       公众号关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 0530:     更新一下文章内容,除了苹果手机用户最近没有收到其他手机不能 ...

  2. 2022年淘宝618活动时间和天猫618有什么优惠活动

    2022年的618大促活动正式拉开帷幕,因为淘宝.天猫.京东等主要电商平台都已经开放招商了,小编在这里总结了2022淘宝618活动(活动时间.活动内容.活动安排.活动规则)玩法,还没有看到的小伙伴可以 ...

  3. 【任务脚本】0601更新autojs客户端,回顾之前战绩,注意事项淘宝618活动领喵币autojs脚本,向大神致敬...

       公众号关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 先向大神致敬,感谢大神的辛苦付出,好人一生平安  顺便缅怀一下233逗逼大神 ...

  4. 淘宝618活动什么时候开始?持续几天?

    淘宝为了刺激消费,提高卖家销量,加大平台回报率,每年甚至每个月都有各种促销节,最有名的就是双十一和年货节了,不过现在马上就是六月份了,又是盛夏人们囤衣服的时候,按照往年惯例会淘宝自然不会错过这个大促好 ...

  5. 淘宝618活动节奏指南

    一年一度的618活动又要开始啦,今天跟大家分享的是618活动时间节点,以及活动预热,活动期间,以及活动结束之后咱们应该做哪些事情. 这个是今年618活动的一个时间节点,和往年一样,主要分为预售,开门红 ...

  6. 盘点2023天猫淘宝618满减规则和活动时间表

    盘点2023天猫淘宝618满减规则和活动时间表 618年中大促活动转眼就要到了,大家又将迎来一场购物狂欢盛宴.每年天猫淘宝都会推出一系列的优惠满减活动,打算囤货的小伙伴们已经可以着手准备起来了.为了方 ...

  7. 弘辽科技:2021年淘宝618优惠券玩法招商

    2021年淘宝618是集全淘宝之力让消费者全民疯抢的节日,同时也是卖家的盛宴.今年的淘宝618活动优惠券玩法,除了万券齐发无线端会场资源外,额外增加主会场无线端优惠券模块资源,卖家可报名提供各种优惠券 ...

  8. 2022年淘宝618预售付了定金不想要了怎么可以退?

    2022年淘宝618预售第一波活动已经开启了,不少小伙伴们也第一时间付了定金买了自己心仪的产品,不过也有人买了想退,那2022年淘宝618的定金可以退吗?付尾款的活动怎么参加呢?下面一起来看看吧. ​ ...

  9. 【Auto.js脚本】淘宝618集喵币列车活动 自动浏览任务

    [Auto.js脚本]淘宝618集喵币列车活动 自动浏览任务 附上使用方法: 1.打开Auto.js(该软件的相关用法就不细说了,无障碍,悬浮窗权限这些),右下角导入脚本 2.打开淘宝,进入活动页面, ...

  10. 淘宝618列车/京东618叠蛋糕活动 自动领喵币/金币脚本

    淘宝和京东的618活动手动做任务实在是有点浪费时间,自己写了个自动操作的脚本,有需要可以试试. 运行脚本需要下载auto.js.下载地址 (https://share.weiyun.com/tMNho ...

最新文章

  1. 并发执行变成串行_一篇讲透如何理解数据库并发控制(纯干货)
  2. java 框架 Dao层 Mapper层 controller层 service层 model层 entity层 简介
  3. python3使用cx_Oracle中文乱码
  4. java erlang 游戏_游戏中最近可达点(用erlang写一个简单算法)
  5. c# 静态构造函数与私有构造函数共存
  6. gcc/g++超详细上手教程
  7. 现代操作系统原理与实践03:操作系统结构
  8. 人工智能翻译能否替代人工翻译,人工智能翻译何去何从
  9. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks论文翻译
  10. 设计一个程序,其中有三个类CBank,BBank,GBank,分别为中国银行类…………
  11. 解决鼠标右键失效(响应极慢)
  12. 透彻的掌握 Spring 中@transactional 的使用
  13. Linux下安装OpenOffice
  14. 关于7.0去掉Chrome后,平台默认浏览器报错webview not installed的问题
  15. 负重前行的电信运营商
  16. 怎样伪原创视频 如何查看视频的md5
  17. Qt自定义控件之仪表盘的完整实现
  18. 浅谈社交电商产品设计的10个深刻的知识
  19. 标准成本法,你的优势在哪?(转贴)
  20. YYC松鼠视频pro版安装实操001

热门文章

  1. 【Matter】基于Ubuntu 22.04搭建matter开发环境:chip-tool 配网之 matter-over-wifi
  2. nacl ppai 学习
  3. 使用Canoe通过dbc发送虚拟信号给控制器
  4. 模拟实现一个ATM + 购物商城程序
  5. MATLAB算法实战应用案例精讲-【图像处理】计算机视觉
  6. 关于Web2.0创业的讨论
  7. 计算机网络课程总复习例题讲解
  8. 浅谈条件竞争漏洞及利用
  9. 腾讯云自研服务器成爆款云产品 规模增长30倍,客户增长50倍
  10. (白话)C\C++中的size()、length()、strlen()、sizeof()用法