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("点赞任务完成!");}