自动化的抖音
文件命名 main.js
var uiModule = require("ui_module.js");
if (!auto.service) {toast("请开启无障碍服务");auto.waitFor();}
var isRunning = true;
var swipeCount = 0;
var targetSwipeCount = random(1, 10);
var window = uiModule.createUI();
uiModule.setTargetSwipeCount(window, targetSwipeCount);
window.stop.click(() => (isRunning = false));
function updateTimer(seconds) {uiModule.updateTimer(window, seconds);
}
function checkForText() {return textContains("点击进入直播间").findOne(1000) != null;
}
threads.start(function () {var width = device.width;var height = device.height;toast("3秒后启动应用");sleep(3000);launchApp("测试");sleep(2000);while (isRunning) {swipeCount = 0;targetSwipeCount = random(1, 10);uiModule.setTargetSwipeCount(window, targetSwipeCount);for (var i = 0; i < targetSwipeCount && isRunning; i++) {if (!isRunning) break;swipe(width / 2, height * 0.8, width / 2, height * 0.2, 500);swipeCount++;uiModule.setSwipeCount(window, swipeCount);var randomWait = random(1, 10);toast("等待: " + randomWait + "秒后继续滑动");uiModule.setRandomWait(window, randomWait);for (var j = randomWait; j > 0 && isRunning; j--) {updateTimer(j);sleep(1000);}if (!isRunning) break;}if (!isRunning) break;if (checkForText()) {toast("发现'点击进入直播间',执行滑动");swipe(width / 2, height * 0.8, width / 2, height * 0.2, 500);} else {var randomWait = random(1, 10);toast("未发现特定文字,等待: " + randomWait + "秒后执行双击");uiModule.setRandomWait(window, randomWait);for (var j = randomWait; j > 0 && isRunning; j--) {updateTimer(j);sleep(1000);}click(width / 2, height / 2);sleep(100);click(width / 2, height / 2);}updateTimer(0);sleep(2000);}window.close();toast("脚本已停止");
});
第二个文件ui_module.js 也是试图 文件
// 创建UI
function createUI() {var window = floaty.window(<frame><vertical><button id="stop" text="停止" w="120" h="40" bg="#ff0000" /><text id="timer" text="等待: 0s" textSize="14sp" textColor="#ffffff" /><text id="targetSwipeCountText" text="目标滑动次数: 0" textSize="14sp" textColor="#ffffff"/><text id="swipeCountText" text="当前滑动次数: 0" textSize="14sp" textColor="#ffffff"/><text id="randomWaitText" text="随机等待时间: 0s" textSize="14sp" textColor="#ffffff"/></vertical></frame>);window.setPosition(100, 100); // 设置浮动窗口位置return window;
}// 更新目标滑动次数
function setTargetSwipeCount(window, targetSwipeCount) {ui.run(() => {window.targetSwipeCountText.setText("滑动: " + targetSwipeCount+ '次开始点赞');});
}// 更新当前滑动次数
function setSwipeCount(window, swipeCount) {ui.run(() => {window.swipeCountText.setText("当前滑动次数: " + swipeCount + '次');});
}// 更新随机等待时间
function setRandomWait(window, randomWait) {ui.run(() => {window.randomWaitText.setText("随机等待时间: " + randomWait + "秒");});
}// 更新倒计时
function updateTimer(window, seconds) {ui.run(() => {window.timer.setText("等待: " + seconds + "s");});
}// 导出模块函数
module.exports = {createUI: createUI,setTargetSwipeCount: setTargetSwipeCount,setSwipeCount: setSwipeCount,setRandomWait: setRandomWait,updateTimer: updateTimer
};
相关文章:
自动化的抖音
文件命名 main.js var uiModule require("ui_module.js"); if (!auto.service) {toast("请开启无障碍服务");auto.waitFor();} var isRunning true; var swipeCount 0; var targetSwipeCount random(1, 10); var window uiModule.createUI(); uiMo…...
无人机之巡航控制篇
一、巡航控制的基本原理 无人机巡航控制的基本原理是通过传感器检测无人机的飞行状态和环境信息,并将其反馈给控制器。控制器根据反馈信息和任务需求,计算出无人机的控制指令,并将其发送给执行机构。执行机构根据控制器的控制指令,…...
面试必问的7大测试分类!一文说清楚!
在日常测试工作中,我们经常会听到“单元测试,集成测试,系统测试”之类的词汇,大家都知道这是按照开发阶段进行测试活动的划分。 这种划分完整的分类,其实是分为四种“单元测试,集成测试,系统测…...
深信服上网行为管理AC无法注销在线用户
下图用户认证成功后无法注销 很多入网的用户都是使用的这个账号 针对单个IP强制注销也不生效 解决步骤: 接入管理-用户管理-用户绑定管理-用户绑定 删除绑定免认证的配置 删除后所有用户会强制注销掉,重新登录即可 可添加主页联系方式帮忙远程解决问…...
使用GitLab CI构建持续集成案例
1. 部署GitLab (1)基础准备 解压软件包并导入镜像: [rootmaster ~]# curl -O http://mirrors.douxuedu.com/competition/Gitlab-CI.tar.gz [rootmaster ~]# tar -zxvf Gitlab-CI.tar.gz [rootmaster ~]# ctr -n k8s.io image import gitla…...
WSL2环境下Ubuntu的Docker安装与配置
检查是否存在安装残留,移除可能会造成冲突的组件。 for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done从apt Docker仓库中安装官方GPG key: sudo apt-get update …...
使用vscode调试wails项目(golang桌面GUI)
文章目录 安装 Golang 环境安装 NPM安装 VSCode安装 Go 插件安装 Go 插件依赖工具安装 Wails系统检查 准备项目Visual Studio Code 配置安装和构建步骤参考资料 安装 Golang 环境 访问 golang 官网下载环境安装包:https://go.dev/dl/ 安装 NPM 从 Node 下载页面 …...
Java中注解与反射的详细介绍
注解和反射 一、注解 什么是注解?Annotation Override :表示一个方法声明打算重写超类的另一个方法声明Deprecated:表示不鼓励程序员使用这样的元素,(此注释可以用于修饰方法,属性,类…...
Redis 过期时间删除策略详解
在使用 Redis 时,设置键的过期时间是一项非常有用的功能。它可以帮助我们自动清理不再需要的数据,节省内存空间。那么,Redis 是如何处理这些带有过期时间的键呢?这就涉及到 Redis 的过期时间删除策略。 一、Redis 过期键的判定 R…...
C语言_内存函数
内存函数是 C 标准库中的一组函数,用于管理和操作内存。使用时需要包含头文件<string.h>。 1. memcpy的使用和模拟实现 函数形式如下: void* memcpy(void* destination, const void* source, size_tnum);函数解析和注意事项: memcp…...
基于s32ds平台指定变量储存位置
开启一段ram空间 打开ld文件 配置一段ram空间 开辟一个段 .shareable_data1 : {. ALIGN(4);KEEP(*(.mcal_shared_data1)) . ALIGN(4);} > int_sram_shareable1定义一个变量并将变量指定在段中 volatile uint32 u32SbcmGenState __attribute__((section (".mcal_s…...
什么是快充协议、支持多协议的USB Type-C受电端取电芯片
随着快充技术的不断发展,传统的慢充模式已经满足不了消费者对充电效率的要求。有了快充技术的支持很大程度的缩短了我们的充电时间,给我们的生活带来了很多便利。 什么是快充协议 快充协议是快充技术的核心,现如今市面上已经有很多种快充协议…...
在Vue CLI项目中使用ECharts:详细指南
在Vue CLI项目中使用ECharts:详细指南 ECharts 是一款由百度开源的数据可视化图表库,它提供了丰富的图表类型和高度的可定制性。在Vue CLI项目中集成ECharts,可以帮助我们快速地将数据以图形的方式展示给用户。以下是在Vue CLI项目中使用ECh…...
第二阶段:mysql(学完就隐藏版)
第一章:部署数据库系统(注意关闭防火墙,selinux安装) 安装mysql配置的相关文件:yum install https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm(centos9:yum install http…...
Spring Cloud微服务
引言 在过去的几十年中,软件架构的发展经历了从单体应用到微服务的演变。微服务架构是一种将应用程序分解为小的、独立的服务的方法,每个服务可以独立地部署和扩展。Spring Cloud为开发和部署基于Spring的微服务提供了一系列的工具和框架,使…...
后端复习资料
后端面试资料 语雀-图灵面试题 语雀-javaGuide 小林coding:https://www.xiaolincoding.com/ 面试鸭: https://www.mianshiya.com/ codehot香菜哥:https://codehot.cn/markdown/welfare 面试题: vizard自行整理 牛客Golang社招面…...
C++和OpenGL实现3D游戏编程【连载14】——VBO、VAO和EBO应用
🔥C和OpenGL实现3D游戏编程【目录】 1、本节实现的内容 我们从一开始学OpenGL到现在,OpenGL的图形绘图必须在glBegin()和glEnd()函数之间完成,在此基础之上,才能进行后续操作功能。但是我们今天要讨论一下OpenGL图形绘制的模式&a…...
AI + 智能互助平台(一点杂想)
随着人工智能的火爆,各种AI产品的兴起,我发现在解决人们日常需求的AI工具还是比较少的,还是比较依赖上一代的搜索功能。 是不是可以有这样的一款产品,需求方在平台上发布需求,提供方在平台上发布能力,AI自动…...
其他浏览器可以联网,但edge不能联网
问题描述: 今早edge无法上网,检测网络连接正常,而且其他chrome,Firefox和360浏览器都可以上网。 解决方案: 注意:为防止是代理问题,可以在扩展中禁用后再试试 如果没有代理或者禁用代理也不…...
Redis 缓存淘汰策略:LRU 和 LFU 的缺点及解决方案详解
引言 Redis 是一款高性能的内存数据库,它的缓存淘汰机制是保障内存使用效率和应用性能的关键。为了在内存有限的情况下保证缓存数据的有效性,Redis 提供了多种缓存淘汰策略,其中 LRU(Least Recently Used,最近最少使用…...
前端转行网络安全 漏洞挖掘赚钱前景分析
前言 最近,一个做运维的朋友跟我说他在学渗透测试。他说,公司请别人做渗透测试的费用是 2千/人天,一共2周。2周 2w 的收入,好香~ 于是,我也对渗透测试产生了兴趣。开始了探索之路~ 什么是渗透测试 渗透测试这名字听…...
如何快速搭建微信智能机器人:7步实现多AI服务自动回复
如何快速搭建微信智能机器人:7步实现多AI服务自动回复 【免费下载链接】wechat-bot 🤖一个基于 WeChaty 结合 ChatGPT / Claude / Kimi / DeepSeek / Ollama等Ai服务实现的微信机器人 ,可以用来帮助你自动回复微信消息,或者社群分…...
告别Resources.Load!Unity动态加载材质资源的最佳实践与性能优化指南
Unity材质资源动态加载:从基础实现到架构级优化方案 在AR涂鸦、实时换装、用户自定义皮肤等现代游戏交互场景中,动态材质加载已成为核心需求。传统Resources.Load虽简单直接,但在大型项目中常引发资源管理混乱、内存泄漏和热更新障碍。本文将…...
机器人学习快速入门指南:掌握Open X-Embodiment开源数据集
机器人学习快速入门指南:掌握Open X-Embodiment开源数据集 【免费下载链接】open_x_embodiment 项目地址: https://gitcode.com/gh_mirrors/op/open_x_embodiment 想要快速入门机器人学习领域?Open X-Embodiment为你提供了一个完整的机器人学习开…...
别再从头训练了!用SAM-Adapter‘轻量化’微调,让你的分割模型快速适配新任务
SAM-Adapter:轻量化微调技术让图像分割模型快速适配新任务 在计算机视觉领域,Segment Anything Model(SAM)的出现无疑掀起了一场分割技术的革命。这个由Meta推出的基础模型,以其惊人的零样本泛化能力震撼了整个行业。然…...
风云三国2.4问鼎天下:不靠作弊代码,用TXT文件修改实现俘虏名将和强制投降
风云三国2.4问鼎天下:TXT文件修改实现俘虏名将与强制投降的硬核技巧 在《风云三国2.4问鼎天下》这款经典MOD中,许多玩家都渴望能够招降那些赫赫有名的武将,比如关羽、诸葛亮等,但游戏机制往往让这些名将难以归顺。传统的作弊代码虽…...
避坑指南:PnetLab导入锐捷镜像时,关于qemu_options和权限的那些‘坑’
PnetLab锐捷镜像部署深度排障手册:从参数解析到权限修复实战 当你在深夜的机房里盯着屏幕上闪烁的命令行,第十次尝试启动PnetLab中的锐捷镜像却依然遭遇连接失败时,那种挫败感我深有体会。这不是又一篇按部就班的安装教程,而是一…...
AutoMdxBuilder终极指南:3分钟零代码制作专业MDX词典的完整教程
AutoMdxBuilder终极指南:3分钟零代码制作专业MDX词典的完整教程 【免费下载链接】AutoMdxBuilder Automatically make mdx dictionaries 项目地址: https://gitcode.com/gh_mirrors/au/AutoMdxBuilder 还在为制作电子词典而烦恼吗?传统MDX词典制作…...
别再只会用delay()了!用Celery的Canvas原语(Group/Chain/Chord)构建复杂异步工作流
别再只会用delay()了!用Celery的Canvas原语构建复杂异步工作流 在异步任务处理领域,Celery早已成为Python生态中的标配工具。但令人惊讶的是,大多数开发者仅仅停留在task.delay()的基础用法上,就像只学会了加减法却从未接触过微积…...
2.1 C语言 ECG模块设计(推送)
文章目录1. 目标:2. 功能需求:3. 概要设计:3.1 系统架构:3.2 组件设计:4. 详细设计4.1 ECG_Module:4.1.1 职责:4.1.2 属性:4.1.3 方法:4.2 TMDQueue:4.2.1 职…...
