快手自动操作学习参考

参考官方文档,通过autox.js写了一款ks刷金币脚本。本代码仅用作学习参考。
autox.js官方文档:autox.js官方文档
安装autox.js后,通过右上角+号,新建js文件,把代码粘贴进去即可运行,运行过程中如果有顶部弹窗可能会导致广告视频完成失败。
代码优先完成任务,而后刷视频。
代码:

/*
 * @Descripttion: 用于快手刷金币的脚本
 * @Author: 只会Ctrl CV的菜鸟
 * @version: 1.1
 * @Date: 2022-12-19 22:54:52
 * @LastEditTime: 2022-12-22 15:37:20
 */
/**
 * @descripttion: 进入红包界面,查找延时10s,点击随机延时500-1500ms
 * @return null
 */
function clickRedEnvelope() {
    //查找红包小图标
    var rect = id("com.smile.gifmaker:id/pendant_mask_bg").findOne(8000);
    if (rect) {
        rect = rect.bounds();
        sleepRandom();
        //点击红包小图标
        click(rect.left, rect.top, rect.right, rect.bottom);
    }
    else {
        toast('未查找到红包图标');
        wipeUp();
        clickRedEnvelope();
    }
}
/**
 * @descripttion: 领取宝箱,查找延时5s,点击随机延时500-1500ms
 * @return null
 */
function getBox() {
    //领取宝箱
    var t = textMatches("立刻领.*金币").findOne(5000)

    if (t) {
        sleepRandom();
        t.click();
        toast('宝箱领取成功');
    }
    else {
        toast('未查找到宝箱');
    }
}
/**
 * @descripttion: 向上滑动屏幕,每次滑动600dp
 * @return 
 */
function wipeUp() {
    var x1 = device.width / 2 - 200;
    var y1 = device.height - 300;
    gesture(500, [x1, y1], [x1 - random(100, 200), y1 - 600]);
}
/**
 * @descripttion: 向下滑动屏幕,每次滑动600dp
 * @return 
 */
function wipeDown() {
    var x1 = device.width / 2 - 200;
    var y1 = device.height - 300;
    gesture(500, [x1, y1], [x1 + random(100, 200), y1 + 600]);
}
/**
 * @descripttion: 领取额外金币,查找延时2s,点击随机延时500-1500ms
 * @return 
 */
function getExtra() {
    var t = text('立即领取').findOne(2000);
    if (t) {
        sleepRandom();
        t.click();

        t = text('知道了').findOne(2000);
        if (t) {
            sleepRandom();
            t.click();
        }
    }
    else {
        toast('没有额外的视频金币');
    }
}

function sleepRandom() {
    sleep(random(500, 1500));
}
/**
 * @descripttion: 完成去关注的任务
 * @return 
 */
function gotoAttention() {
    var i = 4;
    while (i >= 0) {
        var t = text('去关注').findOne(2000);
        if (t) {
            sleepRandom();
            //点击去关注
            t.click();

            t = id('com.smile.gifmaker:id/follow_button').findOne(2000);
            if (t) {
                sleepRandom();
                //点击关注
                t.click();
                sleepRandom();
                back();

                t = text('知道了').findOne(2000);
                if (t) {
                    sleepRandom();
                    //点击知道了
                    t.click();
                }
            }
            else {
                toast('关注失败');
            }
        }
        else {
            toast('该用户没有关注任务');
            i = 0;
        }
        i--;
    }

}
/**
 * @descripttion: 完成点赞任务
 * @return 
 */
function gotoGive() {
    var t = text('去点赞').findOne(2000);
    if (t) {
        sleepRandom();
        t.click()

        var rect = id("com.smile.gifmaker:id/player_cover").findOne(2000).bounds();
        if (rect) {
            sleepRandom();
            //点击视频
            click(rect.left, rect.top, rect.right, rect.bottom);

            rect = id('com.smile.gifmaker:id/like_icon').findOne(2000).bounds();
            if (rect) {
                sleepRandom();
                //点击爱心
                click((rect.left + rect.right) / 2, (rect.bottom + rect.top) / 2);

                clickRedEnvelope();
                t = text('知道了').findOne(2000);
                if (t) {
                    sleepRandom();
                    //点击知道了
                    t.click();
                }
            }
        }
    }
    else {
        toast('用户无点赞任务');
    }
    /**
     * @descripttion: 完成评论任务
     * @return 
     */
}
/**
 * @descripttion: 完成评论任务
 * @return {*}
 */
function gotoComment() {
    var t = text('去评论').findOne(2000);
    if (t) {
        sleepRandom();
        //去评论
        t.click()

        var rect = id("com.smile.gifmaker:id/player_cover").findOne(2000).bounds();
        if (rect) {
            sleepRandom();
            //点击视频
            click(rect.left, rect.top, rect.right, rect.bottom);

            rect = id('com.smile.gifmaker:id/comment_icon').findOne(2000).bounds();
            if (rect) {
                sleepRandom();
                //点击评论图标
                click((rect.left + rect.right) / 2, (rect.bottom + rect.top) / 2);

                t = id('com.smile.gifmaker:id/editor_holder_text').findOne(2000);
                if (t) {
                    sleepRandom();
                    //点击输入框
                    t.click();

                    t = id("com.smile.gifmaker:id/editor").findOne(2000);
                    if (t) {
                        sleepRandom();
                        //输入评论
                        t.setText('666');

                        t = text('发送');
                        if (t) {
                            sleepRandom();
                            //点击发送
                            t.click();

                            clickRedEnvelope();
                            t = text('知道了').findOne(2000);
                            if (t) {
                                sleepRandom();
                                //点击知道了
                                t.click();
                            }

                        }
                    }
                }


            }
        }
    }
    else {
        toast('用户无评论任务');
    }
}
/**
 * @descripttion: 完成广告悬赏福利任务
 * @return 
 */
