系统函数 - System

System对象,提供一些常用的方法。

sleep(millisecond)

millisecond {number} 毫秒

休眠millisecond毫秒

console.log('立即输出');
System.sleep(1000);
console.log('1秒钟后输出');

time()

返回 {string}

返回当前系统时间

console.log(System.time());//输出:2024-03-07 12:12:12

currentActivity()

返回 {string}

返回最近一次监测到的正在运行的Activity名称,一般可以认为就是当前正在运行的Activity的名称。 此函数依赖于无障碍服务,如果服务未启动,则抛出异常并提示用户启动。

console.log(System.currentActivity());//输出:top.deeke.script

currentPackage()

返回 {string}

返回最近一次监测到的正在运行的Package的名称,一般可以认为就是当前正在运行的Package的名称。 此函数依赖于无障碍服务,如果服务未启动,则抛出异常并提示用户启动。

console.log(System.currentPackage());//输出:top.deeke.script

setClip(content)

2.0版本即将上线

content {string}

返回 {void}

将内容写入到剪切板中

getClip()

2.0版本即将上线

返回 {string|null}

返回剪切板内容

toast(message)

msg {string} 要显示的信息

返回 {void}

以气泡显示信息message几秒。(具体时间取决于安卓系统,一般都是2秒)

注意,信息的显示是"异步"执行的,并且,不会等待信息消失程序才继续执行。

toastLong(message)

msg {string} 要显示的信息

返回 {void}

比toast(message)显示的更久一些,具体时长以开发机为准

注意,信息的显示是"异步"执行的,并且,不会等待信息消失程序才继续执行。

waitForActivity(activity, period, timeout)

activity {string} 等待的Activity名称

period {number} 等待的毫秒数

timeout {number} 等待的总毫秒数

返回 {void}

等待Activity出现,period为检查Activity的间隔。如果timeout毫秒后未出现,则停止等待。

waitForPackage(package, period, timeout)

package {string} 等待的Package名称

period {number} 等待的毫秒数

timeout {number} 等待的总毫秒数

返回 {void}

等待Package出现,period为检查Package的间隔。如果timeout毫秒后未出现,则停止等待。

exit()

返回 {void}

关闭脚本引擎

AiSpeechToken(key, secret)

key {string}

secret {string}

返回 {string}

获取远程AI智能话术的token,通过此token再去调用对应的接口;下面是完整的JavaScript代码。

let baiduWenxin = {
    key: 'setting_baidu_wenxin_role',
    dataFrom: 'role',
    getToken(key, secret) {
        key = key || storage.get('setting_baidu_wenxin_key');
        secret = secret || storage.get('setting_baidu_wenxin_secret');

        //查看是否激活了
        let body = System.AiSpeechToken(key, secret);
        Log.log('body', body);
        let aiRes = JSON.parse(body);
        Log.log('aiRes[\'data\']', aiRes['data']);
        if (aiRes['code'] === 0) {
            //开始激活
            return aiRes['data'];
        } else if (aiRes['code'] === 1) {
            FloatDialogs.show('提示', aiRes.msg);
            System.sleep(360000 * 1000);
            return;
        } else {
            Log.log('网络异常了');
            return false;
        }
    },

    getComment(title) {
        let res = this.getToken();
        let access_token = res['access_token'];

        let len = 20 + Math.round(30 * Math.random());

        let tmp = '';
        if (title) {
            tmp = '请你根据短视频标题生成一个有趣的评论内容,标题是:' + title;
        }

        let params = {
            "messages": [
                {
                    "role": "user",
                    "content": "接下来,请你随机帮我生成一条评论,可以是夸别人的视频拍的好、也开始是写一条祝福语、也可以你最想告诉大众的想法"
                }
            ],
            "max_output_tokens": 60,//最大输出长度60
            "system": System.getDataFrom(this.key, this.dataFrom, 'content'),
        }

        if (title) {
            params = {
                "messages": [
                    {
                        "role": "user",
                        "content": "接下来,我会给你一条视频标题,请你帮我生成一条评论,评论内容一定要精简,尽可能能让人看了想和我互动,并且尽可能不要激怒别人;内容字数不要超过" + len + "字,这个很重要"
                    },
                    {
                        "role": "assistant",
                        "content": '好的,我会尽我所能,请给我一条视频标题吧!'
                    },
                    {
                        "role": "user",
                        "content": title
                    },
                ],
                "max_output_tokens": 60,//最大输出长度60
                "system": System.getDataFrom(this.key, this.dataFrom, 'content'),
            }
        }

        //console.log(System.getDataFrom(this.key, this.dataFrom, 'content'));

        res = Http.post('https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=' + access_token, params);
        if (res == null) {
            return false;
        }
        let result = JSON.parse(res);
        Log.log('百度文心返回话术-1', title ? '视频的标题是“' + title + '”,请结合你的角色,写一条少于' + len + '字的吸引人的评论内容' : '请你写一条字数小于' + len + '字的吸引人的评论视频内容', result);
        if (result && result['result']) {
            if (result['result'].substring(0, 1) === '"' && result['result'].substring(result['result'].length - 1) === '"') {
                result['result'] = result['result'].substring(1, result['result'].length - 1);
            }
        }
        return result['result'] || false;
    }
}

generateWindowElements()

返回 {void}

该函数会将当前界面的所有控件记录到日志文件(APP上传日志后,即可拿到界面的控件的信息,一般用于bug定位使用)。

getDataFrom()

key {string}

dataForm {string}

content {string}

返回 {void}

dataForm类型的表单数据获取

let key = 'setting_baidu_wenxin_role';//deekeScript.json中设置的角色表单的name
//”role“是配置接口(api地址:/dkee/config)中返回的内容
System.getDataFrom(key, 'role', 'content');//获取当前设置的角色的内容
Copyright © script.deeke.top 2024 all right reserved,powered by Gitbook该文章修订时间: 2025-02-07 08:05:45

results matching ""

    No results matching ""