AutoJS 实现抖音极速版福袋脚本

前言

好久没更新博客了,最近做了个抖音极速版福袋脚本,想看看能不能自动抢到,于是在仿照其他脚本功能做了一个,哈哈。利用上班时间让它自己跑,测试大概2-3天,一个福袋没抢到(也不知道是不是被检测到了),唉,确实蛮心累了,可能也需要一些经验吧,后面会持续优化吧!!创作不易,希望可以给个赞谢谢!!

概述

抖音极速版脚本分:体验版普通版云控版
毕竟创作不易,我会给出体验版本源码,放心。

脚本UI

云空版本还在开发中!!!
在这里插入图片描述

测试

手机小米11
开发工具AutoXJS
极速版版本28.1.0

代码实现

"ui";
importClass(android.view.View);
importClass(android.content.Intent);
importClass(android.net.Uri);
importClass(android.provider.Settings);
var V474794 = '淞沪'
var U177888 = '1.0.1'
var U275459 = '#4EBFDD'
var scriptTitle = V474794 + ' v' + U177888

var S287859 = {
    M858326: null,
    F645210: false,
    H645600: null,
    V597406: 0,
    D252837: random(2, 4),
    J193048: random(0.5, 0.55),
    G877429: random(0.1, 0.15),
    F130107: 60000
}

var G898459 = {
    R124174: false,
    U829206: false,
    D560422: 3,
}

var I429086 = {
    P995066: null,
    Z682637: null,
  }

