红包多多视频估计是刚出的,各个方面都还可以。已经集成到薅羊毛专业版里。
视频APP下载地址:https://www.qqtn.com/azsoft/530059.html 一般商店没有
和长豆视频差不多,定时给金豆子。本次已经实现点击金豆子和关闭金豆子广告,大家可以使用。
auto.waitFor();//判断和等待开启无障碍 let see_count = 1000;// rawInput('请输入滑动次数','1000');//手动输入滑动次数默认是1000次。 let appName = "红包多多视频" app.launchApp(appName);//只有一个快手极速版所以直接Launch就可以,不用包名 console.show(); //开启日志(悬浮窗权限) console.info(appName); sleep(12000);//等待splash时间手机不好长点 probability=10;//概率自动点赞、评论、关注的概率 timesInterval=8;//间隔时间 CurveBrushScreen=false;//是否曲线滑动true取消滑动false直线滑动 sleep(12000);//等待splash时间手机不好长点 adolescentWindows();//关闭青少年窗口 id = dialog_close clickControl(id("dialog_close")); clickControl(text("小视频")); for (var i = 1; i < see_count; i++) { toastLog(appName + "滑动" + i + "次" + "总计:" + see_count + "次");//系统自带目前我huweinova不显示还不知道为啥 let x1 = random( device.width *0.2, device.width *0.3); let y1 = device.height - (device.height * 0.2) let x2 = random( device.width *0.2, device.width *0.3); let y2 = device.height * 0.1 let pressTime =random(400,600); clickGoldBubble(); closeAD(); randomHeart('ic_like', probability);//随机关注百分之一的概率 randomUpSildeScreen(x1, y2, x1, y1, pressTime, probability); randomDownSildeScreen(x1, y1, x2, y2, pressTime, timesInterval, probability); slideScreenDown(x1, y1, x2, y2, pressTime, timesInterval, CurveBrushScreen); } //关闭当前程序 home();//回到首页id = newsgold_coin_tx1 function clickGoldBubble(){ try { clickControl(id("newsgold_coin_tx1")); clickControl(id("money_dialog_getcash_new2_close")); } catch (error) { //toastError(error); } } function closeAD(){ clickControl(id("money_dialog_getcash_new2_close")); } function autoCashOut() { try { if(clickControl(text("我的"))){ if(clickControl(text("提现"))){ if(clickControl(text("立即提现"))){ sleep(random(3000,5000)); } } } } catch (error) { toastError(error); } } //id = txt_coin_close /** * 点击UI上的控件 * @param {UI上的元素} element */ function clickControl(element){ let clickResult=false; try { if (element.exists()) { toastLog("准备click:"+element.findOnce().getText()); let clickable=element.findOnce().clickable();//是否可以点击 if(clickable){ clickResult=element.findOnce().click(); sleep(random(1000,1200)); }else{ let b = element.findOnce().bounds(); clickResult=click(b.centerX(),b.centerY()); sleep(random(1000,1200)); } } return clickResult; } catch (error) { toastError(error) return false; } } /** * 元素对象 * @param {ID或name} obj */ function uiSelector(obj){ let element=null; try { if(text(""+obj+"").exists()){ element=text(""+obj+""); return element; } if(desc(""+obj+"").exists()){ element=desc(""+obj+""); return element; } if(id(""+obj+"").exists()){ element=id(""+obj+""); return element; } } catch (error) { return null; } } /** * 随机点赞 * @param {点赞ID}} view_id */ function randomHeart(view_id, probability) { index = random(1, parseInt(probability)); if (index == 1) { var target = id(view_id).findOnce(); if (target == null) { return; } else { target.click(); sleep(1000); } } } /** * 随机关注 * @param {控件ID} follow_view_id * @param {概率} probability */ function randomFollow(follow_view_id, probability) { index = random(1, parseInt(probability)); if (index == 1) { var target = id(follow_view_id).findOnce(); if (target == null) { return; } else { target.click(); sleep(1000); } } } function clickCancle(){ if(text("取消").exists()){ text("取消").findOnce().click(); } } function clickVideoMenu(){ toastError("视频"); if(id("main_tv_video").exists()){ let b= id("main_tv_video").findOnce().bounds(); click(b.centerX(),b.centerY()); } else{ let video=text("视频").find(); let b=video[1].bounds(); click(b.centerX(),b.centerY()); } } /** * 青少年窗口 */ function adolescentWindows() { if (text("我知道了").exists()) { text("我知道了").findOnce().click(); } if (text("知道了").exists()) { text("知道了").findOnce().click(); } } /** * 直接无视 */ function closeUpgrageTip() { if (text("直接无视").exists()) { text("直接无视").findOnce().click(); } if (text("刷新重试").exists()) { text("刷新重试").findOnce().click(); } } /**随机点赞并休息一秒 */ function randomHeart() { index = random(1, 10); if (index == 1) { var target = id('ic_like').findOnce(); if (target == null) { return; } else { target.click(); sleep(1000); } } } /** * 贝塞尔曲线 * @param {坐标点} ScreenPoint * @param {偏移量} Offset */ function bezier_curves(ScreenPoint, Offset) { cx = 3.0 * (ScreenPoint[1].x - ScreenPoint[0].x); bx = 3.0 * (ScreenPoint[2].x - ScreenPoint[1].x) - cx; ax = ScreenPoint[3].x - ScreenPoint[0].x - cx - bx; cy = 3.0 * (ScreenPoint[1].y - ScreenPoint[0].y); by = 3.0 * (ScreenPoint[2].y - ScreenPoint[1].y) - cy; ay = ScreenPoint[3].y - ScreenPoint[0].y - cy - by; tSquared =Offset * Offset; tCubed = tSquared * Offset; result = { "x": 0, "y": 0 }; result.x = (ax * tCubed) + (bx * tSquared) + (cx * Offset) + ScreenPoint[0].x; result.y = (ay * tCubed) + (by * tSquared) + (cy * Offset) + ScreenPoint[0].y; return result; } /** * 滑动(默认概率是百分之三十) * @param {*} qx * @param {*} qy * @param {*} zx * @param {*} zy * @param {*} time * @param {*} timesInterval */ function slideScreenDown(qx, qy, zx, zy, time, timesInterval,CurveBrushScreen) { if (CurveBrushScreen) { curveDown(qx, qy, zx, zy, time, timesInterval); //曲线概率 } else { lineDown(qx, qy, zx, zy, time, timesInterval); //直线概率 } } /** * 概率0-9 大于3的时候采用曲线概率 小于3的时候直线概率 */ function randomFunction(){ return Math.floor(Math.random() * 10); } function curveDown(qx, qy, zx, zy, time,timesInterval){ toastInfo("曲线滑动"); var xxy = [time]; var point = []; var dx0 = { "x": qx, "y": qy }; var dx1 = { "x": random(qx - 100, qx + 100), "y": random(qy, qy + 50) }; var dx2 = { "x": random(zx - 100, zx + 100), "y": random(zy, zy + 50), }; var dx3 = { "x": zx, "y": zy }; for (var i = 0; i < 4; i++) { eval("point.push(dx" + i + ")"); }; for (let i = 0; i < 1; i += 0.08) { let newPoint=bezier_curves(point, i); xxyy = [parseInt(newPoint.x), parseInt(newPoint.y)] xxy.push(xxyy); } gesture.apply(null, xxy); let randomMin = timesInterval * 1000; let randomMax = (parseInt(timesInterval) + 2) * 1000; let delayTime = random(randomMin, randomMax); sleep(delayTime); } /** * 屏幕向下滑动并延迟8至12秒 */ function lineDown(startX, startY, endX, endY, pressTime, timesInterval) { toastInfo("屏幕向下滑动"); swipe(startX, startY, endX, endY, pressTime); let randomMin = timesInterval * 1000; let randomMax = (parseInt(timesInterval) + 2) * 1000; let delayTime = random(randomMin, randomMax); sleep(delayTime); } /** * 按照指定概率随机上滑 * @param {*} startX * @param {*} startY * @param {*} endX * @param {*} endY * @param {*} pressTime * @param {*} probability */ function randomUpSildeScreen(startX, startY, endX, endY, pressTime, probability) { let randomIndex = random(1, parseInt(probability)); if (randomIndex == 1) { swipe(startX, startY, endX, endY, pressTime); delayTime = random(12000, 15000); sleep(delayTime); } } /** * 连续下滑对上一个无兴趣 * 其实得和上滑做个排他,既然无兴趣不要在上滑 */ function randomDownSildeScreen(startX, startY, endX, endY, pressTime, timesInterval, probability) { let randomIndex = random(1, parseInt(probability)); if (randomIndex == 1) { swipe(startX, startY, endX, endY, pressTime); sleep(2000); swipe(startX, startY, endX, endY, pressTime); sleep(timesInterval); } } /** * 输出Tosat和Info日志 * @param {日志消息} messagge */ function toastInfo(message) { toast(message) console.info(message) } /** * 输出Tosat和Error日志 * @param {日志消息} messagge */ function toastError(message) { toast(message) console.error(message) } function toastLog(message) { toast(message) console.log(message) } function toastWarn(message) { toast(message) console.warn(message) }