【autojs】积目自动回复/自动喜欢/自动发动态

自动喜欢/发动态功能可正常使用

自动回复功能扣掉了

下方源码适用于积木5.9.55版本,别的版本自测(需要对应版本可去豌豆荚下载)

需要看名字

"ui";
var 本地 = storages.create("造雾者-积目脚本")
var 名 = storages.create('造雾者-积目人名')
var 包名 = 'com.fenzotech.jimu' //积目包名
var 应用名 = "积目" //积目应用名
var 关键词回复话术 = 本地.get("关键词回复话术库")
var 随机话术 = 本地.get("随机话术库")
ui.layout(
    <frame>
        <vertical>
            <appbar>
                <toolbar id="toolbar" title="造雾者-积目多功能脚本" />
                <tabs id="tabs"/>
            </appbar>
            <viewpager id="viewpager">
                <ScrollView>
                    <frame>
                        <vertical padding="15 5 15 0">
                            <text text="          "/>
                            <Switch id="autoService" text="无障碍服务" checked="{{auto.service != null}}" padding="8 8 8 8" textSize="15sp" textSize="18sp"/>
                            <text text="          "/>
                            <linear>
                                <text text="开启功能:" textStyle="bold" textSize="18"/>
                            </linear>
                            <text text="          "/>
                            <horizontal>
                                <radiogroup w="*" marginLeft="50px" orientation="horizontal">
                                    <radio id="功能1" text="划喜欢"checked="true"size="40px"/>
                                    <text text="          "/>
                                    <radio id="功能2" text="发动态"checked="false"size="40px"/>
                                    <text text="          "/>
                                    <radio id="功能3" text="自动回复"checked="false"size="40px"/>
                                </radiogroup>
                            </horizontal>
                            <text text="          "/>
                            <text text="          "/>
                            <text text="任务参数:" textStyle="bold" textSize="18"/>
                            <horizontal>
                                <text text="动态文案"/>
                                <input id="动态文案" hint="发布动态的文案" layout_weight="1"/>
                            </horizontal>
                            <text text="          "/>
                            <button id="启动" text="启动脚本"/>
                        </vertical>
                    </frame>
                </ScrollView>
                <ScrollView>
                    <frame>
                        <vertical padding="15 5 15 0">
                            <text text=""/>
                            <text text ="格式:" textColor="red" textSize="15dp"/>
                            <text text =" 关键词1-回复话术1-回复话术2-...-回复话术99" textColor="red" textSize="15dp"/>
                            <text text =" 关键词2-回复话术1-回复话术2-...-回复话术99" textColor="red" textSize="15dp"/>
                            <text text ="(回复话术没有上限,越多越好)" textSize="10dp"/>
                            <text text=""/>
                            <text text ="关键词回复话术库:" textColor="red" textSize="15dp"/>
                            <input text="{{关键词回复话术}}" id="关键词回复文本"/>
                            <button text="保存" id="关键词回复保存"/>
                        </vertical>
                    </frame>
                </ScrollView>
                <ScrollView>
                    <frame>
                        <vertical padding="15 5 15 0">
                            <text text=""/>
                            <text text ="格式:" textColor="red" textSize="15dp"/>
                            <text text =" 随机话术1" textColor="red" textSize="15dp"/>
                            <text text =" 随机话术2" textColor="red" textSize="15dp"/>
                            <text text ="(随机话术没有上限,越多越好)" textSize="10dp"/>
                            <text text=""/>
                            <text text ="随机话术库:" textColor="red" textSize="15dp"/>
                            <input text="{{随机话术}}" id="随机话术文本"/>
                            <button text="保存" id="随机话术保存"/>
                        </vertical>
                    </frame>
                </ScrollView>
            </viewpager>
        </vertical>
    </frame>
);
//设置滑动页面的标题
ui.viewpager.setTitles(["启动页面", "关键词回复话术库", "随机话术库"]);
//让滑动页面和标签栏联动
ui.tabs.setupWithViewPager(ui.viewpager);

ui.启动.on("click", function() {
    threads.start(function() {
        cumtomUI()
        主线程()
    })
})
ui.关键词回复保存.on("click", function() {
    threads.start(function() {
        本地.put("关键词回复话术库", ui.关键词回复文本.text())
        toast("关键词回复话术库保存成功")
    })
})
ui.随机话术保存.on("click", function() {
    threads.start(function() {
        本地.put("随机话术库", ui.随机话术文本.text())
        toast("随机话术库保存成功")
    })
})

function 主线程() {
    var 动态文案 = ui.动态文案.text()
    if (ui.功能2.isChecked()) {
        发动态(动态文案)
    }
    if (ui.功能1.isChecked()) {
        滑动线程()
    }
}