var ooooOOOOOO000000OOOO0O0O0O0O = ScriptUI.toString()
var ooOOOOOOOOOOOOOoooooooooo00000oooOO = ooooOOOOOO000000OOOO0O0O0O0O.slice(ooooOOOOOO000000OOOO0O0O0O0O.indexOf('{'), ooooOOOOOO000000OOOO0O0O0O0O.lastIndexOf('}')).slice(1, -2).replace(/项目标题/g, scriptTitle).replace(/#4EBFDD/g, U275459)
configIDArr = ooOOOOOOOOOOOOOoooooooooo00000oooOO.match(/ id( )?=( )?["|'].*?["|']/g).map(item => item.replace(/ id( )?=( )?["|']|"|'/g, ''))
ui.statusBarColor(U275459);
ui.layout(ooOOOOOOOOOOOOOoooooooooo00000oooOO);

function ScriptUI() {
    <vertical>
        <appbar>
            <toolbar bg="#4EBFDD" layout_height="60" margin="-2" id="toolbar" title="项目标题" />
            <tabs id="tabs" />
        </appbar>
        <viewpager id="viewpager">
            <frame>
                <scroll>
                    <vertical gravity="center">
                        <card w="*" h="auto" margin="10 5" cardCornerRadius="2dp" cardElevation="1dp" gravity="center_vertical">
                            <vertical padding="18 8" h="auto">
                                <linear>
                                    <Switch margin="12 0" layout_weight="1" id="autoService" text="无障碍服务" textSize="15sp" checked="false" />
                                    {/* <Switch margin="12 0" layout_weight="1" id="floatingWindowPermission" text="悬浮窗权限" textSize="15sp" checked="false" /> */}
                                </linear>
                            </vertical>
                            <View bg="#4EBFDD" h="*" w="5" />
                        </card>
                        <text id="login" text="wx: sout-lanys" layout_gravity="center" textColor="red" w="auto" textStyle="bold" />
                        <horizontal padding="18 8" h="auto">
                            <card w="auto" h="auto" margin="5 5" cardCornerRadius="2dp" cardElevation="1dp" gravity="center_vertical">
                                <button id="stopScript" h="auto" style="Widget.AppCompat.Button.Colored" text="关 闭" textStyle="bold" color="#ffffff" bg="#4EBFDD" foreground="?selectableItemBackground" layout_gravity="bottom" />
                            </card>
                            <card w="*" h="auto" margin="5 5" cardCornerRadius="2dp" cardElevation="1dp" gravity="center_vertical">
                                <button id="startScript" h="auto" text="开 始 运 行" textStyle="bold" color="#ffffff" bg="#4EBFDD" foreground="?selectableItemBackground" layout_gravity="bottom" />
                            </card>
                        </horizontal>
                        <radiogroup>
                        </radiogroup>

                        <vertical padding="18 8" h="auto">
                            <vertical>
                                <text text="福袋入口:" padding="8 8 8 8" textSize="17" h="auto" />
                                <radiogroup orientation="horizontal" padding="5 5 5 5">
                                    <radio id="luckyBagRecommended" text="推荐入口" textSize="17" paddingRight="5" />
                                    <radio id="luckyBagFollow" text="关注入口" textSize="17" checked="true" paddingRight="5" />
                                </radiogroup>
                            </vertical>
                            <horizontal>
                                <text text="福袋时间:" padding="8 8 8 8" textSize="17" h="auto" />
                                <input id="luckyBagTime" color="#666666" paddingLeft="2" w="150" value="5" />
                                <text text="(单位分)" padding="8 8 8 8" textSize="17" h="*" />
                            </horizontal>
                        </vertical>
                    </vertical>
                </scroll>
            </frame>
        </viewpager>
    </vertical>
}
ui.viewpager.setTitles(["基础模块"]);
ui.tabs.setupWithViewPager(ui.viewpager);

ui.emitter.on("resume", function () {
    ui.autoService.checked = auto.service != null;
    // ui.floatingWindowPermission.checked = floaty.checkPermission() != false
});

ui.autoService.on("check", function (checked) {
    if (checked && auto.service == null) {
        app.startActivity({
            action: "android.settings.ACCESSIBILITY_SETTINGS"
        });
    }
    if (!checked && auto.service != null) {
        auto.service.disableSelf();
    }
});

ui.stopScript.on("click", () => {
    if (I429086.Z682637 == null) {
    } else {
        I429086.Z682637.interrupt();
        I429086.Z682637 = null;
    }
    exit()
});

ui.startScript.on("click", function () {
    uiStart()
})

function uiStart() {
    let OOOOOOOOO0O0OOOOO = ui.luckyBagRecommended.isChecked();
    if (OOOOOOOOO0O0OOOOO) {
        G898459.R124174 = OOOOOOOOO0O0OOOOO
    }
    let OOOOOOO0O0OOO0OOO = ui.luckyBagFollow.isChecked();
    if (OOOOOOO0O0OOO0OOO) {
        G898459.U829206 = OOOOOOO0O0OOO0OOO
    }
    let OO0O0OO0O0OO0O0OO = ui.luckyBagTime.getText();
    if (!P250312(OO0O0OO0O0OO0O0OO)) {
        G898459.D560422 = OO0O0OO0O0OO0O0OO
    }
    I429086.Z682637 = threads.start(function () {
        E746632()
    });
}

function E746632() {
    app.launchApp("抖音极速版");
    toastLog("当前启动:" + "抖音极速版");
    F611484()
}

function F611484() {
    sleep(5000, 6000);
    let OO00OO000OO00OO00 = "android.widget.FrameLayout";
    let OO0O0OO0O0OO0O0OO = "android.widget.TextView"
    if (OOO00OOO000OOO00OO = classNameContains("Button").textContains("我知道了").findOne(2000)) {
        OOO00OOO000OOO00OO.click();
    }
    if (className(OO00OO000OO00OO00).findOnce()) {
        // 在首页
        if (className(OO0O0OO0O0OO0O0OO).text("首页").findOne(1000)) {
            toastLog("在首页")
            click("首页")
            sleep(3000, 6000);
            if (G898459.R124174) {
                H169894()
            } else if (G898459.U829206) {
                B046710()
            }
        } else {
            try {
                sleep(4000, 6000);
                let OOO0O00OOO0OOO00O = className("android.widget.TextView").id("user_name").findOnce();
                if (OOO0O00OOO0OOO00O) {
                    let OOO0OOO0O0OOOOO0O = OOO0O00OOO0OOO00O.getText();
                    console.log("已在直播间:", OOO0OOO0O0OOOOO0O);
                    Y795214()
                } else {
                    let OOO0O00OOO0OOO00O = className("android.widget.TextView").id("user_name").findOnce();
                    if (OOO0O00OOO0OOO00O) {
                        let OOO0OOO0O0OOOOO0O = OOO0O00OOO0OOO00O.getText();
                        console.log("已在直播间:", OOO0OOO0O0OOOOO0O);
                        Y795214()
                    }
                }
            } catch (error) {
                console.log("数据异常:", error);
                Y795214()
            }
        }
    }
}

function H169894() {
    if (OOO00OOO000OOO00OO = className("android.widget.Button").descContains("侧边栏").findOne(2000)) {
        OOO00OOO000OOO00OO.click();
        sleep(4000, 6000);
        if (O431321(className("android.widget.TextView").textContains("直播广场").findOnce())) {
            Y795214()
        } else {
            console.log("没找到");
        }
    }
}

function B046710() {
    click("关注")
    sleep(2000, 4000);
    if (O431321(classNameContains("Button").descMatches(/(.*直播中.*)/).findOnce())) {
        sleep(5000, 6000);
        // 限时任务
        if (beginBtn = classNameContains("FlattenUIText").textContains("限时任务").findOne(2000)) {
            back()
            sleep(2000, 4000);
            back()
        }
        Y795214()
    } else if (O431321(classNameContains("TextView").descMatches(/(.*高领.*)/).findOnce())) {
        sleep(5000, 6000);
        // 限时任务
        if (beginBtn = classNameContains("FlattenUIText").textContains("限时任务").findOne(2000)) {
            back()
            sleep(2000, 4000);
            back()
        }
        Y795214()
    } else {
        console.log("未找到直播间");
    }
}


function Y795214() {
    while (true) {
        sleep(10000, 12000);
        const OOO00OOO000OOO00OO = className("android.widget.Button").descMatches(/(.*电商.*)/).findOne(1000);
        if (OOO00OOO000OOO00OO) {
            sleep(5000, 6000);
        }
        let OOOOO0OOOOO0OOOOO0O = A609971();
        if (OOOOO0OOOOO0OOOOO0O) {
            X839265(OOOOO0OOOOO0OOOOO0O)
        }
    }
}

function B327911() {
    let OOOOOO00OOO0OOOOO0O = classNameContains("Button").descMatches(/(.*在线.*)/).findOne(1000);
    if (OOOOOO00OOO0OOOOO0O) {
        let OOO00OOO000OOO00OO = OOOOOO00OOO0OOOOO0O.desc()
        let OO0O0OO0O0OO0O0OO = OOO00OOO000OOO00OO.split("在线")
        if (OO0O0OO0O0OO0O0OO) {
            console.log("直播间人数:", OO0O0OO0O0OO0O0OO[0])
            let number = OO0O0OO0O0OO0O0OO[0].indexOf("万");
            if (number != -1) {

            }
        }
    }
    return true;
}

function A609971() {
    const OOOOOOO0O0OOO0OOO = className("com.lynx.tasm.behavior.ui.LynxFlattenUI").descMatches(/(.*福袋.*)/).findOne(1000);
    if (OOOOOOO0O0OOO0OOO) {
        let OO00OO000OO00OO00 = OOOOOOO0O0OOO0OOO.desc();
        if (!P250312(OO00OO000OO00OO00) && !V559387(OO00OO000OO00OO00)) {
            back()
        } else {
            // 判断是否包含数字
            if (!P250312(OO00OO000OO00OO00) && V559387(OO00OO000OO00OO00)) {
                var OO0O0OO0O0OO0O0OO = OO00OO000OO00OO00.split(" ")
                var OOOOO0OOOOO0OOOOO0O = OO0O0OO0O0OO0O0OO[1].split("分")
                var OOOOO0OO0O0OOO0OOO0 = OOOOO0OOOOO0OOOOO0O[1].split("秒")
                let OOOOOO00OOO0OOOOO0O = D935738((parseInt(OOOOO0OOOOO0OOOOO0O[0] * 60000)), parseInt(OOOOO0OO0O0OOO0OOO0[0] * 1000));
                if (OOOOOO00OOO0OOOOO0O) {
                    console.log("等待时间秒:", OOOOOO00OOO0OOOOO0O, "秒");
                    console.log("规定等待时间秒:", G898459.D560422 * S287859.F130107, "秒");
                    if (OOOOOO00OOO0OOOOO0O <= G898459.D560422 * S287859.F130107) {
                        return OOOOOO00OOO0OOOOO0O + 1000;
                    } else {
                        console.log("不符合福袋要求");
                        Z618586()
                    }
                }
            } else {
                back()
            }
        }
    } else {
        console.log("没有福袋");
        Z618586()
    }

}

function V559387(str) {
    return /[0-9]/.test(str);
}


function D935738(OO0O0OO0O0OO0O0OO, OO0O0OO0O0OO0O0OO0) {
    return OO0O0OO0O0OO0O0OO + OO0O0OO0O0OO0O0OO0;
}

function X839265(OO0O0OO0O0OO0O0OO) {
    if (OO0O0OO0O0OO0O0OO) {
        if (!classNameContains("FlattenUIImage").findOne(1000)) {
            if (text("参与成功 等待开奖").findOnce()) {
                back()
            } else {
                back()
            }
        } else {
            const OOO0O00OOO0OOO00O = className("com.lynx.tasm.behavior.ui.LynxFlattenUI").descMatches(/(.*福袋.*)/).findOne(1000);
            if (O431321(OOO0O00OOO0OOO00O)) {
                if (O431321(text("一键发表评论").findOnce())) {
                    console.log("参与普通福袋");
                    console.log("参与福袋,福袋时间为:", Math.round((OO00OO000OO00OO00 / S287859.F130107)), "分钟")
                    toast("参与福袋,福袋时间为:", Math.round((OO00OO000OO00OO00 / S287859.F130107)), "分钟")
                    sleep(OO00OO000OO00OO00);
                    O431321(text("我知道了").findOnce())
                    return true;
                }
            }
        }
    }
}

function Z618586() {
    console.log(device.width / S287859.D252837 + "," + device.height * S287859.J193048);
    console.log(device.width / S287859.D252837 + "," + device.height * S287859.G877429);
    swipe(device.width / S287859.D252837, device.height * S287859.J193048, device.width / S287859.D252837, device.height * S287859.G877429, random(200, 400))

}

function P250312(OO00OO000OO00OO00) {
    if (OO00OO000OO00OO00 !== null && OO00OO000OO00OO00 !== undefined && OO00OO000OO00OO00 !== '' && OO00OO000OO00OO00 != "") {
        return false;
    } else {
        return true;
    }
}

function O431321(OO0O0OO0O0OO0O0OO) {
    if (OO0O0OO0O0OO0O0OO) {
      click(OO0O0OO0O0OO0O0OO.bounds().centerX(), OO0O0OO0O0OO0O0OO.bounds().centerY())
      sleep(2000, 4000);
      return true;
    }
    return false;
  }

总结

后面会继续完善、比如日志框、浮窗、直播间参与人数过滤、抢普通福袋等等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/259211.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux学习(1)——初识Linux

目录 一、Linux的哲学思想 1.1 基础知识 1.2 根目录下的文件夹 二、Shell 1、Shell的定义 2、Shell的作用 三、Linux命令行 1、Linux通用命令行使用格式 四、Linux命令的分类 1、内部命令和外部命令的理解 2、内部命令和外部命令的区别 3、命令的执行过程 五、编辑…

C语言——内存函数的使用与模拟实现

大家好&#xff0c;我是残念&#xff0c;希望在你看完之后&#xff0c;能对你有所帮助&#xff0c;有什么不足请指正&#xff01;共同学习交流 本文由&#xff1a;残念ing 原创CSDN首发&#xff0c;如需要转载请通知 个人主页&#xff1a;残念ing-CSDN博客&#xff0c;欢迎各位…

手把手教你在 windows 上安装 Docker

前言 大家好&#xff0c;我是潇潇雨声&#xff0c;今天为大家带来一篇关于在 Windows 环境下使用 Docker 的教程。对于 Docker&#xff0c;我们可以简单地将其看作一种方便的软件安装方式&#xff0c;而无需深入涉及其复杂的概念。选择使用 Docker 主要是为了省事&#xff0c;比…

【python】在线代码混淆方案及注意事项

▒ 目录 ▒ &#x1f6eb; 导读开发环境 1️⃣ 在线网站pyob混淆操作步骤编写测试代码混淆转pyc缺点中文路径问题&#xff1a;python: Cant reopen .pyc file 2️⃣ 反编译python文件格式对比uncompyle6 3️⃣ 其它方案cpythonpython-obfuscatorPyInstaller【不推荐】pyminifie…

数据结构与算法之美学习笔记:38 | 分治算法:谈一谈大规模计算框架MapReduce中的分治思想

目录 前言如何理解分治算法&#xff1f;分治算法应用举例分析分治思想在海量数据处理中的应用解答开篇内容小结 前言 本节课程思维导图&#xff1a; MapReduce 是 Google 大数据处理的三驾马车之一&#xff0c;另外两个是 GFS&#xff08;hdfs&#xff09; 和 Bigtable(hbase)…

计算机提示vcruntime140.dll丢失的解决方法,多种修复教程分享

vcruntime140.dll是一个非常重要的动态链接库文件&#xff0c;它包含了许多运行时的函数和类。然而&#xff0c;有时候我们可能会遇到vcruntime140.dll无法继续执行代码的问题&#xff0c;这会给我们带来很大的困扰。那么&#xff0c;这个问题是什么原因导致的呢&#xff1f;又…

你知道跨站脚本攻击吗?一篇带你了解什么叫做XSS

1.XSS简介 &#xff08;1&#xff09;XSS简介 XSS作为OWASP TOP 10之一。 XSS中文叫做跨站脚本攻击&#xff08;Cross-site scripting&#xff09;&#xff0c;本名应该缩写为CSS&#xff0c;但是由于CSS&#xff08;Cascading Style Sheets&#xff0c;层叠样式脚本&#x…

华清远见作业第十三天

1.使用多文件编辑&#xff0c; 定义商品信息:商品名称&#xff0c;商品单价&#xff0c;商品购买个数&#xff0c;商品描述&#xff0c;循环输入购买的商品&#xff0c;按单价排序&#xff0c;输出商品信息&#xff0c;计算最贵的商品以及一共花了多少钱? 在create函数&#x…

Python PyCaret:自动化机器学习的利器

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在这篇文章中&#xff0c;将深入介绍 Python 中强大的机器学习库 PyCaret。PyCaret 是一个自动化机器学习工具&#xff0c;旨在简化从数据预处理到模型部署的整个机器学习流程。通过 PyCaret&#xff0c;你可以以…

百度旋转验证码识别(最新)

最近研究了一下图像识别&#xff0c;一直找到很好的应用场景&#xff0c;今天我就发现可以用百度的旋转验证码来做一个实验。没想到效果还挺好&#xff0c;下面就是实际的识别效果。 1、效果演示 2、如何识别 2.1准备数据集 首先需要使用爬虫&#xff0c;对验证码图片进行采…

随时爆雷!2023年四大“安全债”

即将过去的2023年&#xff0c;网络安全、云安全、应用安全、数据安全领域暴露的诸多“安全债”中&#xff0c;有四大债务不但未能充分缓解&#xff0c;反而有在新的一年“爆雷”的风险。这四大债务分别是&#xff1a;Logj4漏洞、HTTP/2快速重置攻击漏洞、恶意电子邮件和后量子加…

《每天一分钟学习C语言·三》

1、 scanf的返回值由后面的参数决定scanf(“%d%d”,& a, &b); 如果a和b都被成功读入&#xff0c;那么scanf的返回值就是2如果只有a被成功读入&#xff0c;返回值为1如果a和b都未被成功读入&#xff0c;返回值为0 如果遇到错误或遇到end of file&#xff0c;返回值为EOF…

Ansible常用模块详解(附各模块应用实例和Ansible环境安装部署)

目录 一、ansible概述 1、简介 2、Ansible主要功能&#xff1a; 3、Ansible的另一个特点&#xff1a;所有模块都是幂等性 4、Ansible的优点&#xff1a; 5、Ansible的四大组件&#xff1a; 二、ansible环境部署&#xff1a; 1、环境&#xff1a; 2、安装ansible&#…

web前端游戏项目-雷霆战机飞机大战游戏【附源码】

文章目录 一&#xff1a;雷霆战机HTML源码&#xff1a;JS文件&#xff1a;&#xff08;1&#xff09;function.js&#xff08;2&#xff09;impact.js&#xff08;3&#xff09;move.1.1.js&#xff08;4&#xff09;script.js 二&#xff1a;飞机大战HTML源码&#xff1a;CSS源…

短视频时代,又恰逢双旦来临之际,普通人又该如何立足?

我是电商珠珠 在电商发展迅速的同时&#xff0c;短视频也在同步发展。国内的短视频比较热门的有抖音、视频号、快手这几个。 抖音在19年的时候发展起了自己的电商行业-抖音小店&#xff0c;并顺势掀起了直播电商的热潮。 直播电商在短视频中很火&#xff0c;所以很多人都选择…

电源模块测试方法 | 怎么测试电源负载瞬态响应?

负载瞬态响应测试是检测电源稳定性和质量的重要方法之一&#xff0c;而电源稳定性是设备正常运行的基础。通过负载瞬态响应测试来检测电源的响应速度和稳定性&#xff0c;从而优化电源设计&#xff0c;提升性能&#xff0c;确保电子设备可以稳定工作。 什么是负载瞬态响应测试?…

技术博客:市面上加密混淆软件的比较和推荐

引言 市面上有许多加密混淆软件可供开发者使用&#xff0c;但哪些软件是最好用的&#xff1f;哪些软件受到开发者的喜爱&#xff1f;本文将根据一次在CSDN上的投票结果&#xff0c;为大家介绍几款在程序员中普及度较高的加密软件。以下是投票结果&#xff0c;希望能对大家的选…

如何进一步优化Ubuntu服务器的性能

导读&#xff1a; 要进一步优化Ubuntu服务器的性能&#xff0c;您可以考虑以下几个方面&#xff1a;优化软件包管理&#xff1a; Ubuntu使用APT&#xff08;Advanced Package Tool&#xff09;作为其软件包管理工具。为了提高性能&#xff0c;您可以采取以下措施 要进一步优化U…

鸿蒙ArkTS语言介绍与TS基础法

1、ArkTS介绍 ArkTS是HarmonyOS主力应用开发语言&#xff0c;它在TS基础上&#xff0c;匹配ArkUI框架&#xff0c;扩展了声明式UI、状态管理等响应的能力&#xff0c;让开发者以更简洁、更自然的方式开发跨端应用。 JS 是一种属于网络的高级脚本语言&#xff0c;已经被广泛用…

纵横字谜的答案 Crossword Answers

纵横字谜的答案 Crossword Answers - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 翻译后大概是&#xff1a; 有一个 r 行 c 列 (1<r,c<10) 的网格&#xff0c;黑格为 * &#xff0c;每个白格都填有一个字母。如果一个白格的左边相邻位置或者上边相邻位置没有白格&…