You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

579 lines
20 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//悬浮窗主界面
var img_url = "http://cdnjson.com/images/2024/10/08/35521ea90f9dd7b5eb70563751db3f09.jpg";
suspendedWindow();
function suspendedWindow() {
window = floaty.rawWindow(
<horizontal gravity="center_vertical">
<img id="floaty_icon" src="{{img_url}}" w="40" h="40" alpha="0.8" circle="true" borderWidth="1dp" borderColor="black" />
<vertical id="v_drawer">
<button id="btn1" textColor="#FFFFFF" text="自动打开直播" bg="#4F4F4F" padding="0" h="70" w="70" />
<text text="" h="1" />
<button id="btn2" textColor="#FFFFFF" text="编辑文本" bg="#4F4F4F" padding="0" h="70" w="70" />
<text text="" h="1" />
<button id="btn3" textColor="#FFFFFF" text="滑屏、点赞、关注" bg="#4F4F4F" padding="0" h="70" w="70" />
<text text="" h="1" />
<button id="btn4" textColor="#FFFFFF" text="自动点赞" bg="#4F4F4F" padding="0" h="70" w="70" />
<text text="" h="1" />
<button id="btn5" textColor="#FFFFFF" text="发表评论" bg="#4F4F4F" padding="0" h="70" w="70" />
</vertical>
</horizontal>
);
window.setPosition(50, device.height / 3);
window.exitOnClose();
setInterval(() => { }, 1000);
var x = 0, y = 0;
var windowX, windowY;
var downTime;
console.log("w=" + device.width);
console.log("h=" + device.height);
window.floaty_icon.setOnTouchListener(function (view, event) {
switch (event.getAction()) {
case event.ACTION_DOWN:
x = event.getRawX();
y = event.getRawY();
windowX = window.getX();
windowY = window.getY();
downTime = new Date().getTime();
return true;
case event.ACTION_MOVE:
let movexx = windowX + (event.getRawX() - x);
let moveyy = windowY + (event.getRawY() - y);
if (movexx < 0 || movexx > device.width) {
movexx = 0;
}
if (moveyy < 0 || moveyy > device.height) {
moveyy = 0;
}
window.setPosition(movexx, moveyy);
console.log("event y=" + event.getRawY());
console.log("event x=" + event.getRawX());
return true;
case event.ACTION_UP:
if (Math.abs(event.getRawY() - y) < 5 && Math.abs(event.getRawX() - x) < 5) {
drawerStatus();
}
return true;
}
return true;
});
function drawerStatus() {
var v_drawer = window.v_drawer;
if (v_drawer.visibility == 0) {
v_drawer.visibility = 4;
} else {
v_drawer.visibility = 0;
}
}
// 功能1按钮事件
window.btn1.setOnTouchListener(function (view, event) {
if (event.getAction() == event.ACTION_UP) {
toast("功能1被点击");
threads.start(function () { // 创建新线程执行耗时操作
// 启动小红书APP
launchApp("小红书");
// 等待小红书启动完成这里等待2秒具体时间可能需要根据实际情况调整
sleep(2000);
click("发现");
// 执行下滑操作参数分别是操作类型滑动起始X坐标起始Y坐标结束X坐标结束Y坐标持续时间
swipe(500, 1000, 500, 1100, 500);
// 等待滑动动画完成这里等待500毫秒具体时间可能需要根据实际情况调整
sleep(500);
click("直播");
sleep(3000);
click(800, 1000);
});
}
return true;
});
// 功能2按钮事件
window.btn2.setOnTouchListener(function (view, event) {
if (event.getAction() == event.ACTION_UP) {
toast("功能2被点击");
threads.start(function() {
auto(); // 启用Auto.js的自动化功能
// 启动小红书APP
launchApp("小红书");
// 等待小红书启动完成这里等待4秒具体时间可能需要根据实际情况调整
sleep(4000);
setScreenMetrics(1200, 2652);
click(535,2550);
sleep(2000);
click("文字配图");
sleep(1000);
click(535,1325);
sleep(1000);
setText("Hello, Auto.js!");
click("生成");
sleep(5000);
click("确认");
sleep(1000);
click("发布笔记");
})
}
return true;
});
// 功能3按钮事件
window.btn3.setOnTouchListener(function (view, event) {
if (event.getAction() == event.ACTION_UP) {
toast("功能3被点击");
threads.start(function() {
// 设置屏幕分辨率
setScreenMetrics(1080, 1920);
// 请求悬浮窗权限和无障碍服务
if (!floaty.checkPermission()) {
floaty.requestPermission();
}
if (!auto.service) {
toast("请开启无障碍服务");
auto.waitFor();
}
var 悬块 = function (window, view) {
if (!window || !view) {
throw "缺参数";
}
this.x = 0, this.y = 0; // 记录触摸坐标
this.windowX, this.windowY; // 记录悬浮窗位置
this.downTime = 500; // 长按时间
this.Timeout = 0; // 定时器 ID
this.Click = function () { };
this.LongClick = function () { };
this.setClick = function (fun) {
if (typeof fun == "function") {
this.Click = fun;
}
};
this.setLongClick = function (fun, ji) {
if (typeof fun == "function") {
this.LongClick = fun;
if (parseInt(ji) <= 1000) {
this.downTime = parseInt(ji);
}
}
};
view.setOnTouchListener(new android.view.View.OnTouchListener((view, event) => {
switch (event.getAction()) {
case event.ACTION_DOWN:
this.x = event.getRawX();
this.y = event.getRawY();
this.windowX = window.getX();
this.windowY = window.getY();
this.Timeout = setTimeout(() => {
this.LongClick();
this.Timeout = 0;
}, this.downTime);
return true;
case event.ACTION_MOVE:
if (Math.abs(event.getRawY() - this.y) > 5 && Math.abs(event.getRawX() - this.x) > 5) {
if (this.Timeout) {
clearTimeout(this.Timeout);
this.Timeout = 0;
}
window.setPosition(this.windowX + (event.getRawX() - this.x), this.windowY + (event.getRawY() - this.y));
}
return true;
case event.ACTION_UP:
if (this.Timeout) {
clearTimeout(this.Timeout);
this.Timeout = 0;
this.Click();
}
return true;
}
return true;
}));
};
// 创建简化版的悬浮窗UI
var window = floaty.window(
<frame>
<vertical>
{/* <button id="start" text="开始" w="*" /> */}
<button id="stop" text="停止" w="*" />
</vertical>
</frame>
);
var bd = new 悬块(window, window.stop);
bd.setClick(() => {
isLiking = false; // 停止点赞
window.close(); // 关闭悬浮窗
toast("程序已结束"); // 提示信息
sleep(1000);
exit(); // 结束脚本
});
runAutomation();
// 自动化主功能
function runAutomation() {
launchApp("小红书");
sleep(3000);
enterVideo();
while(true){
sleep(2000);
// 点赞
var count= 2;
while(count){
click(500,800);
count= count-1;
}
sleep(2000);
// 关注
click("关注");
sleep(1000);
//滑屏
swipe(500, 1500, 500, 300, 500);
}
}
// 进入小红书直播
function enterVideo(){
swipe(500, 1000, 500, 1100, 500);
// 等待滑动动画完成这里等待500毫秒具体时间可能需要根据实际情况调整
sleep(1000);
click("直播");
sleep(1000);
click(200, 1000);
}
})
}
return true;
});
//功能4事件
window.btn4.setOnTouchListener(function (view, event) {
if (event.getAction() == event.ACTION_UP) {
toast("功能4被点击");
threads.start(function() {
// 定义悬浮窗控制模块,命名为(悬块)
var 悬块 = function (window, view) {
if (!window || !view) {
throw "缺参数";
}
this.x = 0, this.y = 0; // 记录触摸坐标
this.windowX, this.windowY; // 记录悬浮窗位置
this.downTime = 500; // 长按时间
this.Timeout = 0; // 定时器 ID
this.Click = function () { };
this.LongClick = function () { };
this.setClick = function (fun) {
if (typeof fun == "function") {
this.Click = fun;
}
};
this.setLongClick = function (fun, ji) {
if (typeof fun == "function") {
this.LongClick = fun;
if (parseInt(ji) <= 1000) {
this.downTime = parseInt(ji);
}
}
};
view.setOnTouchListener(new android.view.View.OnTouchListener((view, event) => {
switch (event.getAction()) {
case event.ACTION_DOWN:
this.x = event.getRawX();
this.y = event.getRawY();
this.windowX = window.getX();
this.windowY = window.getY();
this.Timeout = setTimeout(() => {
this.LongClick();
this.Timeout = 0;
}, this.downTime);
return true;
case event.ACTION_MOVE:
if (Math.abs(event.getRawY() - this.y) > 5 && Math.abs(event.getRawX() - this.x) > 5) {
if (this.Timeout) {
clearTimeout(this.Timeout);
this.Timeout = 0;
}
window.setPosition(this.windowX + (event.getRawX() - this.x), this.windowY + (event.getRawY() - this.y));
}
return true;
case event.ACTION_UP:
if (this.Timeout) {
clearTimeout(this.Timeout);
this.Timeout = 0;
this.Click();
}
return true;
}
return true;
}));
};
// 进入小红书并进行操作
function autoLikeInLiveRoom() {
launchApp("小红书");
sleep(3000); // 等待小红书启动完成
// 执行下滑操作
swipe(500, 1000, 500, 1100, 500);
sleep(500); // 等待滑动动画完成
click('直播'); // 点击直播按钮
sleep(1000); // 等待加载
click(200, 1000); // 进入直播间
}
// 创建并生成一个悬浮窗
var window = floaty.window(
<vertical bg="#2196F3">
<button id="but" w="300px" h="150px" text="停止点赞" />
<button id="end" w="300px" h="150px" text="结束程序" />
<text text="点赞速度: " />
<seekbar id="speedControl" max="10" progress="2" />
<text id="speedValue" text="2000ms" />
</vertical>
);
// 设置点赞速度变量
let likeInterval = 2000; // 默认点赞间隔(毫秒)
let isLiking = true; // 是否正在点赞
// 双击屏幕中间的函数
function doubleClickScreenCenter() {
// let width = device.width;
// let height = device.height;
// let centerX = width / 2;
// let centerY = height / 2;
click(535, 1250); // 第一次点击
sleep(100); // 等待100毫秒
click(535, 1250); // 第二次点击
}
// 启动自动点赞的循环
function startAutoLiking() {
while (isLiking) {
doubleClickScreenCenter(); // 执行点赞操作
sleep(likeInterval); // 根据设置的点赞速度等待
}
}
// 实时更新点赞速度
window.speedControl.setOnSeekBarChangeListener(new android.widget.SeekBar.OnSeekBarChangeListener({
onProgressChanged: function (seekBar, progress, fromUser) {
likeInterval = (progress + 1) * 1000; // 将进度转换为毫秒
window.speedValue.setText(likeInterval + "ms"); // 更新显示文本
},
onStartTrackingTouch: function (seekBar) { },
onStopTrackingTouch: function (seekBar) { }
}));
// 空运行定时器保持脚本运行中
setInterval(() => { }, 500);
// 创建一个新的悬浮控制模块
var ad = new 悬块(window, window.but);
var bd = new 悬块(window, window.end);
bd.setClick(() => {
isLiking = false; // 停止点赞
window.close(); // 关闭悬浮窗
toast("程序已结束"); // 提示信息
sleep(1000);
exit(); // 结束脚本
});
ad.setClick(() => {
log("已被点击");
if (isLiking) {
isLiking = false;
window.but.setText("开始点赞");
toast("已停止点赞");
} else {
isLiking = true;
window.but.setText("正在点赞...");
toast("开始自动点赞");
// 启动点赞循环在新线程中
threads.start(() => {
startAutoLiking();
});
}
});
autoLikeInLiveRoom();
sleep(likeInterval);
startAutoLiking();
// 脚本备份功能
脚本备份();
function 脚本备份(path) {
path = path || "/sdcard/备份脚本";
var file = new java.io.File(path);
var fromfile = String(engines.myEngine().getSource());
var filename = new java.io.File(fromfile).getName();
if (!file.isDirectory()) {
if (!file.mkdirs()) {
log("创建文件夹失败");
}
}
var txt = files.read(fromfile);
files.write(files.join(path, filename), txt);
}
})
}
return true;
});
//功能5按钮事件
window.btn5.setOnTouchListener(function (view, event) {
if (event.getAction() == event.ACTION_UP) {
toast("功能5被点击");
threads.start(function () { // 创建新线程执行耗时操作
launchApp("小红书");
// 等待小红书启动完成这里等待2秒具体时间可能需要根据实际情况调整
sleep(2000);
click("发现");
// 执行下滑操作参数分别是操作类型滑动起始X坐标起始Y坐标结束X坐标结束Y坐标持续时间
swipe(500, 1000, 500, 1100, 500);
// 等待滑动动画完成这里等待500毫秒具体时间可能需要根据实际情况调整
sleep(500);
click("直播");
sleep(1000);
click(800, 1000);
//2 点赞悬浮窗
var window = floaty.window(
<vertical>
<input id="input3" hint="请输入评论" textSize="40sp" focusable="true" />
<input id="input4" hint="评论次数" textSize="40sp" focusable="true" />
<button id="reBtn" text="随机评论" />
<button id="remarkBtn" text="动态评论" />
<button id="closeBtn" text="关闭悬浮窗" />
</vertical>
);
var s1 = 0;
var s2 = 0;
var remarkCounter = 3;
var commentText;
var List = ["666", "好可爱", "主播加油", "做的好棒", "太强了", "感谢主播!", "看得我心动", "收藏了", "牛逼"]; // 正能量语录
window.setPosition(device.width / 2 + 50, 50);
toast("长按确定键可调整位置");
window.input3.on("key", function (keyCode, event) {
if (event.getAction() == event.ACTION_DOWN && keyCode == keys.back) {
window.disableFocus();
event.consumed = true;
}
});
window.input3.on("touch_down", () => {
window.requestFocus();
window.input3.requestFocus();
});
window.input4.on("key", function (keyCode, event) {
if (event.getAction() == event.ACTION_DOWN && keyCode == keys.back) {
window.disableFocus();
event.consumed = true;
}
});
window.input4.on("touch_down", () => {
window.requestFocus();
window.input4.requestFocus();
});
window.remarkBtn.on("click", () => {
window.disableFocus();
inputContent = window.input3.getText();
remarkCounter = window.input4.getText();
if (inputContent == "") inputContent = "666";
if (remarkCounter < 1) remarkCounter = 1;
commentText = inputContent; // 设置评论的文本内容
log(commentText);
s1 = 1;
});
window.reBtn.on("click", () => {
window.disableFocus();
remarkCounter = window.input4.getText();
if (remarkCounter < 1) remarkCounter = 1;
s2 = 1;
});
window.closeBtn.on("click", () => {
window.close();
exit();
});
setInterval(() => {
if (s1 == 1) {
var liveTab = text("说点什么…").findOne();
click(liveTab.bounds().centerX(), liveTab.bounds().centerY());
s1 = 2;
}
else if (s1 == 2) {
setText(commentText);
s1 = 3;
}
else if (s1 == 3) {
var sendButton = text("发送").findOne();
click(sendButton.bounds().centerX(), sendButton.bounds().centerY());
s1 = 1;
remarkCounter--;
if (remarkCounter == 0) s1 = 0;
}
else if (s2 == 1) {
var liveTab = text("说点什么…").findOne();
click(liveTab.bounds().centerX(), liveTab.bounds().centerY());
s2 = 2;
}
else if (s2 == 2) {
var rand = Math.floor(Math.random() * List.length);
setText(List[rand]);
s2 = 3;
}
else if (s2 == 3) {
var sendButton = text("发送").findOne();
click(sendButton.bounds().centerX(), sendButton.bounds().centerY());
s2 = 1;
remarkCounter--;
if (remarkCounter == 0) s2 = 0;
}
}, 1000);
});
}
return true;
});
}