function gotoWelfare() {
    var i = 10;
    var t = 0;
    while (i > 0) {
        t = textMatches('领福利.*赚更多').findOne(2000);
        if (t) {
            sleepRandom();
            //点击领福利
            t.click();

            var rect = text('已成功领取奖励').findOne(35000).bounds();

            if (rect) {
                sleepRandom();
                //返回
                back();
            }
            i--;
        }
        else {
            i = 0;
            toast('用户无福利悬赏');
        }
        sleepRandom();
    }

}
/**
 * @descripttion: 完成观看直播任务
 * @return 
 */
function gotoLive() {
    var i;
    var max;
    if (findTimeoutAndClick(textMatches("去观看.*限时领"), 2000)) {
        //等待直播出现
        id('com.smile.gifmaker:id/constraint_layout_live_item_container').waitFor();
        //统计任务次数
        if (id('com.smile.gifmaker.neo_live:id/watch_live_task_layout').exists()) {
            max = id('com.smile.gifmaker.neo_live:id/progress_display').findOne(1000).text().match(/\d+/g)[1];
            max = Number(max);
            i = id('com.smile.gifmaker.neo_live:id/progress_display').findOne(1000).text().match(/\d+/g)[0];
            i = Number(i);
        }
        print(i, max);
        while (i < max) {
            id('com.smile.gifmaker:id/constraint_layout_live_item_container').waitFor()

            max = id('com.smile.gifmaker.neo_live:id/progress_display').findOne(1000).text().match(/\d+/g)[1];
            max = Number(max);
            i = id('com.smile.gifmaker.neo_live:id/progress_display').findOne(1000).text().match(/\d+/g)[0];
            i = Number(i);

            //刷新
            wipeDown();
            sleep(random(3000, 5000));

            //进入直播间
            if (clickByRect(id('com.smile.gifmaker:id/constraint_layout_live_item_container'), 2000)) {
                sleep(random(31000, 35000));
                //等待31-35s,消除关注提示
                if (text('立即关注').findOne(1000)) {
                    sleep(500);
                    back();
                    print('取消关注1');
                }
            }
            //点击赚金币
            if (clickByRect(text('赚金币').id('com.smile.gifmaker:id/neo_count_down_text'), 2000)) {
                sleep(1000);
                back();
                sleep(1000);
                //三个if为退出准备
                if (text('立即关注').exists()) {
                    sleep(500);
                    back();
                }
                if (text('退出直播间').exists()) {
                    clickByRect(text('退出直播间'), 2000);
                    sleep(2000);
                }
                if (text('猜你喜欢').exists() && text('退出').exists()) {
                    clickByRect(text('退出'), 2000);
                    sleep(2000);
                }
            }

        }
        back();
        sleepRandom();
    } else {
        toast('用户无观看直播任务');
    }
}
/**
 * @descripttion: 根据UiSelector来点击一个控件,点击前延时500-1500ms
 * @param {*} Object 传入UiSelector
 * @return true ro false 
 */
function clickOne(Object) {
    if (Object.exists()) {
        sleepRandom();
        Object.findOne().click();
        return true;
    }
    else {
        return false;
    }
}
/**
 * @descripttion: 根据UiSelector来查找并点击一个控件,点击前延时500-1500ms
 * @param {*} object 传入UiSelector
 * @param {*} timeout 查找延时
 * @return true or false
 */
function findTimeoutAndClick(object, timeout) {
    var i = object.findOne(timeout);
    if (i) {
        sleepRandom();
        i.click();
        return true;
    }
    else {
        return false;
    }
}
/**
 * @descripttion: 根据UiSelector来查找并通过rect点击一个控件,点击前延时500-1500ms
 * @param {*} object 传入UiSelector
 * @param {*} timeout 查找延时
 * @return true or false
 */
function clickByRect(object, timeout) {
    var i = object.findOne(timeout);
    if (i) {
        let rect = i.bounds();
        sleepRandom();
        try {
            click((rect.left + rect.right) / 2, (rect.top + rect.bottom) / 2);
            return true;
        } catch (e) {
            print(e.message);
            print(rect.left , rect.right, rect.top , rect.bottom);
        }
    }
    else {

        return false;
    }
}



function loopVideo() {
    while (true) {
        //刷视频
        sleep(random(10000, 20000));
        if (random(0, 2) > 0) {
            if (id('comment_button').exists()) {
                if (clickByRect(id('comment_button'), 2000)) {
                    sleep(random(2000, 3000));
                    back();
                    sleepRandom();
                }

            }
        }
        wipeUp();
    }
}
//脚本开始函数
function main() {
    var i;
    //等待无障碍
    auto.waitFor();
    //启动快手
    app.launchApp('快手');
    sleep(1500);
    //跳过广告
    i = textMatches('跳过.*\\d');
    clickOne(i);
    //点击精选
    clickByRect(id('android:id/text1').text('精选'), 2000);
    //进入红包界面
    clickRedEnvelope();
    //领取宝箱
    getBox();
    sleep(1000);
    //back,回到主页
    back();
    //进入红包界面
    clickRedEnvelope();
    sleep(1000);
    //评论
    gotoComment();
    sleep(1000);
    //点赞
    gotoGive();
    sleep(1000);
    //关注
    gotoAttention();
    //广告悬赏
    gotoWelfare();
    sleep(1000);
    //看直播
    gotoLive();
    back();
    //循环刷视频
    clickByRect(id('android:id/text1').text('精选'), 2000);
    loopVideo();
}

main();
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值