function 发动态(文案) {
    返回发现()
    sleep(random(3, 5) * 1000)
    while (true) {
        var 社区 = text('社区').findOnce()
        var 附近 = text('附近').findOnce()
        var 发布1 = id("iv_add").findOnce()
        var 发布2 = text("发布动态").findOnce()
        var 发动态 = text("发动态").findOnce()
        var 发布 = text('发布').findOnce()
        if (发布) {
            小延迟()
            小延迟()
            setText(文案)
            小延迟()
            控件点击(发布)
            小延迟()
            break;
        } else if (发动态) {
            控件点击(发动态)
            小延迟()
        } else if (发布2) {
            控件点击(发布2)
            小延迟()
        } else if (发布1) {
            控件点击(发布1)
            小延迟()
        } else if (附近) {
            控件点击(附近)
            小延迟()
        } else if (社区) {
            控件点击(社区)
            小延迟()
        }
    }
}

function 滑动线程() {
    threads.start(function() {
        while (true) {
            sleep(random(1000, 1500))
            三选一()
            误入检测()
        }
    })
    var jc = 0
    返回发现()
    while (true) {
        var 检测 = text('发现').findOnce()
        if (检测) {
            左右滑()
            jc = 0
        } else {
            jc = jc + 1
            sleep(1000)
        }
        if (jc > 3) {
            返回发现()
        }
    }
}

function 左右滑() {
    小延迟()
    while (true) {
        var sj = random(1, 5)
        if (sj == 1) {
            左滑()
        } else {
            右滑()
        }
        sleep(500, 1000)
    }
}

function 右滑() {
    swipe(random(200, 250), device.height / 2 + random(-150, 150), device.width - random(50, 100), device.height / 2 + random(-150, 150), random(1500, 2000))
}

function 左滑() {
    swipe(device.width - random(50, 100), device.height / 2 + random(-150, 150), random(200, 250), device.height / 2 + random(-150, 150), random(1500, 2000))
}


function 三选一() {
    var 发送 = id('sendClickContainer').depth(9).indexInParent(1).findOnce()
    var 表情 = id('ivSendEmoji').clickable(true).findOnce()
    var 稍后 = id('tvClose').text('稍后再聊').depth(6).findOnce()
    if (发送 && 表情 && 稍后) {
        var sj = random(1, 5)
        if (sj <= 2) {
            var 发送 = id('sendClickContainer').depth(9).indexInParent(1).findOnce()
            log("随机结果:发送文案")
            发送.click()
        } else if (sj <= 4) {
            var 表情 = id('ivSendEmoji').clickable(true).findOnce()
            log("随机结果:发送表情")
            表情.click()
        } else {
            var 稍后 = id('tvClose').text('稍后再聊').depth(6).findOnce()
            log("随机结果:稍后再聊")
            稍后.click()
        }
    }
}

function 误入检测(){
    var 喜欢 = id('ll_like').findOnce()
    if(喜欢){
        back()
    }
    var 有料 = text('有料').findOnce()
    if(有料){
        返回发现()
    }
    var 附近 = text('附近').findOnce()
    if(附近){
        返回发现()
    }
    var 动态 = text('动态').findOnce()
    if(动态){
        返回发现()
    }
}

function 返回发现() {
    while (true) {
        var 检测 = text("发现").findOnce()
        if (检测) {
            小延迟()
            putLog('已回到发现')
            文本点击('发现')
            小延迟()
            while (true) {
                var 发现 = id('new_discover_card_discover').text('发现').findOnce()
                if (发现) {
                    控件点击(发现)
                    break
                } else {
                    log('遍历控件中')
                    sleep(1000)
                }
            }
            break
        } else if (currentPackage() == 包名) {
            back()
            sleep(1500)
        } else {
            putLog('打开积目')
            launchApp(应用名)
            小延迟()
        }
    }
}

function 小延迟() {
    var a = random(2000, 3500)
    putLog("延迟" + a / 1000 + "秒")
    sleep(a)
}

function 文本点击(文本) {
    var 控件 = text(文本).findOnce()
    if (控件) {
        控件点击(控件)
        return true;
    } else {
        putLog("没有发现" + 文本)
        return false;
    }
}

function 控件点击(控件) {
    var 控件x = (控件.bounds().left + 控件.bounds().right) / 2 + random(-3, 3)
    var 控件y = (控件.bounds().top + 控件.bounds().bottom) / 2 + random(-3, 3)
    putLog("点击位置:" + 控件x + "," + 控件y)
    click(控件x, 控件y)
}

function 匹配纯数字(str) {
    var reg = /^[0-9]*$/
    if (reg.test(str)) {
        return true;
    }
    return false;
}

