YYPOST群发软件 发表于 2025-6-13 06:56:22

AIWROK软件完整的例子脚本分享1




AIWROK软件完整的例子脚本分享1
https://www.yuque.com/aiwork/nba2pr/mf8wfx4tw5ct3rf2这里下载附件






这段代码是一个使用AutoApp安卓自动化IDE编写的脚本,主要用于自动化操作名为“红果短视频”的应用程序。脚本的主要功能包括登录应用、播放视频、领取奖励和签到等操作。以下是对代码的详细说明:
[*]注释说明:


[*]代码开头是一些注释,提供了使用说明以及相关的帮助文档、官方地址和QQ群信息。

[*]引入外部脚本:


[*]require("f.js") 和 require("api.js"):这两行代码用于引入外部的JavaScript文件,这些文件可能包含一些预定义的函数或其他功能。
[*]init():调用初始化函数,可能是为了设置一些初始状态或参数。

[*]获取登录信息:


[*]var mobile = uiText.findByID(控件ID="mobile").getText() 和 var password = uiText.findByID(控件ID="password").getText():这两行代码通过控件ID查找手机和密码输入框,并获取其中的文本内容。

[*]构建登录数据:


[*]var data = { "mobile" : mobile, "password" : password, oaid: device.getOAID() }:将获取到的手机号、密码以及设备的OAID(Open Anonymous Device Identifier,开放匿名设备标识符)组合成一个对象,用于登录操作。

[*]登录操作:


[*]login(data):调用登录函数,传入用户数据进行登录。
[*]login_check(data):检查登录结果,如果登录成功则继续执行,否则停止脚本。

[*]应用启动:


[*]app.openApp('com.phoenix.read'):启动“红果短视频”应用程序。

[*]自动化主循环:


[*]使用while (true)创建一个无限循环,脚本的主要逻辑都在这个循环中。
[*]let img= screen.screenShotFull():截取屏幕的全屏截图,并将其存储在变量img中。
[*]ocrres = img.MLKitOcr('zhs'):使用MLKit进行OCR(光学字符识别),识别屏幕上显示的中文文本。
[*]界面变化检测:


[*]如果识别结果与上一次保存的结果不同,则重置界面计数器uiCount。
[*]如果识别结果相同,则增加界面计数器。
[*]如果界面计数器超过10或播放时间超过5分钟,则重新打开应用。


[*]视频播放检测:


[*]检查屏幕上的文本是否包含“く第00集”和“倍速”,如果是,则认为在播放视频,并等待10秒。


[*]领取奖励:


[*]当检测到“立即提现”时,依次查找并点击“1.00元”、“立即提现”、“去支付宝绑定”和“同意”等按钮,模拟用户提现操作。
[*]检查并点击“开宝箱得全币”、“看视频最高再领”、“领取成功”等按钮,模拟用户领取应用内奖励的操作。


[*]签到:


[*]检查并点击“立即签到+888金币”、“继续观看”等按钮,模拟用户签到和继续观看视频的操作。


[*]返回操作:


[*]如果检测到“更多直播”或“已完结共00集”等文本,模拟返回上一页的操作。
[*]如果在循环中没有找到任何需要点击的文本,每隔3次循环模拟一次返回操作。


[*]toast.show('登录成功') 和 notice("红果短视频"):当用户成功登录时,显示“登录成功”的提示,并通知正在操作的应用是“红果短视频”。

[*]屏幕识别与操作:


[*]hid_ocr_all_like_once 和 hid_click:这些函数用于在屏幕截图中查找特定文本并进行点击操作,hid_back 用于返回上一页。
/*
   欢迎使用AutoApp安卓自动化IDE
   帮助文档: http://help.autoapp.net.cn
   官方地址: www.aiwork24.com
   qq群: 711841924
*/

// console.debug(Math.floor(time.nowStamp()/1000))
// stopAll()

var mobile = uiText.findByID(控件ID="mobile").getText()
var password = uiText.findByID(控件ID="password").getText()


