├── BossAutojs-复聊.js ├── BossAutojs-打招呼.js ├── README.md ├── cardList.json ├── index.html ├── indexPhone.html ├── main.js ├── project.json ├── 定时微信自动发消息.js ├── 应用商店软件更新永久忽略.js ├── 微信主界面自动回复.js ├── 微信消息多发.js ├── 微信自动Ai回复toast监听.js ├── 指定联系朋友圈点赞.js ├── 消息轰炸.js ├── 酷安自动点赞.js └── 音乐搜索.js /BossAutojs-复聊.js: -------------------------------------------------------------------------------- 1 | auto.waitFor() 2 | launchApp("BOSS直聘") 3 | text("消息").findOne().parent().click() 4 | sleep(1000) 5 | swipe(800, 2600, 1200, 1600, 200) 6 | sleep(500) 7 | var strArray = [ 8 | '我们是饿了么专送,招聘外卖送餐员,月薪7千到一万+,上不封顶,多劳多得的', 9 | '我们现在正在招聘外卖送餐员,站点直招,非中介!工资在7000—14000,会骑电动车,会看导航就行,前期有老手带。', 10 | '你好,我们这份是送餐员的工作,月薪6k-13k以上,多劳多得,新员工会有老骑手一对一培训,不用担心没有经验,公司免费提供电动车,0元入职,多个选择多个机会哦,有兴趣聊一下吗?', 11 | '已读不回是有什么顾虑吗' 12 | ] 13 | chat_again() 14 | 15 | function chat_again() { 16 | className("android.widget.ExpandableListView").scrollable(true).findOne().children().forEach(child => { 17 | sleep(500) 18 | //toastLog(child); 19 | var msg = child.children().findOne(id('tv_msg')).getText() 20 | var msg_status = child.children().findOne(id('iv_msg_status')) 21 | //toastLog(msg_status+'>'+msg) 22 | if (msg != '好的' && 23 | msg_status && 24 | msg_status.getText() == '[已读]' 25 | ) { 26 | var bounds = child.bounds(); 27 | if (bounds) { 28 | var centerX = bounds.centerX(); 29 | var centerY = bounds.centerY(); 30 | click(centerX, centerY); 31 | } else { 32 | toastLog("无法获取控件区域!"); 33 | } 34 | sendMsg(strArray) 35 | id("iv_back").findOne().click() 36 | sleep(500) 37 | } 38 | }); 39 | toastLog('滑动屏幕') 40 | swipe(800, 2950, 1000, 250, 200) 41 | chat_again() 42 | } 43 | //发送单条或者多条消息 44 | function sendMsg(str) { 45 | for (var i = 0; i < strArray.length ; i++) { 46 | className("android.widget.EditText").setText(strArray[i]) 47 | //toastLog('发送') 48 | var imgArray = className('android.widget.ImageView').find() 49 | sleep(200) 50 | imgArray[imgArray.length - 1].click() 51 | sleep(200) 52 | } 53 | } -------------------------------------------------------------------------------- /BossAutojs-打招呼.js: -------------------------------------------------------------------------------- 1 | auto.waitFor(); 2 | launchApp("BOSS直聘") 3 | sayHello() 4 | 5 | function sayHello() { 6 | text("牛人").findOne().parent().click() 7 | sleep(2000) 8 | id("rv_list").className("androidx.recyclerview.widget.RecyclerView").scrollable(true).findOne().children().forEach(child => { 9 | //关闭广告 10 | var ads = child.findOne(id("cl_ads_guide_card")); 11 | if (ads != null && ads != '') { 12 | var adsX = ads.children().findOne(id("iv_close")); 13 | adsX.click(); 14 | } 15 | //判断是否在线 16 | var target = child.findOne(id("iv_online_state")); 17 | if (target != '' && target != null) { 18 | child.click() 19 | sleep(500) 20 | if (className("android.widget.Button").text("立即沟通").exists()) { 21 | sleep(1000) 22 | var targetText = '偏好工作地点' 23 | /*while (!textContains(targetText).exists()) { 24 | //toastLog('循环') 25 | swipe(1000, 2300, 1100 , 1800 , 800) 26 | //swipe(device.width / 2, device.height * 0.8, device.width / 2, device.height * 0.2, 500); 27 | //sleep(2000) 28 | }*/ 29 | // 获取目标文本后的内容 30 | textAfterTarget = textContains(targetText).findOne().text(); 31 | //toastLog(textAfterTarget) 32 | 33 | // 判断内容是否包含宝安区或龙岗区 34 | var isValidLocation = textAfterTarget.includes('宝安区') || textAfterTarget.includes('龙岗区'); 35 | if (isValidLocation) { 36 | toastLog("位置符合要求"); 37 | /*text('立即沟通').findOne().click() 38 | sleep(1000) 39 | className("android.widget.EditText").setText('你好,我们这份是送餐员的工作,月薪6k-13k以上,多劳多得,新员工会有老骑手一对一培训,不用担心没有经验,公司免费提供电动车,0元入职,多个选择多个机会哦,有兴趣聊一下吗?') 40 | sleep(500) 41 | var imgArray = className('android.widget.ImageView').find() 42 | imgArray[imgArray.length - 1].click() 43 | sleep(1000) 44 | id("iv_back").findOne().click() 45 | sleep(500)*/ 46 | } 47 | id("iv_back").findOne().click() 48 | sleep(1000) 49 | } else { 50 | sleep(500) 51 | id("iv_back").findOne().click() 52 | sleep(500) 53 | } 54 | } 55 | }); 56 | sayHello(); 57 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | <<<<<<< HEAD 2 | # autojs自动化脚本 3 | ###### 需要搭配autojs使用,开启无障碍权限 4 | ###### 前面发的只支持微信8.0.40版 5 | #### main.js适配的是微信8.0.42 6 | - 微信定时给指定的联系人发消息。 7 | - 微信自动回复Wechat 8 | - 酷安自动点赞Coolpak 9 | - 详见其他仓库已打包。 10 | ======= 11 | # WeChat 自动聊天回复 12 | ## 13 | >>>>>>> wechat/main 14 | -------------------------------------------------------------------------------- /cardList.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "title": "功能1", 4 | "url": "https://pic.rmb.bdstatic.com/bjh/171cd6cf9e22e5a8ac1567725a71a8e4.jpeg" 5 | }, 6 | { 7 | "title": "功能2", 8 | "url": "https://pic.rmb.bdstatic.com/bjh/f99b58ad941c90bb94d2c8969d5a7fb7.jpeg" 9 | }, 10 | { 11 | "title": "功能3", 12 | "url": "https://pic.rmb.bdstatic.com/bjh/d3de1d7f8b4381e952de1499d4892329.jpeg" 13 | }, 14 | { 15 | "title": "功能4", 16 | "url": "https://pic.rmb.bdstatic.com/bjh/b97040da6b4d791391a96dea7acf1580.jpeg" 17 | }, 18 | { 19 | "title": "功能5", 20 | "url": "https://pic.rmb.bdstatic.com/bjh/8dd74c59886964ffdda4401ea4bf78ed.jpeg" 21 | }, 22 | { 23 | "title": "功能6", 24 | "url": "https://pic.rmb.bdstatic.com/bjh/3cbb35d423544aac493178079c200913.jpeg" 25 | }, 26 | { 27 | "title": "功能7", 28 | "url": "https://pic.rmb.bdstatic.com/bjh/791d0f965a41243b994f47247e84d722.jpeg" 29 | }, 30 | { 31 | "title": "功能8", 32 | "url": "https://picsum.photos/800" 33 | } 34 | 35 | ] 36 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | index 13 | 60 | 61 | 62 |
63 | 64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 | 185 | 186 | -------------------------------------------------------------------------------- /indexPhone.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | index 6 | 50 | 51 | 52 | 53 |
54 | 55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 | 211 | 212 | -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | auto.waitFor(); 2 | console.show(); 3 | log("****微信自动回复聊天脚本****") 4 | log("**********开始运行**********") 5 | <<<<<<< HEAD 6 | //启动一个线程 7 | var firstThread = threads.start(function() { 8 | //toast监听悬浮窗通知 9 | events.observeToast(); 10 | events.onToast(function(toast) { 11 | // 发微信消息 12 | function sendAiMessageByName(name) { 13 | launchApp("微信"); //打开微信 14 | sleep(1000); 15 | //在联系人界面时 16 | if (name[0] == id("obn").findOne().getText()) { 17 | log("进去悬浮窗通知聊天") 18 | //点击聊天输入框 19 | id("kii").findOne().parent().click(); 20 | var res = http.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg=" + name[1]); 21 | if (res.statusCode != 200) { 22 | log("请求失败: " + res.statusCode + " " + name[1]); 23 | } else { 24 | var r_msg = res.body.json(); 25 | setText(r_msg.content); 26 | sleep(500); 27 | text('发送').findOne().click(); //点击发送 28 | log("消息发送成功"); 29 | //回主界面 30 | id("he").findOne().click(); 31 | sleep(300); 32 | id("b5i").findOne().click(); 33 | swipe(1400, 1800, 1100, 2000, 400); 34 | } 35 | } else { 36 | //checkNewMsg(); 37 | id("jha").findOne().click(); //搜索联系人 38 | //填入联系人 39 | id("d98").findOne().setText(name[0]); 40 | sleep(1000); 41 | //搜索到联系人后点击进去聊天界面 42 | id("odf").findOne().parent().click(); 43 | sleep(500); 44 | //点击聊天输入框 45 | id("o4q").findOne().parent().click(); 46 | //设置文本消息自动聊天 47 | res = http.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg=" + name[1]); 48 | if (res.statusCode != 200) { 49 | log("请求失败: " + res.statusCode + " " + res.statusMessage); 50 | } else { 51 | r_msg = res.body.json(); 52 | setText(r_msg.content); 53 | } 54 | sleep(500); 55 | text('发送').findOne().click(); //点击发送 56 | log("消息发送成功"); 57 | //回主界面 58 | id("he").findOne().click(); 59 | sleep(300); 60 | id("b5i").findOne().click(); 61 | swipe(1400, 1800, 1100, 2000, 400); 62 | } 63 | } 64 | // 解锁 65 | function unlockPhone(password) { 66 | if (!device.isScreenOn()) { 67 | device.wakeUpIfNeeded(); 68 | sleep(100); 69 | swipe(800, 2600, 1200, 1600, 600); 70 | for (var i = 0; i < password.length; i++) { 71 | n = text(password[i].toString()).findOne(); 72 | n.parent().click(); 73 | sleep(600); 74 | } 75 | } 76 | } 77 | ======= 78 | // 解锁 79 | function unlockPhone(password) { 80 | if (!device.isScreenOn()) { 81 | device.wakeUpIfNeeded(); 82 | log("wake"); 83 | swipe(800, 2600, 1200, 1600, 500); 84 | for (var i = 0; i < password.length; i++) { 85 | n = text(password[i].toString()).findOne(); 86 | n.parent().click(); 87 | } 88 | } 89 | } 90 | threads.start(function(){ 91 | events.observeToast() 92 | events.onToast(function (toast) { 93 | >>>>>>> wechat/main 94 | var pkg = toast.getPackageName(); 95 | log("Toast内容: " + toast.getText() + 96 | " 来自: " + getAppName(pkg) + 97 | " 包名: " + pkg); 98 | <<<<<<< HEAD 99 | var nameAndMessageSet = toast.getText().toString().split(":"); 100 | ======= 101 | >>>>>>> wechat/main 102 | if (pkg == "com.tencent.mm" && currentActivity().search('com.tencent.mm') == -1) { 103 | // var nameAndMessageSet = toast.getText().toString().split(":"); 104 | // 锁屏密码 105 | var password = [0, 8, 1, 7]; 106 | // 解锁手机 107 | unlockPhone(password); 108 | <<<<<<< HEAD 109 | // 到达主屏 110 | sendAiMessageByName(nameAndMessageSet); 111 | } 112 | }); 113 | toast("监听中,请在日志中查看记录的Toast及其内容"); 114 | }); 115 | //启动另一个线程 116 | var sonThread = threads.start(function() { 117 | //微信无悬浮通知时,但在微信界面 118 | setInterval(function() { 119 | inChatSendMsg(); 120 | //主界面监控界面发消息 121 | function inChatSendMsg() { 122 | //主界面找到发消息的人,进去聊天界面 123 | var kmvSet = id("o_u").find(); 124 | if (kmvSet.length > 0) { 125 | log("有" + kmvSet.length + "个联系人给你发消息"); 126 | //单个联系人发的消息数量 127 | msgNum = kmvSet[0].getText(); 128 | /*通过子控件获取父控件 129 | var child = ui.findOne(new UiSelector().text("child")); 130 | var parent = child.parent(); 131 | */ 132 | //进去聊天界面 133 | kmvSet[0].parent().click(); 134 | var name = id("obn").findOne().getText(); 135 | log("进入*" + name + "*聊天对话"); 136 | if (name != "微信运动" && name != "微信支付" && name != "QQ邮箱提醒") { 137 | //id("he").findOne().click(); 138 | var all_msg = id("bkl").find(); 139 | if (all_msg.length > 0) { 140 | var new_msg = all_msg[all_msg.length - 1].text(); 141 | log("新消息*" + new_msg + "*"); 142 | var res = http.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg=" + new_msg); 143 | if (res.statusCode != 200) { 144 | log("请求失败: " + res.statusCode + " " + res.statusMessage); 145 | } else { 146 | var r_msg = res.body.json(); 147 | sendMsg = r_msg.content; 148 | setText(sendMsg); 149 | text('发送').findOne().click(); //点击 150 | log("消息发送成功"); 151 | sleep(2000); 152 | id("he").findOne().click(); 153 | } 154 | } else { 155 | log("未找到消息"); 156 | id("he").findOne().click(); 157 | } 158 | } else { 159 | log("自动退出"); 160 | id("he").findOne().click(); 161 | } 162 | 163 | } 164 | } 165 | }, 3000) 166 | }); 167 | //检测是否在主界面 微信 通讯录 发现 我 168 | function checkNewMsg() { 169 | if (id("he").exists()) { 170 | log("聊天界面"); 171 | id("he").findOne().click(); 172 | } 173 | //退出订阅号 174 | if (className("android.view.View").desc("订阅号消息").exists()) { 175 | className("android.widget.ImageView").desc("返回").findOne().click(); 176 | } 177 | //点击左下角微信 178 | text("微信").findOne().parent().click(); 179 | } 180 | ======= 181 | launchApp("微信"); 182 | } 183 | }); 184 | }) 185 | //主线程 186 | do { 187 | sleep(3000); 188 | inChatSendMsg(); 189 | } while (true); 190 | //主界面监控界面发消息 191 | function inChatSendMsg() { 192 | //主界面找到发消息的人,进去聊天界面 193 | var kmvSet = id("o_u").find(); 194 | if (kmvSet.length > 0) { 195 | log("有" + kmvSet.length + "个联系人给你发消息"); 196 | //单个联系人发的消息数量 197 | msgNum = kmvSet[0].getText(); 198 | /*通过子控件获取父控件 199 | var child = ui.findOne(new UiSelector().text("child")); 200 | var parent = child.parent(); 201 | */ 202 | //进去聊天界面 203 | kmvSet[0].parent().parent().parent().click(); 204 | var name = id("obn").findOne().getText(); 205 | log("进入*" + name + "*聊天对话"+"-新消息:"+msgNum); 206 | if (name != "微信运动" && name != "微信支付" && name != "QQ邮箱提醒") { 207 | //id("he").findOne().click(); 208 | var all_msg = id("bkl").find(); 209 | if (all_msg.length > 0) { 210 | //最新的消息 211 | var new_msg = all_msg[all_msg.length - 1].text(); 212 | log("新消息*" + new_msg + "*"); 213 | var res = http.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg=" + new_msg); 214 | if (res.statusCode != 200) { 215 | log("请求失败: " + res.statusCode + " " + res.statusMessage); 216 | } else { 217 | var r_msg = res.body.json(); 218 | sendMsg = r_msg.content; 219 | setText(sendMsg); 220 | text('发送').findOne().click(); //点击 221 | log("消息发送成功"); 222 | sleep(2000); 223 | id("he").findOne().click(); 224 | } 225 | } else { 226 | log("未找到消息"); 227 | id("he").findOne().click(); 228 | } 229 | } else { 230 | log("自动退出"); 231 | id("he").findOne().click(); 232 | } 233 | } 234 | } 235 | >>>>>>> wechat/main 236 | -------------------------------------------------------------------------------- /project.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "WeChat", 3 | "main": "main.js", 4 | "ignore": [ 5 | "build" 6 | ], 7 | "packageName": "org.autojs.wechat", 8 | "versionName": "1.0.0", 9 | "versionCode": 1 10 | } -------------------------------------------------------------------------------- /定时微信自动发消息.js: -------------------------------------------------------------------------------- 1 | /*微信自动发消息 2 | 可以把具体的步骤分解如下 : 3 | 4 | 如果手机在休眠,则唤醒屏幕解锁 ,否则直接下一步; 5 | 启动微信 ; 6 | 主界面直接搜索联系人,进去聊天界面,发消息 7 | 回主界面; 8 | auto.js 设定定时执行脚本, 每天6:30自动执行 ; 9 | 代码如下:*/ 10 | // 解锁 11 | function unlockPhone(password) { 12 | if (!device.isScreenOn()) { 13 | device.wakeUpIfNeeded(); 14 | sleep(100); 15 | swipe(800, 2600, 1200, 1600, 800); 16 | for (var i = 0; i < password.length; i++) { 17 | n = text(password[i].toString()).findOne(); 18 | n.parent().click(); 19 | sleep(600); 20 | } 21 | } 22 | } 23 | // 发微信消息 24 | function sendMessageByName(name) { 25 | launchApp("微信"); //打开微信 26 | //sleep(500); //避免卡顿 27 | id("gsl").findOne().click(); //搜索联系人 28 | //填入联系人 29 | id("cd7").findOne().setText(name); 30 | sleep(1000); 31 | //搜索到联系人后点击进去聊天界面 32 | id("kpm").findOne().parent().click(); 33 | //点击聊天输入框 34 | id("kii").findOne().parent().click(); 35 | //设置文本消息 36 | setText("晚安"); 37 | //sleep(500); 38 | id("b8k").findOne().click(); //点击发送 39 | //回主界面 40 | id("g0").findOne().click(); 41 | id("apy").findOne().click(); 42 | } 43 | auto.waitFor(); //无障碍检测 44 | setScreenMetrics(1440, 3200); //设置屏幕像素 45 | // 锁屏密码 46 | password = [0, 8, 1, 7]; 47 | // 解锁手机 48 | unlockPhone(password); 49 | // 到达主屏 50 | sendMessageByName("17305218161"); 51 | -------------------------------------------------------------------------------- /应用商店软件更新永久忽略.js: -------------------------------------------------------------------------------- 1 | auto.waitFor(); 2 | launchApp("应用商店") 3 | sleep(1000) 4 | text("我的").findOne().parent().click() 5 | sleep(500) 6 | text("应用升级").findOne().parent().click() 7 | sleep(500) 8 | while (true) { 9 | id("update_details").findOne().click(); 10 | sleep(100); 11 | id("ignore_permanently").findOne().click(); 12 | sleep(100); 13 | } -------------------------------------------------------------------------------- /微信主界面自动回复.js: -------------------------------------------------------------------------------- 1 | auto.waitFor(); 2 | 3 | console.show(); 4 | log("微信自动聊天机器人"); 5 | launchApp("微信"); 6 | sleep(1000); 7 | //等有收到新消息 8 | while (true) { 9 | sleep(1000) 10 | var kmvSet = id("kmv").find(); 11 | if (kmvSet.length == 0) { 12 | log("没有新消息"); 13 | } else if (kmvSet.length > 0) { 14 | log("有" + kmvSet.length + "联系人给你发消息"); 15 | //单个联系人发的消息数量 16 | msgNum = kmvSet[0].getText(); 17 | //log(kmvSet[i]); 18 | /*通过子控件获取父控件 19 | var child = ui.findOne(new UiSelector().text("child")); 20 | var parent = child.parent(); 21 | */ 22 | //进去聊天界面 23 | kmvSet[0].parent().click(); 24 | //调用在聊天界面发消息的方法 25 | inChatSendMsg() 26 | } 27 | } 28 | //聊天界面发消息 29 | function inChatSendMsg() { 30 | id("hp").findOne().children().forEach(child => { 31 | var target = child.findOne(id("b4b")); 32 | if (target) { 33 | child.click(); 34 | log("进入*" + id("ko4").findOne().getText() + "*聊天对话"); 35 | id("kii").findOne().click(); 36 | var sendMsg = ""; 37 | var all_msg = id("b4b").find(); 38 | var new_msg = all_msg[all_msg.length - 1].text(); 39 | if (sendMsg != new_msg) { 40 | if (all_msg.length > 0) { 41 | log("新消息*" + new_msg + "*"); 42 | var res = http.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg=" + new_msg); 43 | if (res.statusCode != 200) { 44 | log("请求失败: " + res.statusCode + " " + res.statusMessage); 45 | } else { 46 | var r_msg = res.body.json(); 47 | sendMsg = r_msg.content; 48 | setText(sendMsg); 49 | sleep(1000); 50 | id("b8k").findOne().click(); //点击 51 | log("消息发送成功"); 52 | sleep(2000); 53 | id("g0").findOne().click(); 54 | id("apy").findOne().click(); 55 | } 56 | } else { 57 | log("未找到聊天消息") 58 | } 59 | } 60 | } 61 | }) 62 | } -------------------------------------------------------------------------------- /微信消息多发.js: -------------------------------------------------------------------------------- 1 | //适配微信8.0.42版 2 | //聊天窗口,悬浮窗内开启脚本 3 | auto.waitFor(); 4 | //任意条自定义消息逗号隔开 5 | var strArray = [ 6 | "这是第一条消息", 7 | "这是第二条消息", 8 | "这是第三条消息", 9 | ] 10 | //发送单条或者多条消息 11 | function sendMsg() { 12 | for (var i = 0; i < strArray.length ; i++) { 13 | id("bkk").className("android.widget.EditText").findOne().setText(strArray[i]) 14 | //toastLog('发送') 15 | text("发送").findOne().click(); 16 | } 17 | sendMsg() 18 | } 19 | sendMsg() -------------------------------------------------------------------------------- /微信自动Ai回复toast监听.js: -------------------------------------------------------------------------------- 1 | auto(); 2 | events.observeToast(); 3 | events.onToast(function(toast) { 4 | // 发微信消息 5 | function sendAiMessageByName(name) { 6 | launchApp("微信"); //打开微信 7 | //sleep(500); //避免卡顿 8 | if (!id("dl").exists()) { 9 | //点击左下角微信 10 | id("kd_").className("android.widget.RelativeLayout").clickable(true).selected(true).findOne().click(); 11 | } 12 | id("gsl").findOne().click(); //搜索联系人 13 | //填入联系人 14 | id("cd7").findOne().setText(name[0]); 15 | sleep(800); 16 | //搜索到联系人后点击进去聊天界面 17 | id("kpm").findOne().parent().click(); 18 | //点击聊天输入框 19 | id("kii").findOne().parent().click(); 20 | //设置文本消息自动聊天 21 | var res = http.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg=" + name[1]); 22 | if (res.statusCode != 200) { 23 | log("请求失败: " + res.statusCode + " " + res.statusMessage); 24 | } else { 25 | var r_msg = res.body.json(); 26 | setText(r_msg.content); 27 | } 28 | sleep(500); 29 | id("b8k").findOne().click(); //点击发送 30 | //回主界面 31 | id("g0").findOne().click(); 32 | id("apy").findOne().click(); 33 | swipe(1400, 1800, 1100, 2000, 400); 34 | } 35 | // 解锁 36 | function unlockPhone(password) { 37 | if (!device.isScreenOn()) { 38 | device.wakeUpIfNeeded(); 39 | sleep(100); 40 | swipe(800, 2600, 1200, 1600, 600); 41 | for (var i = 0; i < password.length; i++) { 42 | n = text(password[i].toString()).findOne(); 43 | n.parent().click(); 44 | sleep(600); 45 | } 46 | } 47 | } 48 | var pkg = toast.getPackageName(); 49 | log("Toast内容: " + toast.getText() + 50 | " 来自: " + getAppName(pkg) + 51 | " 包名: " + pkg); 52 | if (pkg == "com.tencent.mm") { 53 | var nameAndMessageSet = toast.getText().toString().split(":"); 54 | // 锁屏密码 55 | var password = [0, 8, 1, 7]; 56 | // 解锁手机 57 | unlockPhone(password); 58 | // 到达主屏 59 | sendAiMessageByName(nameAndMessageSet); 60 | } 61 | 62 | }); 63 | toast("监听中,请在日志中查看记录的Toast及其内容"); -------------------------------------------------------------------------------- /指定联系朋友圈点赞.js: -------------------------------------------------------------------------------- 1 | //desc("微信").findOne().click(); 2 | launchApp("微信"); 3 | id("f2s").className("android.widget.TextView").text("发现").findOne().parent().click(); 4 | id("iwg").indexInParent(0).findOne().click(); 5 | username = "遗忘" 6 | while (true) { 7 | className("android.widget.ListView").findOne().scrollDown(); 8 | sleep(3000); 9 | var nicknames = id("hg4").className("android.widget.TextView").find(); 10 | if (nicknames.size() > 0) { 11 | nicknames.forEach(function(ele, index) { 12 | if (ele.text() == username) { 13 | toastLog("找到了" + ele.text()); 14 | id("nh").find()[index].click(); 15 | id("n3").findOne().click(); 16 | toastLog("已给" + ele.text() + "点赞成功"); 17 | //点第一条后停止 18 | //exit(); 19 | } else { 20 | toastLog("不是目标" + ele.text()); 21 | } 22 | }); 23 | } 24 | } -------------------------------------------------------------------------------- /消息轰炸.js: -------------------------------------------------------------------------------- 1 | function messageFire(msg, num) { 2 | var tip = ""; 3 | if (null != msg && '' != msg) { 4 | if (num != "" && !isNaN(num)) { 5 | for (var i = 1; i <= num; i++) { 6 | sendMessage(msg); 7 | } 8 | tip = "运行结束"; 9 | 10 | } else { 11 | tip = "只能输入正整数"; 12 | } 13 | } else { 14 | tip = "消息不能为空"; 15 | } 16 | log(tip); 17 | return tip; 18 | } 19 | 20 | // 发微信消息 21 | function sendMessage(msg) { 22 | //点击聊天输入框 23 | id("kii").findOne().click(); 24 | //设置文本消息 25 | setText(msg); 26 | id("b8k").findOne().click(); //点击发送 27 | } 28 | "auto"; //无障碍检测 29 | 30 | var msg = rawInput("请输入消息"); 31 | var num = rawInput("请输入轰炸次数"); 32 | toast(messageFire(msg, num)); -------------------------------------------------------------------------------- /酷安自动点赞.js: -------------------------------------------------------------------------------- 1 | auto.waitFor() 2 | launchApp("酷安"); 3 | //text("首页").findOne().click() 4 | sleep(1000) 5 | swipe(1000, 2700, 1100, 500, 200) 6 | sleep(2000) 7 | var qx = requestScreenCapture() 8 | if (!qx) { 9 | toastLog("请先授权"); 10 | exit(); 11 | } 12 | autoStar() 13 | 14 | function autoStar() { 15 | id("main_fragment").waitFor(); 16 | if (id("main_fragment").findOne()) { 17 | var dt = id("main_fragment").findOne().children().find(className("androidx.cardview.widget.CardView")) 18 | //toastLog(dt.size()) 19 | dt.forEach(child => { 20 | //var target = child.find(className("android.widget.LinearLayout").clickable(true).longClickable(true)); 21 | //target.click(); 22 | if (child.findOne(id("feed_action_view_like"))) { 23 | var star = child.findOne(id("feed_action_view_like")).children().findOne(id("image_view")) 24 | //toastLog("star-" + star) 25 | //star.click(); 26 | var bounds = star.bounds(); 27 | if (bounds) { 28 | var centerX = bounds.centerX(); 29 | var centerY = bounds.centerY(); 30 | if (centerY < 2950) { 31 | // 截取屏幕截图 32 | var img = captureScreen(); 33 | //var height = img.getHeight() 34 | // 获取控件star中心点的颜色 35 | var color = images.pixel(img, centerX, centerY); 36 | //toastLog(color) 37 | // 判断颜色是否为绿色 38 | if (colors.red(color) > 200 && colors.green(color) > 200 && colors.blue(color) > 200) { 39 | // 颜色为白色 40 | toastLog("star") 41 | click(centerX, centerY); 42 | sleep(1000) 43 | }else{ 44 | //toastLog("cancel star") 45 | //click(centerX, centerY); 46 | //sleep(1000) 47 | } 48 | } 49 | } else { 50 | toastLog("无法获取控件区域!"); 51 | } 52 | } 53 | }); 54 | } 55 | swipe(1000, 2950, 1100, 230, 200) 56 | sleep(500) 57 | autoStar() 58 | } 59 | 60 | // 获取屏幕控件的截图和颜色判断 61 | function checkColorAndClick() { 62 | // 截取屏幕截图 63 | var img = captureScreen(); 64 | 65 | // 获取控件的位置和大小 66 | var widget = text("某个控件的文本").findOne(); 67 | var bounds = widget.bounds(); 68 | 69 | // 计算控件的中心坐标 70 | var centerX = bounds.centerX(); 71 | var centerY = bounds.centerY(); 72 | 73 | // 获取控件中心点的颜色 74 | var color = images.pixel(img, centerX, centerY); 75 | 76 | // 判断颜色是否为绿色 77 | if (colors.red(color) < 10 && colors.green(color) > 200 && colors.blue(color) < 10) { 78 | // 颜色为绿色,执行点击操作 79 | click(centerX, centerY); 80 | } else if (colors.red(color) > 200 && colors.green(color) > 200 && colors.blue(color) > 200) { 81 | // 颜色为白色,不做处理 82 | // do nothing 83 | } else { 84 | // 其他颜色,可以根据自己的需求进行处理 85 | // do something else 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /音乐搜索.js: -------------------------------------------------------------------------------- 1 | /* 2 | Author Zhang Ruyi 3 | Data 2024.05.09 4 | Comment 音乐搜索自动点击下载脚本 5 | */ 6 | "ui"; 7 | ui.layout( 8 | 9 | 10 |