快手极速版自动刷视频
快手极速版自动刷视频// =============================================================================
//快手极速版自动刷视频(AIWROK 格式)
// 3. 增加 Engine 双模式(Agent / 无碍)自动切换
// 4. 增加防检测:随机时长 + 左侧滑动避开全屏按钮 + 统一弹窗处理
// 5. 严格 ES5 语法(var / function,无 let/const/arrow)
// =============================================================================
print.log("╔══════════════════════════════════════════╗");
print.log("║快手极速版自动刷视频║");
print.log("║随机时长 + 左侧滑动 + 弹窗自动关闭 ║");
print.log("╚══════════════════════════════════════════╝");
print.time();
// =============================================================================
//第一部分:配置(按需修改)
// =============================================================================
var CONFIG = {
// ===== 核心参数 =====
总刷视频次数: 100, // 总共刷多少个视频(0=无限循环)
最小停留秒: 8, // 每个视频最少停留秒数
最大停留秒: 18, // 每个视频最多停留秒数
滑动时长毫秒: 400, // 滑动时长(模拟人手)
滑动起点X比: 0.35, // 滑动起点 X 百分比(左侧,避开中心全屏按钮)
滑动起点Y比: 0.78, // 滑动起点 Y 百分比
滑动终点Y比: 0.22, // 滑动终点 Y 百分比
// ===== 启动参数 =====
启动后等待秒: 6, // App 启动后等待秒数
操作间隔毫秒: 800, // 点击之间冷却
// ===== App 信息 =====
App名称: "快手极速版",
App包名: "com.kuaishou.nebula",
// ===== 模式 =====
优先使用Agent模式: true,
调试模式: true
};
// =============================================================================
//第二部分:引擎(Agent / 无碍 双模式)
// =============================================================================
var Engine = {
mode: "",
屏幕宽: 1080,
屏幕高: 2400,
init: function() {
print.log("\n【引擎初始化】检测模式...");
if (CONFIG.优先使用Agent模式) {
try { if (agent.isOpen()) { this.mode = "agent"; print.log("✓ Agent代理模式"); } } catch(e) {}
}
if (this.mode === "") {
try { if (typeof auto !== 'undefined') { this.mode = "auto"; print.log("✓ 无碍(Accessibility)模式"); } } catch(e) {}
}
if (this.mode === "") {
print.log("✗ 两个模式都不可用!请开启 Agent 或无障碍后再跑");
return false;
}
// 获取屏幕尺寸
try {
if (this.mode === "agent") {
var raw = "" + agent.shell("wm size");
var m = raw.match(/(\d+)x(\d+)/);
this.屏幕宽 = m ? parseInt(m) : 1080;
this.屏幕高 = m ? parseInt(m) : 2400;
} else {
this.屏幕宽 = screen.getScreenWidth();
this.屏幕高 = screen.getScreenHeight();
}
} catch(e) {
this.屏幕宽 = 1080;
this.屏幕高 = 2400;
}
print.log("✓ 屏幕尺寸:" + this.屏幕宽 + " × " + this.屏幕高);
return true;
},
// 随机整数 [min, max)
randNum: function(minnum, maxnum) {
return Math.floor(minnum + Math.random() * (maxnum - minnum));
},
// 视频翻页滑动(左侧滑动,避开中心全屏按钮)
nextVideo: function() {
try {
auto.swipPercent_v2(
CONFIG.滑动起点X比, CONFIG.滑动起点Y比,
CONFIG.滑动起点X比, CONFIG.滑动终点Y比,
CONFIG.滑动时长毫秒, 0
);
} catch(e) {
// 兜底:用 agent.shell input swipe
try {
var x = Math.floor(this.屏幕宽 * CONFIG.滑动起点X比);
var y1 = Math.floor(this.屏幕高 * CONFIG.滑动起点Y比);
var y2 = Math.floor(this.屏幕高 * CONFIG.滑动终点Y比);
agent.shell("input swipe " + x + " " + y1 + " " + x + " " + y2 + " " + CONFIG.滑动时长毫秒);
} catch(e2) {
print.log("⚠ 滑动失败: " + e2.message);
}
}
sleep.millisecond(500);
},
// 点击百分比坐标
clickPercent: function(px, py) {
try {
auto.clickPercent(px, py);
} catch(e) {
try {
agent.shell("input tap " + Math.floor(this.屏幕宽 * px) + " " + Math.floor(this.屏幕高 * py));
} catch(e2) {}
}
sleep.millisecond(CONFIG.操作间隔毫秒);
},
// 返回键
back: function() {
try {
if (this.mode === "agent") agent.shell("input keyevent 4");
else auto.back();
} catch(e) {}
sleep.second(1);
},
// Home键
home: function() {
try {
if (this.mode === "agent") agent.shell("input keyevent 3");
else auto.home();
} catch(e) {}
sleep.second(2);
},
// 启动 App(按包名)—— 用 app.resetApp(昨天验证可行的 AIWROK 原生 API)
openApp: function(pkg, 名称) {
print.log("→ 启动:" + 名称 + "(" + pkg + ")");
try {
app.resetApp(pkg);
print.log("✓ 启动APP:" + pkg);
sleep.second(CONFIG.启动后等待秒);
return true;
} catch(e) {
print.log("⚠ app.resetApp 失败:" + e.message + ",尝试 monkey 兜底");
try {
agent.shell("monkey -p " + pkg + " -c android.intent.category.LAUNCHER 1");
sleep.second(CONFIG.启动后等待秒);
return true;
} catch(e2) {
print.log("✗ 启动完全失败:" + e2.message);
return false;
}
}
},
// 统一弹窗处理(关键词数组,借鉴 AutoX.js 风格)
关闭弹窗: function() {
var 弹窗词 = [
"我知道了", "知道了", "暂不开启", "以后再说", "取消",
"暂不更新", "下次再说", "拒绝", "不允许", "跳过", "关闭",
"暂不领取", "稍后再说", "不再提示"
];
try {
var 命中 = auto.findText(弹窗词.join("||"));
if (!命中) return false;
var 节点集合 = auto.nodeSearch(1500);
if (!节点集合) return false;
for (var i = 0; i < 弹窗词.length; i++) {
var 词 = 弹窗词;
var 过滤 = 节点集合.text(词);
if (过滤 && 过滤.count() > 0) {
var 节点 = 过滤.getNode(0);
if (节点) {
节点.click();
print.log("✓ 关弹窗:点击【" + 词 + "】");
sleep.second(1);
return true;
}
}
}
} catch(e) {
if (CONFIG.调试模式) print.log("- 弹窗检测异常: " + e.message);
}
return false;
}
};
// =============================================================================
//第三部分:快手极速版模块
// =============================================================================
var kuaishou = {
名称: CONFIG.App名称,
包名: CONFIG.App包名,
run: function(runTimes) {
print.log("\n━━━━━ 快手极速版 开刷 ━━━━━");
print.log("· 目标次数:" + (runTimes === 0 ? "无限循环" : runTimes));
print.log("· 停留秒数:" + CONFIG.最小停留秒 + " - " + CONFIG.最大停留秒);
// 1. 启动 App
if (!Engine.openApp(this.包名, this.名称)) {
print.log("✗ 启动失败,退出");
return;
}
// 2. 启动后关弹窗
Engine.关闭弹窗();
// 3. 主循环
var flagTime = 0;
var 开始时间戳 = Date.now();
while (runTimes === 0 || flagTime < runTimes) {
flagTime++;
var sleepSec = Engine.randNum(CONFIG.最小停留秒, CONFIG.最大停留秒);
var 已过秒 = ((Date.now() - 开始时间戳) / 1000).toFixed(0);
print.log("[快手 " + flagTime + (runTimes === 0 ? "" : "/" + runTimes) + "] 停留 " + sleepSec + "s | 累计 " + 已过秒 + "s");
sleep.second(sleepSec);
Engine.关闭弹窗();
Engine.nextVideo();
}
// 4. 退出回桌面
print.log("\n✓ 快手极速版任务完成,共刷 " + flagTime + " 个视频");
Engine.home();
}
};
// =============================================================================
//第四部分:启动入口
// =============================================================================
function main() {
if (!Engine.init()) {
print.log("✗ 引擎初始化失败,退出");
return;
}
print.log("\n╔══════════ 开始刷快手 ══════════╗");
print.log("· App:" + CONFIG.App名称);
print.log("· 包名:" + CONFIG.App包名);
print.log("· 总次数:" + (CONFIG.总刷视频次数 === 0 ? "无限循环" : CONFIG.总刷视频次数));
// 先回桌面
Engine.home();
sleep.second(2);
// 跑快手
try {
kuaishou.run(CONFIG.总刷视频次数);
} catch(e) {
print.log("⚠ 快手异常: " + e.message);
}
print.log("\n╔══════════ 全部完成 ══════════╗");
Engine.home();
}
// 启动
main();
页:
[1]