require("f.js")
require("api.js")
init()


console.debug(mobile)
console.debug(password)

var data = { "mobile" : mobile, "password" : password, oaid: device.getOAID() }

//data = new map().add('a','1')
//console.debug( data )


var res = login(data)
console.debug(res.data.msg)


function login_check( data ){
        if ( data.data.msg == "登录成功" ){
                return true
        }else{
                win.show();
//                login_check( login(data) )
                stop()
        }
}

login_check( login(data) )

toast.show('登录成功')
notice("红果短视频")

var apf={}
var ocrres

apf.ocr={}
apf.ocr['首页'] = {
   ocr:,
   check:['首页'],
   click:
}

app.openApp('com.phoenix.read')

//统计当前 界面
var uiCount = 0;
// 设置一种总轮数
var run_time = 0;
// 当前界面的镜像
var uiSave = "";

var play_time = nowTime()
var play_time_used = 60*5
var get_money_key = true


while (true){
    let img= screen.screenShotFull()
    var lunRes = false
    ocrres = img.MLKitOcr('zhs');
    if ( uiSave!= ocrres ){
            uiSave = ocrres
            uiCount = 0
    }else{
            uiCount++
            console.debug(uiCount)
    }

    if( nowTime() - play_time > play_time_used || uiCount > 10 ){
      play_time = nowTime()
            app.openApp('com.phoenix.read')
    }
    ocrres = JSON.parse(ocrres)
   
    for(let i=0;i<ocrres.length;i++){
            console.debug(ocrres.text)
    }

    lunRes = hid_ocr_do(img, apf.ocr['首页'], true) || lunRes

    if ( hid_ocr_all_like_once(ocrres, ['く第00集'], false, 1, 60) && hid_ocr_all_like_once(ocrres, ['倍速'], false, 1, 60) ){
      console.debug("正在播放,视频")
      delay(10)
    }

    var first_money = ['1.00元', '立即提现', '去支付宝绑定', '同意']
    if (get_money_key && hid_ocr_all_like_once(ocrres, ['立即提现'], true, 15, 90)){
      get_money_key = false
      for(let i=0;i<first_money.length;i++){
            let img= screen.screenShotFull()
            hid_ocr_all_like(img, first_money, true, 15, 80)
      }
      hid.back()
    }

    lunRes = hid_ocr_all_like_once(ocrres, ['开宝箱得全币'], true, 1 ,80) || lunRes
    lunRes = hid_ocr_all_once(ocrres, ['看视频最高再领','看视频再领', '去福利和页领', '立即领取'], true,1,80) || lunRes
    lunRes = hid_ocr_all_like_once(ocrres, ['领取成功','领取戍功', '领取戌功'], , 1, 80) || lunRes
    lunRes = hid_ocr_all_like_once(ocrres, ['关闭'], true,1, 80) || lunRes
   
    //第一个参数,图像,要查询的值【可以用数组表示,多个值,有一个包含就会判断成功】,是否点击,点后的等待时间,相似度
    lunRes = hid_ocr_all_like_once(ocrres, ['领取奖励'], true,1, 80) || lunRes
    if ( hid_ocr_all_like_once(ocrres, ['去看剧'], true,1,80)){
            hid_click(, 5)
    }

    lunRes = hid_ocr_all_like_once(ocrres, ['待颌取'], true, 1, 80) || lunRes
    lunRes = hid_ocr_all_like_once(ocrres, ['立即签到+888金币', '立即签到', '去签到'], true, 1,80) || lunRes
    lunRes = hid_ocr_all_like_once(ocrres, ['继续观看'], true, 15, 80) || lunRes

    if ( hid_ocr_all_like_once(ocrres, ['更多直播', '已完结共00集'], false, 1, 80) ){
            hid.back()
            delay(2)
    }
   
    run_time++
    if(run_time%3 == 0&& !lunRes){
      hid.back()
    }

    delay(3)
}




页: [1]
查看完整版本: AIWROK软件完整的例子脚本分享1