3 Star 0 Fork 0

asst_tech/gdt_hb

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
凹音短视频.js 13.04 KB
一键复制 编辑 原始数据 按行查看 历史
落尘 提交于 2020-11-08 01:41 . 脚本修改,为测试兼容utils.js
if (files.cwd().endsWith("脚本")) {
let _require = require;
require = function (path) {
if (path.startsWith("./")) {
path = path.replace("./", "");
}
path = files.cwd() + "/gdt_hb/" + path;
return _require(path);
}
}
auto.waitFor()
var utils = require("./utils.js");
var storage = storages.create("xiangxiangyuedu");
var time = random(2000, 3000)
function launchAppEnhance(app_name) {
let thread = threads.start(function () {
toastLog("检查是否有打开权限!");
while (true) {
var allow = text("允许").findOne(5000);
if (allow) {
sleep(1000)
toastLog("发现允许授权!");
allow.click();
sleep(1000);
thread.interrupt();
break;
}
}
});
sleep(1000);
var result = launchApp(app_name);
sleep(3000);
thread.interrupt();
return result;
}
function swip_up() {
var w = device.width
var h = device.height
function bezier_curves(cp, t) {
cx = 3.0 * (cp[1].x - cp[0].x);
bx = 3.0 * (cp[2].x - cp[1].x) - cx;
ax = cp[3].x - cp[0].x - cx - bx;
cy = 3.0 * (cp[1].y - cp[0].y);
by = 3.0 * (cp[2].y - cp[1].y) - cy;
ay = cp[3].y - cp[0].y - cy - by;
tSquared = t * t;
tCubed = tSquared * t;
result = { "x": 0, "y": 0 };
result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x;
result.y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp[0].y;
return result;
};
function sml_move(qx, qy, zx, zy, time) {
//仿真随机带曲线滑动: qx, qy, zx, zy, time 代表起点x,起点y,终点x,终点y,过程耗时单位毫秒
var xxy = [time];
var point = [
{ "x": qx, "y": qy },
{ "x": random(qx - 100, qx + 100), "y": random(qy, qy + 50) },
{ "x": random(zx - 100, zx + 100), "y": random(zy, zy + 50) },
{ "x": zx, "y": zy }
];
for (let i = 0; i < 1; i += 0.08) {
xxyy = [parseInt(bezier_curves(point, i).x), parseInt(bezier_curves(point, i).y)]
xxy.push(xxyy);
}
gesture.apply(null, xxy);
}
sml_move(w / 2, h * 0.8 + h * random() * 0.1, w / 2, h * 0.15, 200 + 600 * random());
}
function closeAdWebView(time) {
if(!time){
time = 4000;
}
console.log("closeAdWebView:", time)
var adWebView = className("com.tencent.tbs.core.webkit.WebView").depth(6).drawingOrder(0).findOne(time);
if (adWebView) {
back();
}
}
// 点击控件坐标,控件的clickbale为false的时候
function 点击控件(x) {
var weight = x.bounds()
click(weight.centerX(), weight.centerY())
}
function login() {
var 立即登录 = text('立即登录').findOne(20000)
if (立即登录) {
toastLog('在登录界面,尝试登录')
var 手机号 = text('请输入手机号码').clickable().findOne(5000)
if (手机号) {
sleep(time)
手机号.click()
sleep(time)
if (device.model == 'Redmi 8A') {
click(random(96, 663), random(642, 729))
}
if (device.model == 'MI 5X') {
click(random(165, 800), random(493, 608))
}
}
sleep(time)
立即登录.click()
} else {
toastLog('已经是登录状态')
sleep(time)
}
}
function task() {
var 首页 = text('首页').findOne()
if (首页) {
var 倒计时 = id('com.aoyindsptv.phonelive:id/img_adlogo').findOne(5000)
if (倒计时) {
let index = 1;
let count = 50;
while (index <= count) {
var random_time = random(6000, 8000);
toastLog("观看" + "" + index + "/" + count + "个视频中...");
sleep(2000)
toastLog("预计时长" + (random_time / 1000) + "秒~");
sleep(random_time);
index++;
swip_up()
var 领钻石 = text('看广告领钻石').findOne(1000)
if (领钻石) {
var finalActivity = currentActivity();
领钻石.parent().click()
//可能会出现广告无法加载情况
var avatar = id('com.aoyindsptv.phonelive:id/avatar').findOne(1000)
if (!avatar) {
toastLog('当前是在广告界面')
utils.waitAdvert(finalActivity);
break
}
}
}
} else {
toastLog('您已经完成观看视频的任务')
sleep(time)
}
utils.updateAppProgress(20);
} else {
toastLog('没进入首页,任务运行失败')
}
}
function swipeBottom() {
var w = device.width;
var h = device.height;
var centerX = w / 2;
var centerY = h / 2;
swipe(30, centerY + 400, 30, centerY - 400, 200);
var 拒绝 = text("拒绝").findOne(800)
if (拒绝) {
拒绝.click()
}
}
function swipeTop() {
var w = device.width;
var h = device.height;
var centerX = w / 2;
var centerY = h / 2;
swipe(30, centerY - 400, 30, centerY + 400, 200);
var 拒绝 = text("拒绝").findOne(800)
if (拒绝) {
拒绝.click()
}
}
//每日任务
function 等待阅读完毕() {
var time = textEndsWith("").findOne();
utils.realClick(time);
sleep(8000);
swip_up();
sleep(2000);
var count = 0;
//开始上滑 下滑 积攒进度条 进度条消失后 代表任务已经完成
var swipeCount = 1;
while (true) {
var close = id("tt_insert_dislike_icon_img").findOne(200);
if (close) {
count=0;
toast("发现广告进行关闭");
close.click();
sleep(500);
}
close = className("android.widget.ImageView").clickable().depth(4).drawingOrder(2).findOne(200);
if (close) {
count=0;
toast("发现广告进行关闭");
close.click();
sleep(500);
}
if (id("iv_red_pack").findOne(200)) {
count=0;
toast("还未完成阅读任务 继续滑动");
sleep(1000);
if (swipeCount % 2 == 0) {
// swipeBottom();
swip_up();
} else {
swipeTop();
}
swipeCount++;
} else {
toast("检测到 阅读进度条已经消失", count);
count++;
if (count >= 3) {
toast("已经完成任务");
break;
}
}
sleep(800);
//进行滑动
}
back();
sleep(1000);
back();
sleep(1000);
}
function 点击每日任务(){
var 每日任务 = text("每日任务").findOne();
每日任务.parent().click();
closeAdWebView();
}
function myTask2() {
var w = device.width;
var h = device.height;
// click(w / 2, h / 2);
waitForActivity("com.aoyindsptv.main.activity.MainActivity")
utils.swip_up();
sleep(1000)
utils.swip_down();
closeAdWebView();
//每日任务
var 我的 = text("我的").findOne(60000);
if (我的) {
utils.realClick(我的);
closeAdWebView();
sleep(1000);
点击每日任务();
sleep(1000);
//看视频4次
toastLog("开始第一个任务")
var 激励视频 = utils.near(text("做任务 得钻石").findOne(), textStartsWith("激励视频"))
if(!激励视频){
toastLog('激励视频 未找到');
return ;
}
var 激励视频_去完成 = utils.near(激励视频, text("去完成"), 2);
if(!激励视频_去完成){
toastLog('激励视频_去完成 未找到');
return ;
}
while (激励视频_去完成) {
var finalActivity = currentActivity();
utils.realClick(激励视频_去完成);
utils.waitAdvert(finalActivity);
sleep(2000);
if(currentActivity() === finalActivity){
//判断是否有弹窗广告
var _adClose = className("android.widget.ImageView").clickable().depth(4).drawingOrder(2).findOne(2000);
if(_adClose){
_adClose.click();
sleep(500);
}
}
激励视频 = utils.near(text("做任务 得钻石").findOne(), textStartsWith("激励视频"))
激励视频_去完成 = utils.near(激励视频, text("去完成"), 2);
}
// for (var i = 1; i <= 4; i++) {
// var first = textEndsWith("完成").find()[0];
// if(first.text() == "已完成"){
// break;
// }
// var finalActivity = currentActivity();
// textEndsWith("完成").find()[0].click();
// // 等待视频播放完毕();
// sleep(5000);
// utils.waitAdvert(finalActivity);
// sleep(3000);
// }
toastLog("结束第一个任务")
utils.updateAppProgress(30);
toastLog("开始第二个任务")
//阅读任务1次
var 阅读任务 = utils.near(text("做任务 得钻石").findOne(), textStartsWith("阅读任务"))
if(!阅读任务){
toastLog('阅读任务');
return ;
}
var 阅读任务_去完成 = utils.near(阅读任务, text("去完成"), 2);
if(!阅读任务_去完成){
toastLog('阅读任务_去完成');
return ;
}
while (阅读任务_去完成) {
utils.realClick(阅读任务_去完成);
sleep(4000);
等待阅读完毕();
sleep(2000);
//进行回退
阅读任务 = utils.near(text("做任务 得钻石").findOne(), textStartsWith("阅读任务"))
阅读任务_去完成 = utils.near(阅读任务, text("去完成"), 2);
}
// textEndsWith("完成").find()[1].click();
// 等待阅读完毕();
toastLog("结束第二个任务")
utils.updateAppProgress(40);
sleep(3000);
var 领取任务奖励 = utils.near(text("做任务 得钻石").findOne(), id("get_task"))
if(!领取任务奖励){
toastLog('领取任务奖励');
return ;
}
var 开始按钮 = 领取任务奖励;//点击我知道了 弹窗开始按钮 和该按钮是在同一个位置 因此可以这样搞
if (领取任务奖励.enabled()) {
utils.realClick(领取任务奖励);
var 我知道了 = text("我知道了").findOne(60000);
我知道了 && 我知道了.click();
sleep(20000);
utils.realClick(开始按钮);
sleep(10000);
back();
点击每日任务();//需要重新回到每日任务
// var w = device.width;
// var h = device.height;
// recents();
// sleep(2000);
// recents();
// var 我不要了 = text("我不要了").findOne(60000);
// if (我不要了) {
// sleep(2000);
// 我不要了.click();
// sleep(5000);
// }
}
utils.updateAppProgress(60);
//看视频4次
toastLog("开始第三个任务")
激励视频 = utils.near(text("做任务 得贡献值").findOne(), textStartsWith("激励视频"))
if(!激励视频){
toastLog('激励视频');
return ;
}
激励视频_去完成 = utils.near(激励视频, text("去完成"), 2);
if(!激励视频_去完成){
toastLog('激励视频_去完成');
return ;
}
while (激励视频_去完成) {
var finalActivity = currentActivity();
utils.realClick(激励视频_去完成);
utils.waitAdvert(finalActivity);
sleep(2000);
激励视频 = utils.near(text("做任务 得贡献值").findOne(), textStartsWith("激励视频"))
激励视频_去完成 = utils.near(激励视频, text("去完成"), 2);
}
toastLog("结束第三个任务")
utils.updateAppProgress(70);
toastLog("开始第四个任务")
//阅读任务1次
var 阅读任务 = utils.near(text("做任务 得贡献值").findOne(), textStartsWith("阅读任务"))
if(!阅读任务){
toastLog('阅读任务');
return ;
}
var 阅读任务_去完成 = utils.near(阅读任务, text("去完成"), 2);
if(!激励视频_去完成){
toastLog('激励视频_去完成');
return ;
}
while (阅读任务_去完成) {
utils.realClick(阅读任务_去完成);
sleep(4000);
等待阅读完毕();
sleep(2000);
阅读任务 = utils.near(text("做任务 得贡献值").findOne(), textStartsWith("阅读任务"))
var 阅读任务_去完成 = utils.near(阅读任务, text("去完成"), 2);
}
// textEndsWith("完成").find()[1].click();
// 等待阅读完毕();
toastLog("结束第四个任务")
utils.updateAppProgress(80);
sleep(3000);
领取任务奖励 = utils.near(text("做任务 得贡献值").findOne(), id("get_task"))
if(!激励视领取任务奖励频_去完成){
toastLog('激励视频领取任务奖励_去完成');
return ;
}
if (领取任务奖励.enabled()) {
utils.realClick(领取任务奖励);
var 我知道了 = text("我知道了").findOne(60000);
我知道了 && 我知道了.click();
sleep(20000);
utils.realClick(开始按钮);
sleep(10000);
back();
}
toast("执行完毕");
} else {
log("寻找我的按钮失败");
}
}
function main() {
var open_app = launchAppEnhance("凹音短视频")
if (open_app) {
var thread_1 = threads.start(function () {
toastLog("检查广告弹窗")
while (true) {
var widget = text("确定").findOne(2000);
if (widget) {
点击控件(widget)
}
// closeAdWebView(200);
// sleep(1000);
}
})
// login()
task()
// myTask()
myTask2()
thread_1.interrupt()
} else {
toastLog("凹音短视频打开失败,请确认是否安装并授权打开!");
}
}
try {
main();
utils.updateAppProgress(100);
} catch (error) {
toastLog(error);
}
storage.put("script_running_status", "end");
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/asst_tech/gdt_hb.git
git@gitee.com:asst_tech/gdt_hb.git
asst_tech
gdt_hb
gdt_hb
master

搜索帮助

D67c1975 1850385 1daf7b77 1850385