function cumtomUI() {
    let resource = context.getResources();
    w = floaty.rawWindow(
        <relative >
            <frame bg="#44ffcc00" w="*" h="{{device.height / 4+200}}">
                <vertical w="*">
                    <card id="indx2" w="*" margin="0 0 0 1" h="30" background="#000000" cardCornerRadius="3"
                    cardElevation="2dp" gravity="center_vertical"  >
                    <horizontal gravity="center_vertical" w="*" >
                        <text w="auto" h="auto" textSize="14" margin="8 0 20 0" textColor="#00ffd8" text="造雾者-积目多功能脚本" />
                    </horizontal>
                </card>
                <View w="*" h="2px" bg="#c0c0c0" />
                <com.stardust.autojs.core.console.ConsoleView
                id="console"
                background="#7f000000"
                h="*" />
            </vertical>
        </frame>
        </relative>
    );
    w.setTouchable(false);
    w.setPosition(0, (device.height - device.height / 4 - 290)); //设置悬浮窗位置
    w.setSize(device.width, device.height / 4 + 285) //设置悬浮窗大小
    w.console.setConsole(runtime.console);
    let c = new android.util.SparseArray();
    let Log = android.util.Log;
    c.put(Log.VERBOSE, new java.lang.Integer(colors.parseColor("#dfc0c0c0")));
    c.put(Log.DEBUG, new java.lang.Integer(colors.parseColor("#ffffffff")));
    c.put(Log.INFO, new java.lang.Integer(colors.parseColor("#ff64dd17")));
    c.put(Log.WARN, new java.lang.Integer(colors.parseColor("#ff2962ff")));
    c.put(Log.ERROR, new java.lang.Integer(colors.parseColor("#ffd50000")));
    c.put(Log.ASSERT, new java.lang.Integer(colors.parseColor("#ffff534e")));
    w.console.setColors(c);
    try {
        ui.run(function() {
            input_container = w.console.findViewById(getResourceID("input_container", "id"))
            input_container.attr("visibility", "gone");
        })
    } catch (error) {}

    function getResourceID(name, defType) {
        return resource.getIdentifier(name, defType, context.getPackageName());
    };
    setInterval(() => {}, 1000);
}


function putLog(txt) {
    var 颜色 = ['l', 'e', 'v', 'i']
    let type = 颜色[random(0, 3)]
    let colBox = {
        'l': "log",
        'v': 'verbose',
        'i': 'info',
        'e': 'error'
    }
    console[colBox[type]]("  " + txt)
}

function 滑动() {
    var x1;
    var x2;
    var y1;
    var y2;
    if (random(1, 2) == 1) {
        x1 = device.width / 2 + random(20, 120)
    } else {
        x1 = device.width / 2 - random(20, 120)
    }
    if (random(1, 2) == 1) {
        x2 = device.width / 2 + random(20, 120)
    } else {
        x2 = device.width / 2 - random(20, 120)
    }
    y1 = device.height - 300 - random(200, 300)
    y2 = random(450, 550)

    曲线滑动(x1, y1, x2, y2, random(1500, 3000));
}

function bezier_curves(cp, t) {
    cx = 3.0 * (cp[1].x - cp[0].x);
    bx = 3.0 * (cp[2].x - cp[1].x) - cx;
    ax = cp[3].x - cp[0].x - cx - bx;
    cy = 3.0 * (cp[1].y - cp[0].y);
    by = 3.0 * (cp[2].y - cp[1].y) - cy;
    ay = cp[3].y - cp[0].y - cy - by;

    tSquared = t * t;
    tCubed = tSquared * t;
    result = {
        "x": 0,
        "y": 0
    }
    result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x;
    result.y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp[0].y;
    return result;
}

function 曲线滑动(qx, qy, zx, zy, time) {
    var xxy = [time];
    var point = [];
    var dx0 = {
        "x": qx,
        "y": qy
    }

    var dx1 = {
        "x": random(qx - 100, qx + 100),
        "y": random(qy, qy + 50)
    }
    var dx2 = {
        "x": random(zx - 100, zx + 100),
        "y": random(zy, zy + 50),
    }
    var dx3 = {
        "x": zx,
        "y": zy
    }
    for (var i = 0; i < 4; i++) {

        eval("point.push(dx" + i + ")");

    }
    for (let i = 0; i < 1; i += 0.08) {
        xxyy = [parseInt(bezier_curves(point, i).x), parseInt(bezier_curves(point, i).y)]

        xxy.push(xxyy);

    }
    gesture.apply(null, xxy);
}


function 向上滑() {
    var x1 = device.width / 2
    var y1 = device.height / 5
    var x2 = device.width / 2
    var y2 = device.height
    var t = random(2000, 3000)
    swipe(x1, y1, x2, y2, t)
    putLog("滑上")
}

function 向下滑() {
    var x1 = device.width / 2
    var y1 = device.height - device.height / 5
    var x2 = device.width / 2
    var y2 = 0
    var t = random(2000, 3000)
    swipe(x1, y1, x2, y2, t)
    putLog("滑下")
}

//需要完整源码dd作者名

//作者:造雾者
//扣:1340468168
//v:zwz-000-000
//收徒&定制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vzwz-000-000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值