AutojsPro - 豆角酱油(QQ点赞组件)1. clickLikeButtonTurbo(clickCount, pattern, interval, turboMode) 方法用于从指定 URL 获取天气信息并保存到本地文件2.qqOnClick()方法读取txt文件中的QQ号码,资料页面
以下是对代码的详细解释:
极速多次点击点赞控件
@param {number} clickCount - 点击次数(默认20次)
@param {RegExp} pattern - 自定义匹配正则(默认/^\d+赞$/)
@param {number} interval - 点击间隔毫秒数(默认100)
@param {boolean} turboMode - 是否启用极速模式(默认true)
@returns {number} - 成功点击的次数
xxxxxxxxxx
/**
* 极速多次点击点赞控件
* @param {number} clickCount - 点击次数(默认20次)
* @param {RegExp} pattern - 自定义匹配正则(默认/^\d+赞$/)
* @param {number} interval - 点击间隔毫秒数(默认100)
* @param {boolean} turboMode - 是否启用极速模式(默认true)
* @returns {number} - 成功点击的次数
*/
function clickLikeButtonTurbo(clickCount, pattern, interval, turboMode) {
// 设置默认值
if (clickCount === undefined) clickCount = 20;
if (pattern === undefined) pattern = new RegExp("^\\d+赞$");
if (interval === undefined) interval = 100; // 默认100ms间隔
if (turboMode === undefined) turboMode = true; // 默认启用极速模式
let clicked = 0;
let lastPosition = null; // 记录上次成功点击的位置
// 极速模式配置
const turboSettings = {
findTimeout: turboMode ? 300 : 1000, // 控件查找超时
backupFindTimeout: turboMode ? 150 : 500, // 备用查找超时
minInterval: turboMode ? 150 : 250, // 最小间隔时间
maxInterval: turboMode ? 200 : 400 // 最大间隔时间
};
for (let i = 0; i < clickCount; i++) {
let found = false;
let startTime = new Date().getTime();
// 在循环中添加随机偏移
if (lastPosition) {
let offsetX = random(-5, 5);
let offsetY = random(-5, 5);
click(lastPosition.x + offsetX, lastPosition.y + offsetY);
}
// 尝试1:使用缓存位置点击(最快)
if (lastPosition) {
click(lastPosition.x, lastPosition.y);
clicked++;
found = true;
}
// 尝试2:快速查找新控件
if (!found) {
let target = descMatches(pattern).findOne(turboSettings.findTimeout);
if (target) {
// 记录控件位置
lastPosition = {
x: target.bounds().centerX(),
y: target.bounds().centerY()
};
// 极速点击逻辑
if (target.clickable()) {
target.click();
} else {
// 直接点击位置(跳过父控件查找)
click(lastPosition.x, lastPosition.y);
}
clicked++;
found = true;
}
}
// 尝试3:备用查找(更宽松的匹配)
if (!found) {
// 快速查找包含"赞"字的控件
let textTarget = textMatches(pattern).findOne(turboSettings.backupFindTimeout) ||
descContains("赞").findOne(turboSettings.backupFindTimeout) ||
textContains("赞").findOne(turboSettings.backupFindTimeout);
if (textTarget) {
lastPosition = {
x: textTarget.bounds().centerX(),
y: textTarget.bounds().centerY()
};
click(lastPosition.x, lastPosition.y);
clicked++;
found = true;
}
}
// 计算剩余等待时间
let elapsed = new Date().getTime() - startTime;
let remainingWait = Math.max(
turboSettings.minInterval,
interval - elapsed,
random(turboSettings.minInterval, turboSettings.maxInterval)
);
// 等待剩余时间(如果需要)
if (i < clickCount - 1 && remainingWait > 0) {
sleep(remainingWait);
}
}
toast("极速完成 " + clicked + "/" + clickCount + " 次点赞");
return clicked;
}
以下是对代码的详细解释:
xxxxxxxxxx
// 从文本中提取纯数字
function extractQQNumber(text) {
const match = text.match(/\d+/); // 使用正则提取连续数字
return match ? match[0] : null;
}
function qqOnClick() {
// 读取txt文件中的QQ号码
//var qqNumbers = $files.read("qq_numbers.txt").split("\n");
// 读取并处理文件内容
const content = $files.read("./qq_numbers.txt");
if (!content) {
toast("文件内容为空");
return;
}
// 处理数据并去重
const qqNumbers = new Set(
content.split("\n")
.map(line => extractQQNumber(line))
.filter(qq => qq && qq.length >= 5) // 过滤有效QQ号
);
// 给每个QQ号点赞十次
qqNumbers.forEach(function(qqNum) {
if (qqNum.trim() === "") return; // 跳过空行
sleep(800);
openQQ(qqNum.trim());
// 极速模式(默认参数)
clickLikeButtonTurbo();
});
toast("点赞任务完成!");
}