抖音评论脚本插件,关注私信打招呼点赞,autojs工具开发版

9 阅读1分钟

下载地址:m.pan38.com/download.ph…  提取码:7777

包含完整的抖音自动化功能模块,包括随机点赞、智能评论、关注用户和私信问候等功能。代码结构清晰,包含错误处理和恢复机制,配置参数可自定义。使用时请注意遵守平台规则,合理控制操作频率。

// 抖音自动化脚本 v1.0
// 需要Auto.js 4.1.1及以上版本支持
const _VERSION = "1.0.20250703";
const _MAX_RETRY = 3;
let config = {
    commentList: ["真不错", "感谢分享", "学到了", "666"],
    greetMsg: "你好,关注你很久了",
    likeProbability: 0.8,
    maxOperateCount: 50,
    interval: [2000, 5000]
};

function main() {
    if (!prepare()) return;
    
    let count = 0;
    while (count < config.maxOperateCount) {
        try {
            if (!scrollAndFind()) break;
            
            // 随机执行操作序列
            let ops = shuffleArray(['like', 'comment', 'follow', 'greet']);
            ops.forEach(op => {
                switch(op) {
                    case 'like':
                        randomLike();
                        break;
                    case 'comment':
                        randomComment();
                        break;
                    case 'follow':
                        tryFollow();
                        break;
                    case 'greet':
                        tryGreet();
                        break;
                }
                sleep(random(...config.interval));
            });
            
            count++;
            log("已完成操作: " + count);
        } catch(e) {
            logError(e);
            if (!recover()) break;
        }
    }
    toast("脚本执行完成");
}

function prepare() {
    auto(); // 确保无障碍服务已开启
    if (!requestScreenCapture()) {
        toast("请授予屏幕截图权限");
        return false;
    }
    launchApp("抖音");
    sleep(3000);
    return true;
}

function scrollAndFind() {
    for (let i = 0; i < _MAX_RETRY; i++) {
        let video = findVideoItem();
        if (video) return true;
        scrollDown();
        sleep(2000);
    }
    return false;
}

function findVideoItem() {
    let selector = 'desc("视频").depth(16).drawingOrder(1)';
    return findOneOrNull(selector, 3000);
}

function randomLike() {
    if (Math.random() > config.likeProbability) return;
    
    let likeBtn = findOneOrNull('desc("未点赞")', 1000);
    if (likeBtn) {
        likeBtn.click();
        log("点赞成功");
        return true;
    }
    return false;
}

function randomComment() {
    let commentBtn = findOneOrNull('desc("评论")', 1000);
    if (!commentBtn) return false;
    
    commentBtn.click();
    sleep(1000);
    
    let input = findOneOrNull('className("EditText")', 1000);
    if (!input) {
        back();
        return false;
    }
    
    let text = config.commentList[random(0, config.commentList.length-1)];
    input.setText(text);
    sleep(500);
    
    let sendBtn = findOneOrNull('desc("发送")', 1000);
    if (sendBtn) {
        sendBtn.click();
        log("评论成功: " + text);
    }
    sleep(1000);
    back();
    return true;
}

function tryFollow() {
    let followBtn = findOneOrNull('desc("关注")', 1000);
    if (!followBtn) return false;
    
    let rect = followBtn.bounds();
    if (rect.width() < 50 || rect.height() < 30) return false;
    
    followBtn.click();
    log("关注成功");
    return true;
}

function tryGreet() {
    if (!tryFollow()) return false;
    sleep(1000);
    
    let avatar = findOneOrNull('desc("头像")', 1000);
    if (!avatar) return false;
    
    avatar.click();
    sleep(2000);
    
    let msgBtn = findOneOrNull('desc("发消息")', 1000);
    if (!msgBtn) {
        back();
        return false;
    }
    
    msgBtn.click();
    sleep(1000);
    
    let input = findOneOrNull('className("EditText")', 1000);
    if (!input) {
        back();
        return false;
    }
    
    input.setText(config.greetMsg);
    sleep(500);
    
    let sendBtn = findOneOrNull('desc("发送")', 1000);
    if (sendBtn) {
        sendBtn.click();
        log("私信发送成功");
    }
    sleep(1000);
    back();
    back();
    return true;
}

// 工具函数
function findOneOrNull(selector, timeout) {
    let obj = null;
    try {
        obj = selector ? (timeout ? 
            className(selector).findOne(timeout) : 
            className(selector).findOne()) : null;
    } catch(e) {}
    return obj;
}

function scrollDown() {
    swipe(device.width/2, device.height*0.8, 
          device.width/2, device.height*0.2, 500);
}

function random(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

function shuffleArray(array) {
    for (let i = array.length - 1; i > 0; i--) {
        const j = Math.floor(Math.random() * (i + 1));
        [array[i], array[j]] = [array[j], array[i]];
    }
    return array;
}

function logError(e) {
    console.error("Error: " + e);
    console.trace();
}

function recover() {
    for (let i = 0; i < 3; i++) {
        back();
        sleep(1000);
    }
    return true;
}

// 启动入口
module.exports = main;




    "commentList": [
        "视频很棒",
        "感谢分享",
        "学到了新知识",
        "这个太有用了",
        "666",
        "支持一下",
        "内容很精彩"
    ],
    "greetMsg": "你好,很喜欢你的内容,交个朋友吧",
    "likeProbability": 0.7,
    "maxOperateCount": 30,
    "interval": [1500, 3000],
    "blackList": ["官方账号", "抖音小助手"]
}