吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15237|回复: 429
上一主题 下一主题
收起左侧

[其他原创] 起点读书脚本7.3更新(每日视频福利,限时福利,签到,经验翻倍,领起点币,抽奖)

    [复制链接]
跳转到指定楼层
楼主
KhScript 发表于 2023-8-14 10:57 回帖奖励
本帖最后由 KhScript 于 2024-10-16 17:42 编辑

基于auto.jsautox.js的起点7.9.370.1396版本app日签脚本
理论上是兼容所有版本的起点app的,但代码是基于起点7.9.370.1396版本进行开发的。
首次使用请在录屏的情况下进行运行,这样有问题,可以评论区将录屏以附件或百度网盘链接的形式发出来,提问题标准格式:手机型号+系统类型及版本+起点app版本+录屏
关于帖子分享问题:
1,代码本身是开源的,支持任何人的二次创作,如果我的代码帮助了你,那我与有荣焉;但任何基于本代码的二次创作作品都禁止用于盈利(事实上我已经发现在“**脚本”,“C**N”等平台有人剽窃代码,没有任何删改且标明原则发布,其中在“**脚本”平台竟然还是收费的)
2,关于帖子分享问题,我理解大家乐于分享的心情,并且吾爱破解平台本身也是一个分享渠道,但请大家注意分享渠道(事实上我已经发现有人在起点书评区分享了,那么喜欢贴脸开大吗?)
3,就我个人而言,我希望每一个朋友都是靠自己找到本帖子的,而不是因为他人的分享得到的(我喜欢低调)
(也请不要老是更新,每次起点更新的东西你用的到吗?那就是产品经理为了让自己显的有作用加的乱七八糟东西罢了。在不影响日常使用的情况下,不建议更新起点,其他APP也一样,旧手机尤其适用这一规则)
PS:代码仅用于js代码学习、交流、讨论!
————————————————————————
起点脚本7.3更新
优化:再次优化解决,因网络波动或其他手机未知卡顿,产生的广告视频未加载成功而直接跳过,并弹出‘广告已经看完了,直接给你奖励吧’文字时,脚本陷入死循环的问题
新增:青少年模式弹窗,流量播放弹窗过滤
Bug阉割:因为抽奖页面的未知改动,现在抽奖功能已经不能用了,抽奖页面所有控件均不能获取到,所以暂时屏蔽该功能,直至我找到新的解决方法
版本前瞻:广告播放页面最近有部分朋友又变回旧版页面了,不过貌似之前的开发代码时做的兼容性预判生效了,所以暂时对该部分功能观察一段时间确认是否稳定,是否存在优化空间
关于版本号的问题,每次更新版本号不连续是因为我在优化代码时淘汰了中间测试版本,每个上线版本都是经过大约3天的稳定性试用才发布的
注:脚本每次更新都是对旧版兼容的,新旧的福利中心或者签到页都是兼容
————————————————————————
模块功能的启用是考虑三点产生的:
1,随着脚本的持续维护,脚本的代码量越来越大,已经在向屎山代码靠近,也不敢轻易的精简代码,怕产生新的bug
2,将新功能模块化,切割成一个个小脚本,这样便于朋友们可以选取自己想要的功能,自定义添加
3,我希望引入更多朋友帮我维护脚本,开发新功能供大家选择,以后如果有朋友发现本代码的功能已经不能满足你的时候,可以自己开发新功能,并发帖分享出来供大家使用(例如:大家都很想要,而我又因为精神洁癖很嫌弃的的“自动玩游戏领起点币功能”,期待有朋友可以帮忙开发,供大家使用)


相关的脚本,我会在本帖标明,给新开发的脚本引流,供大家选取。
模块脚本链接:
1,https://www.52pojie.cn/thread-1904200-1-1.html;起点激励碎片脚本1.1.2
2,https://www.52pojie.cn/thread-1911482-1-1.html;基于auto.js或autox.js的多账户起点自动签到脚本(支持玩游戏领起点币)
3,待添加……
————————————————————————
代码是一边学一边写的,大体功能都可以实现(每日视频福利,限时福利,签到,经验翻倍,概率得起点币,抽奖,章节卡碎片,开宝箱),但是有概率某个按键点击事件失效,至今没找到原因,如果你使用了我的代码。并且有这方面的代码基础,可以帮我维护一下,解决这个问题
运行代码前,需要给auto.js无障碍,悬浮窗权限,如果需要静音功能还需要授权修改系统设置权限,这里着重为小白强调一下:“修改系统设置权限”是仅次于root权限的,授权该权限几乎相当于授权控制手机所有功能,如果你的auto.jsautox.js来源并不正规,有被内置病毒概率,那么并不建议你授权该权限,请注释掉第10行,11行代码,每次使用前,先手动静音也挺好的,我衷心的不希望在“病毒救援区”与各位碰面并且运行前最好先手动打开起点app将一些每日首次启动的意外弹窗点击掉,例如青少年模式,各种促销活动弹窗,之后关闭起点,运行auto.js
————————————————————————
起点脚本2.0更新
经过一段时间的测试,再一次优化了代码,进一步降低点击事件的失效问题。
另经过最近的测试,平板电脑不能使用该代码,因为楼主是使用图层来定位某些按键的,平板的图层与手机的不同会导致代码点击事件失效一大部分,目前不打算修复这个问题,等哪天闲下来再说吧。
————————————————————————
起点脚本3.0更新
优化+控件的点击,移除通过图层来获取控件的操作,通过坐标计算点击位置,好处是点击的位置更准确,坏处是脚本运行期间如果弹出意外弹窗(微信消息之类的横屏弹窗)会误点导致脚本运行出错。
运行脚本的手机如果太远古,会因为各种应用卡顿导致脚本运行出问题(例如打开某个页面反应过慢会一直点击,导致最后同一个页面打开很多个),暂不修复这个问题,优化这玩意好难,永远不知道旧手机会卡在哪一步……
————————————————————————
起点脚本4.0更新
新增:兼容两种版本的起点签到页,即,签到获取经验和签到获取章节卡碎片两种版本
注:周日章节卡碎片兑换的操作还是要自己来,因为我也不知道你要换哪一种章节卡,还是自己按照需求换吧
————————————————————————
起点脚本5.1更新
在原计划发布的5.0版本基础对观看视频的代码逻辑进行了优化,至于未发布的5.0已经被淘汰了,原因是我发现最近起点的看视频时长有增加的趋势,就是说原本绝大部分视频都是看小于等于15秒视频即可获取,但是最近出了一个所谓的“白泽装扮”,视频时长是观看随机的小于等于30秒才可以获取,这是一个信号,意味着后续视频福利的观看时长可能会增长(实际上有一次我在网络波动的情况下测试脚本,开宝箱的视频竟然是观看20秒才可以领取),所以我取消了原计划11月13号发布的脚本5.0,进行延期优化。另外星期二我老爸突然受伤了,我去医院照顾了几天,耽误了点时间今天才写好,而且由于时间匆忙,代码稳定性的测试还没进行就在今天匆匆发布了,大家有问题,多多提出(附截图,以及语言描述,最好是稳定复现的问题,比较好解决)
新增:兼容新版开宝箱福利中心,优化观看视频代码逻辑。
————————————————————————
起点脚本5.2.5更新
新增:兼容安卓14与鸿蒙,安卓13及以下设备。
优化:修复新版视频播放页面脚本失效的问题
————————————————————————
起点脚本5.2.6更新
优化:进一步优化5.2.5的稳定性(针对安卓14的优化;鸿蒙,安卓13及以下设备可不更新)
————————————————————————
起点脚本5.2.7更新
优化:针对高频问题2的优化,注意是优化,不是完全杜绝,只是在遇到该问题时,可以跑下去,不至于卡住。
————————————————————————
起点脚本5.2.8更新
新增:高频问题3的识别文字补充。
————————————————————————
起点脚本5.2.9更新
修复:修复安卓14系统,有概率卡在“观看视频0秒后,可领取奖励”界面的问题
优化:修改获取退出坐标的逻辑,增加稳定性
————————————————————————
起点脚本5.2.10更新
修复:修复鸿蒙,安卓13及以下系统,在“观看完视频”的界面运行异常,自动打开应用跳转的问题
————————————————————————
起点脚本6.0更新
新增:引入模块功能,可以单独启用依附于本脚本的模块脚本,用于添加自定义功能
————————————————————————
起点脚本6.1更新
新增:听书一分钟领取起点币功能
————————————————————————
起点脚本6.1.5更新
新增1:根据反馈,新增听书静音功能,但该功能需要授权“修改系统设置权限”;这里着重为小白强调一下:“修改系统设置权限”是仅次于root权限的,授权该权限几乎相当于授权控制手机所有功能,如果你的auto.js或autox.js来源并不正规,有被内置病毒概率,那么并不建议你授权该权限,请注释掉第10行,11行代码,每次使用前,先手动静音也挺好的,我衷心的不希望在“病毒救援区”与各位碰面。
新增2:增加听书防黑屏功能
优化:起点7.9.336.1206版安卓13及以下系统已经可以稳定获取看视频控件了,所以和安卓14的看视频逻辑进行了合并,稳定性提高,并彻底解决高频问题2,3,以后不需要根据系统类型来区别处理了,所有系统采用一套看视频逻辑。
修复:解决偶尔跳过每日视频观看的bug
预开发:针对新出现的听书广告(评论区置顶),做了预开发,但因为我始终没有遇到过该广告,所以该功能仅在理论上是可以使用的,如果后续有问题,请及时反馈,我来修改。
————————————————————————
起点脚本6.1.6更新
修复1:修复因签到页布局改变导致的抽奖看视频退出异常的问题
修复2:修复因第三方广告跳过软件误触,导致视频暂停播放的问题(例如“李跳跳”,“GKD”在视频广告页面因识别到了“跳过广告”文字而产生误触,造成的视频停止播放)
优化:以后每次更新会将代码文档打包,以附件的形式放在本帖最后,这样没有电脑的小伙伴只需下载附件再解压,最后长按解压后的文档,根据手机的弹窗,选择auto.js或autox.j自带的“导入脚本文件”功能直接使用(便捷是有代价的,需要1吾爱币)
————————————————————————
起点脚本6.1.7更新
修复:解决偶尔获取不到退出坐标脚本卡死的问题
————————————————————————
起点脚本6.1.8更新
修复:修复因听书界面改版导致的听书异常问题(无法听书或听完书退不出去)
————————————————————————
起点脚本6.1.9更新
修复:修复因听书界面改版导致的听书异常问题(无法听书或听完书退不出去);这次更新就是在回退至6.1.7版本的基础上添加了一点容错机制,一定程度上避免再次出现界面改版导致的问题,理论上直接使用6.1.7版本也是可以的。
————————————————————————
起点脚本6.1.9.1更新
修复:解决异常退出福利中心的问题
————————————————————————
起点脚本6.1.10.2更新
修复:解决因网络波动或其他手机未知卡顿,产生的广告视频未加载成功而直接跳过,并弹出‘广告已经看完了,直接给你奖励吧’文字时,脚本陷入死循环的问题
————————————————————————
高频问题1:脚本提示“脚本运行异常,请将起点、auto.js后台清理后尝试重新运行
原因是因为网络延迟,手机卡顿,或没有定位到“我”的控件坐标,导致脚本在15秒内未能进入福利中心,前两点无法处理,第三点有三种处理方式,我在代码中提供了三种点击“我”的方案,其中方案三仅对部分机型有效,遇到了可以优先尝试方案三。
分别是:第39-44行代码、第45行代码。
如果方案一二都不行,请对方案二进行更改,将第44行代码的150,改成0-300以内的数字,不同尺寸,分辨率的手机更改的数字不同,请酌情更改。
————————————————————
附最新代码,代码运行出现问题请评论区贴图,楼主只有3个账号,两台手机(荣耀magic5pro,荣耀30pro)可以测试脚本,测试样本数量远远不够,维护ing……
console.show()
auto.waitFor()
console.setTitle("7.3");
console.setPosition(0, device.height / 1.6)
console.setSize(device.width / 2, device.width / 2)
if (auto.service == null) {
    log("请先开启无障碍服务!");
} else {
    log("无障碍服务已开启");
    log("开启静音");
    device.setMusicVolume(0)
    home()
    sleep(1000);
    launch("com.qidian.QDReader");
    waitForPackage("com.qidian.QDReader");
    do {
        sleep(1000);
        if (text("书架").exists() && text("精选").exists() && text("发现").exists() && text("我").exists()) {
            break;
        } else {
            log("缓冲……")
        }
    }
    while (!(text("书架").exists() && text("精选").exists() && text("发现").exists() && text("我").exists()))
    sleep(3000);
    back()
    if (text("书架").exists() && text("精选").exists() && text("发现").exists() && text("我").exists()) {
        log("起点已启动成功");
        sleep(1000);
        var thread = threads.start(
            function time() {
                //计时
                let shuzi = 0;
                do {
                    sleep(1000);
                    shuzi++
                }
                while (shuzi < 15);
                log("脚本运行异常,请将起点、auto.js后台清理后尝试重新运行");
                engines.stopAllAndToast()
            }
        );
        swipe(device.width - 50, device.height / 4, device.width - 50, device.height / 2, 500)
        sleep(3000);
        //方案一
        let uc = id("viewPager").className("androidx.viewpager.widget.ViewPager").scrollable(true).findOne().bounds()
        var x1 = uc.right;
        var y1 = uc.bottom;
        click((x1 - 10), (y1 + 10))
        //方案二
        // click(device.width - 150, device.height - 150)
        //方案三
        // id("view_tab_title_title").className("android.widget.TextView").text("我").findOne().parent().click()
        sleep(3000);
        if (text("福利中心").exists()) {
            log("成功打开“我”");
            thread.interrupt()
            log("关闭纠错线程");
            click("福利中心", 0)
            do {
                log("缓冲中……");
                sleep(1000);
            }
            while (!(className("android.view.View").text("每日视频福利").exists() || text("每日福利").exists()));
            log("已进入福利中心");
            log("———————");
            sleep(5000);
            if (textContains("立即开启").exists()) {
                click("立即开启", 0)
                sleep(3000);
                if (textContains("恭喜你获得").exists()) {
                    back()
                    sleep(3000);
                }
                click("福利中心", 0)
                do {
                    log("缓冲中……");
                    sleep(1000);
                }
                while (!(className("android.view.View").text("每日视频福利").exists() || text("每日福利").exists()));
                log("重新进入福利中心");
                log("———————");
            }
            //每日视频
            if (textContains("每日福利").exists()) {
                do {
                    log("每日视频")
                    sleep(1000);
                    if (textContains("看视频领福利").exists()) {
                        className("android.widget.Button").textContains("看视频领福利").click();
                        video_look()
                        sleep(2000);
                        if (textContains("我知道了").exists()) {
                            click("我知道了", 0)
                        }
                        sleep(3000);
                    } else {
                        break;
                    }
                } while (text("看视频领福利").exists());
                if (textContains("恭喜你获得").exists()) {
                    back()
                    sleep(3000);
                }
                if (textContains("看视频开宝箱").exists()) {
                    log("开宝箱");
                    textContains("看视频开宝箱").click()
                    video_look()
                    sleep(2000);
                    if (textContains("我知道了").exists()) {
                        click("我知道了", 0)
                    }
                    log("宝箱开完了");
                } else {
                    log("宝箱开完了");
                }
            } else {
                do {
                    log("每日视频")
                    sleep(1000);
                    if (text("明天再来吧").exists()) {
                        break;
                    } else {
                        var video_sum = className("android.widget.Button").findOne().text()
                        log(video_sum)
                        var video_loop = video_sum.charAt(2);
                        if (video_loop == "再") {
                            break;
                        } else {
                            className("android.widget.Button").textContains("看第").click();
                            video_look()
                            sleep(2000);
                            if (textContains("我知道了").exists()) {
                                click("我知道了", 0)
                            }
                            sleep(3000);
                        }
                    }
                }
                while (video_loop != "再" || video_loop <= 8);
                if (textContains("恭喜你获得").exists()) {
                    back()
                    sleep(3000);
                }
            }
            sleep(3000);
            log("每日视频福利已刷完,开始刷限时任务");
            log("———————");
            //限时任务
            let k = 0
            do {
                log("限时任务")
                if (text("看视频").exists()) {
                    text("看视频").findOne().click()
                } else {
                    break;
                }
                sleep(3000);
                if (text("可从这里回到福利页哦").exists()) {
                    click("我知道了", 0)
                }
                video_look()
                sleep(3000);
                if (text("我知道了").exists()) {
                    click("我知道了", 0)
                    k++
                    sleep(3000);
                }
                console.log("已完成限时任务", k);
                if (k > 2) {
                    break;
                }
            }
            while (text("看视频").exists());
            log("听书");
            if (text("当日听书1分钟").exists()) {
                let ts1 = text("当日听书1分钟").findOne().bounds()
                let x1 = ts1.right;
                let y1 = ts1.bottom;
                ts1.right = Number(ts1.right) + Number(5)
                click(x1, y1)
                sleep(3000);
                if (text("听原创小说").exists()) {
                    let abscissa = device.width;
                    let ordinate = device.height;
                    let abscissa_new = abscissa / 2
                    let ordinate_new = ordinate / 2
                    click(abscissa_new, ordinate_new)
                    sleep(3000);
                }
                if (text("免费听").exists() || text("定时").exists() || text("加书架").exists() || text("目录").exists()) {
                    sleep(3000);
                    let i = 0;
                    do {
                        i++
                        sleep(1000);
                        console.log("已收听", i + "秒")
                        if (!(i % 10)) {
                            console.log("防休眠点击")
                            click(1, 1)
                        }
                    }
                    while (i < 70);
                    back()
                    sleep(3000);
                    if (textContains("加入书架").exists()) {
                        click("取消", 0)
                    }
                    sleep(3000);
                    if (text("听原创小说").exists()) {
                        do {
                            log("缓冲中……");
                            sleep(1000);
                        }
                        while (!text("听原创小说").exists());
                        back()
                    }
                    do {
                        log("缓冲中……");
                        sleep(1000);
                    }
                    while (!text("福利中心").exists());
                    back()
                    do {
                        log("缓冲中……");
                        sleep(1000);
                    }
                    while (!text("我的账户").exists());
                    click("福利中心", 0)
                    do {
                        log("缓冲中……");
                        sleep(1000);
                    }
                    while (!(className("android.view.View").text("每日视频福利").exists() || text("每日福利").exists()));
                    sleep(1000);
                    if (id("ivClose").exists()) {
                        id("ivClose").findOne().click()
                    } else {
                        console.log("未知原因,找不到关闭按钮,请手动关闭")
                    }
                    sleep(1000);
                    if (text("领奖励").exists()) {
                        click("领奖励", 0)
                        sleep(2000);
                        if (text("我知道了").exists()) {
                            click("我知道了", 0)
                            sleep(1000);
                        }
                    }
                    log("听书完成");
                } else {
                    console.log("听书活动已完成")
                }
            } else {
                console.log("听书活动已结束")
            }
            log("限时任务,已完成,开始签到");
            log("———————");
            //签到
            back()
            sleep(1000);
            back()
            sleep(1000);
            // swipe(1200, 1679, 1200, 2480, 500)
            sleep(1000);
            if (text("签到").exists()) {
                click("签到", 0)
                sleep(2000);
                back()
                log("已点击签到");
            } else {
                log("已签到过了");
            }
            sleep(3000);
            log("———————");
            log("刷今日福利");
            log("———————");
            //今日福利
            if (text("今日福利").exists() || text("去抽奖").exists() || text("签到福利").exists()) {
                if (text("去抽奖").exists()) {
                    click("去抽奖", 0)
                    sleep(3000);
                    if (textContains("剩余") && ((className("android.view.View").text("抽 奖").exists()) || className("android.view.View").text("看视频抽奖喜+1").exists())) {
                        back()
                        sleep(1000);
                        click("今日福利", 0)
                    }
                } else if (text("今日福利").exists()) {
                    click("今日福利", 0)
                } else if (text("签到福利").exists()) {
                    click("签到福利", 0)
                }
                sleep(3000);
                if (textContains("当前连续签到").exists()) {
                    let qiandao = textContains("当前连续签到").findOne().text()
                    log(qiandao)
                    //连签礼包
                    log("连签礼包活动")
                    if (textContains("连签礼包").exists()) {
                        sleep(2000);
                        textContains("连签礼包").findOne().click()
                        sleep(2000);
                        back()
                        sleep(2000);
                        log("连签礼包已领取")
                    } else {
                        log("连签礼包活动结束")
                    }
                    log("———————");
                    if (textContains("章节卡碎片").exists()) {
                        log("签到领章节卡活动");
                    } else {
                        log("签到翻倍经验活动");
                    }
                    if (text("去翻倍").exists()) {
                        text("去翻倍").findOne().click()
                        video_look()
                        sleep(2000);
                        if (text("我知道了").exists()) {
                            click("我知道了", 0)
                            sleep(2000);
                        }
                        if (textContains("章节卡碎片").exists()) {
                            log("签到领章节卡活动结束");
                        } else {
                            log("签到翻倍经验活动结束");
                        }
                    } else {
                        if (textContains("章节卡碎片").exists()) {
                            log("签到领章节卡已完成");
                        } else {
                            log("签到翻倍机会已用完");
                        }
                    }
                    log("———————");
                    log("返回主界面")
                    back()
                } else {
                    log("———————");
                    log("未进入今日福利");
                }
            } else {
                log("———————");
                log("今日福利点击失败");
            }
            log("———————");
            sleep(1000);
            // var mokuai_jilisuipian = require('激励碎片.js');
            // mokuai_jilisuipian.step()
            log("脚本已结束,记得清理auto.js后台");
            log("控制台3秒后自动关闭");
            sleep(3000);
            console.hide()
            engines.stopAllAndToast()
        } else {
            log("未成功打开“我”");
        }
    } else {
        log("起点未启动成功,请查看日志查询原因");
    }
}
function video_look() {
    //计时
    log("———————");
    log("看视频");
    sleep(2000);
    if (textContains("播放将消耗流量").exists()) {
        click("继续播放", 0)
    }
    //判断是否进入视频播放页面
    let m = 0;
    do {
        m++
        sleep(1000);
        if (textContains("可获得奖励").exists()) {
            break;
        } else {
            log("缓冲……")
        }
        if (m > 5 && !(textContains("领取奖励").exists()||textContains("可获得奖励").exists())) {
            return;
        }
    }
    while (!textContains("可获得奖励").exists())
    //获取退出坐标
    var video_quit = "";
    var x1 = 1;
    var x2 = 1;
    var y1 = 1;
    var y2 = 1;
    var thread = threads.start(
        function coordinate() {
            sleep(3000);
            if (textContains("可获得奖励").exists() && !video_quit) {
                video_quit = textContains("可获得奖励").findOne().bounds()
                x1 = 0;
                x2 = video_quit.left;
                y1 = video_quit.top;
                y2 = video_quit.bottom;
                console.log("退出坐标", parseInt((x1 + x2) / 2), parseInt((y1 + y2) / 2))
            } else {
                console.log("计算退出坐标失败,稍后重新获取")
            }
        }
    );
    var video_flag = "";//视频文字信息
    //判断视频是否播放到满足领取奖励条件
    var storage = "";
    do {
        if (textContains("可获得奖励").exists()) {
            if (textContains("观看完视频").exists()) {
                video_flag = "观看完视频,可获得奖励"
            }
            if (textContains("观看视频").exists()) {
                video_flag = textContains("观看视频").findOne().text()
            }
            if (textContains("有声书").exists()) {
                video_flag = textContains("有声书").findOne().text()
            }
            if (video_flag != storage && storage.length <= 0) {
                console.log(video_flag)
            }
            if (video_flag != storage && storage.length > 0) {
                console.log(video_flag)
                if (video_flag.includes("视频0秒") || video_flag.includes("收听0秒")) {
                    console.log("结束");
                    sleep(1500);
                    break;
                }
            }
            storage = video_flag;
        } else {
            if (video_flag.includes("观看完视频")) {
                console.log("结束");
                sleep(1500);
                break;
            }
        }
        if (textContains("继续观看").exists()) {
            textContains("继续观看").click()
            sleep(1500);
        }
        if (textContains("继续听完").exists()) {
            textContains("继续听完").click()
            sleep(1500);
        }
    }
    while (!video_flag.includes("已"));
    thread.interrupt()
    //退出视频
    let n = 0;
    do {
        n++
        if (n == 1) {
            click(parseInt((x1 + x2) / 2), parseInt((y1 + y2) / 2))
        } else if (n > 1 && textContains("可获得奖励").exists()) {
            log("退出失败,重新获取退出坐标")
            if (textContains("跳过广告").exists()) {
                text("跳过广告").findOne().click()
            } else if (textContains("跳过视频").exists()) {
                text("跳过视频").findOne().click()
            } else {
                if (textContains("可获得奖励").exists()) {
                    video_quit = textContains("可获得奖励").findOne().bounds()
                }
                x1 = 0;
                x2 = video_quit.left;
                y1 = video_quit.top;
                y2 = video_quit.bottom;
                var bounds = true;
                do {
                    var x = random(x1, x2);
                    var y = random(y1, y2);
                    console.log("区域随机点击", x, y)
                    click(x, y);
                    if (textContains("继续观看").exists()) {
                        textContains("继续观看").click()
                        sleep(1500);
                    }
                    if (textContains("继续听完").exists()) {
                        textContains("继续听完").click()
                        sleep(1500);
                    }
                }
                while (textContains("可获得奖励").exists());
            }
        } else if (!textContains("可获得奖励").exists()) {
            log("尝试模拟“手势返回”")
            back()
        } else {
            log("未知原因退出失败,脚本停止运行")
            engines.stopAllAndToast()
        }
        sleep(3000);
    }
    while (!(textContains("福利中心").exists() || textContains("视频奖励").exists() || text("签到").exists()));
    log("关闭视频")
    log("———————");
}

起点脚本7.3.zip

3.71 KB, 下载次数: 93, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 45吾爱币 +48 热心值 +40 收起 理由
失了智 + 1 + 1 谢谢@Thanks!
chaodon + 1 + 1 我很赞同!
婪森 + 1 + 1 热心回复!
jayvscxx + 1 我很赞同!
gxfreebird + 1 + 1 热心回复!
rostiute + 1 + 1 我很赞同!
holyright-wing + 1 + 1 谢谢@Thanks!
武装人员 + 1 + 1 谢谢@Thanks!
zengyantao + 1 + 1 谢谢@Thanks!
peyye + 1 + 1 谢谢@Thanks!
糖水 + 1 + 1 谢谢@Thanks!
ZERO水果君 + 1 + 1 谢谢@Thanks!
Mortal2000 + 1 + 1 谢谢,太需要了
LX20180429 + 1 + 1 谢谢@Thanks!
恰恰恰 + 1 + 1 谢谢@Thanks!
Carried + 1 + 1 谢谢@Thanks!
yxgzcc + 1 + 1 谢谢@Thanks!
taroer + 1 + 1 我很赞同!
SKADIN + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
yebu + 1 谢谢@Thanks!
sw8740 + 1 + 1 谢谢@Thanks!
iiisleep + 1 我很赞同!
yeshusheng + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wuai202322525 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zhoujunxu + 1 + 1 用心讨论,共获提升!
亓星沉 + 1 + 1 谢谢@Thanks!
opuxxx + 1 + 1 我很赞同!
nonwoo + 1 我很赞同!
精灵遗族 + 1 + 1 我很赞同!
iwp + 1 这个脚本代码怎么运行呢
天使号列车 + 1 + 1 谢谢@Thanks!
potato614 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
记逸 + 1 + 1 谢谢@Thanks!
imhuhu + 1 + 1 谢谢@Thanks!
xiaokun566 + 1 + 1 我很赞同!
Aengusli + 1 + 1 我很赞同!
Fzero + 1 + 1 谢谢@Thanks!
「指尖﹏独舞」 + 1 + 1 谢谢@Thanks!
衍东子 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
谢单单 + 1 + 1 谢谢@Thanks!
sqlddos + 1 + 1 我很赞同!
limitless2019 + 1 + 1 用心讨论,共获提升!
yfdy + 1 我很赞同!
lq2007 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

来自 269#
天使号列车 发表于 2024-4-1 21:23
本帖最后由 天使号列车 于 2024-4-3 09:12 编辑

这是我搬运的github地址,可以直接从这里下载到最新的脚本
https://github.com/Ren-Boo/QiDianDuShu/releases
来自 348#
 楼主| KhScript 发表于 2024-6-1 16:57 |楼主
黑咖啡凤凰 发表于 2024-5-31 09:53
起点更新庆余年版本后,一直开在听书,需要重新运行一次,今天已经运行完了,明天我发个运行视频让大佬看看 ...

我最近在出差,出差用的电脑是公司的工程机没法去写程序,暂时都做不了什么,不好意思,等我忙完吧

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
黑咖啡凤凰 + 1 + 1 已经处理,感谢您对吾爱破解论坛的支持!

查看全部评分

推荐
 楼主| KhScript 发表于 2024-1-26 19:11 |楼主
本帖最后由 KhScript 于 2024-1-26 19:15 编辑

适用于安卓14,鸿蒙;安卓13不知道能不能用(平时白嫖连个评分,热心值都不给就算了,现在测试维护急需反馈能不能吱吱声?)

版本5.2.2;适用于安卓14,鸿蒙.zip

3.72 KB, 下载次数: 154, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 5吾爱币 +5 热心值 +5 收起 理由
z1191530625 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
LINGZERO + 1 + 1 热心回复!
「指尖﹏独舞」 + 1 + 1 热心回复!
Aengusli + 1 + 1 谢谢@Thanks!
黑咖啡凤凰 + 1 + 1 用心讨论,共获提升!

查看全部评分

推荐
 楼主| KhScript 发表于 2024-1-28 21:30 |楼主
本帖最后由 KhScript 于 2024-1-28 22:00 编辑
gto250 发表于 2024-1-28 19:48
视频看完就会卡在观看视频0秒后可获得奖励,广告不能关闭

版本5.2.5
修复安卓14手机,卡在"观看视频0秒后可获得奖励"不能退出视频的bug @gto250
适用于安卓14,鸿蒙;安卓13及以下理论上可以用,不能用记得评论回复(平时白嫖连个评分,热心值都不给就算了,现在测试维护急需反馈能不能吱吱声?)
建议首次使用时,开启录屏,这样有问题时直接可以给我发录屏。
现在维护脚本的最大问题就是,你们手机上的问题,我复现不了,所以每一次修改都是在猜各位失败的原因。
另外如果鸿蒙系统在运行脚本时,显示当前设备的Android版本为:**,是正常的,目前各位使用的还不是鸿蒙next,Android软件运行是以兼容模式运行
在鸿蒙,安卓13及以下的手机上:当视频播放页面,文字是“观看完视频,可获得奖励”时,有概率不能正常退出视频,循环显示已观看**秒,,不出意外这个bug会在以后得日子里多次出现,是个长期维护的任务,具体原因在测试版稳定后进行解释,懂代码的人可以看看第516行,那个地方以后或许要加很多个“或条件”

版本5.2.5;适用于安卓14,鸿蒙.zip

4.13 KB, 下载次数: 113, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
yxlchzero + 1 + 1 我很赞同!
黑咖啡凤凰 + 1 + 1 我很赞同!

查看全部评分

推荐
 楼主| KhScript 发表于 2024-1-24 15:06 |楼主
本帖最后由 KhScript 于 2024-1-24 15:07 编辑

针对起点广告页面改版导致脚本失效的问题,需要点时间做改动,改动期间会不定时发布测试版本,请大家每天看一眼帖子的置顶是否有最新的测试版本。
推荐
记逸 发表于 2024-1-24 08:43
本帖最后由 记逸 于 2024-1-24 08:56 编辑

起点修改了广告的样式,现在顶部是一个“观看视频X(不停减少的数字)秒,可获奖励”,到时间就变成:已看视频15秒,可获奖励“,返回键不能触发中断广告了,左上角的叉点了之后触发广告暂停选择继续观看或跳过,两个手机测试过,分别是小米k40,miui14,起点版本7.9.326,小米9,miui12.5,起点版本7.9.316

图片里面的暂停只通过点击左上角的叉才能出现,返回键和点击其他地方都不能触发暂停广告

忘记讲了,三个版本的脚本最开始的,11月的5.1和头两天的5.2三个脚本都测试过,同样的问题,我不懂编程,不过猜测原因是之前5.1版本需要暂停一下读取需要观看视频的时间,这个操作是通过返回暂停的,现在返回键不能触发暂停读取不了观看时间,所以一直卡在组件0

11.jpg (175.32 KB, 下载次数: 2)

11.jpg

13.jpg (170.67 KB, 下载次数: 1)

13.jpg

12.jpg (124.58 KB, 下载次数: 2)

12.jpg
推荐
potato614 发表于 2023-10-31 08:59
楼主我是这种界面,,一直显示缓冲中...

image.png (133.44 KB, 下载次数: 3)

image.png
推荐
Fzero 发表于 2023-11-9 12:12
本帖最后由 Fzero 于 2023-11-10 10:13 编辑

起点7.9.310版,新福利中心页面,楼主大佬4.0版本脚本运行到第56行时会卡住一直循环 缓冲中

我将4.0版本脚本第56行

while (!className("android.view.View").text("每日视频福利").exists());

修改为

while (text("每日福利").exists());

第73行

className("android.widget.Button").textContains("看第").click();

修改为

className("android.widget.Button").textContains("看视频领福利").click();

可以成功运行
推荐
xxggla666 发表于 2024-2-4 20:30
KhScript 发表于 2024-2-3 16:55
高频问题3补充文字:
“点击下载”,“去微信看看”    感谢@qqq1119237 的提供

限时任务那里赶紧可以加一个小下滑,昨天运行的时候,一直在重复运行,今天我自己改了一下好了
推荐
 楼主| KhScript 发表于 2024-2-7 16:54 |楼主
xxggla666 发表于 2024-2-6 23:45
嗯老哥说的很好,这个我自己在用了,没分别人,另外老哥你可以看一下你的那个限时任务那里只查找了文字, ...

这个是历史原因,加了后部分旧手机直接识别不到控件了,年后我再测试一下
推荐
xxggla666 发表于 2024-2-6 23:45
KhScript 发表于 2024-2-6 01:02
你这个跳过视频,是指不看,直接跳过吗?那你这种行为很危险啊。使用脚本看视频,本质上并没有影响起点的 ...

嗯老哥说的很好,这个我自己在用了,没分别人,另外老哥你可以看一下你的那个限时任务那里只查找了文字,好像有点不行,我加了className和packageName,准确率大大提高了
推荐
 楼主| KhScript 发表于 2024-2-6 01:02 |楼主
本帖最后由 KhScript 于 2024-2-6 01:04 编辑
xxggla666 发表于 2024-2-4 18:12
我有点基础,看了一下老哥的代码,简单二次修改了一个个有跳过看视频模块的脚本

你这个跳过视频,是指不看,直接跳过吗?那你这种行为很危险啊。使用脚本看视频,本质上并没有影响起点的广告收益,甚至因为完播率很高,反而是有助于收益的。但如果是直接跳过,那就涉及核心利益了,起点会花大力气进行反脚本的。
我的建议是,如果你真的是直接跳过的,那你二次创作后的代码,请不要分享给任何人,你这样,一旦大规模使用,势必会开启大规模反脚本,会让我后期维护很困难。
另外,我年后得发表个声明,禁止任何人以任何方式进行代码分享或推荐,我希望各位都是凭本事自己刷到的。

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
天使号列车 + 1 + 1 我很赞同!
Fzero + 1 + 1 谢谢@Thanks!

查看全部评分

沙发
LC20201314 发表于 2023-8-18 14:21
小白有点看不懂,有没有电脑版的呢
3#
LC20201314 发表于 2023-8-18 14:22
大佬,能不能弄一份电脑版的,我要抄作业
4#
Summer000 发表于 2023-8-21 14:55
sleep(3000);
????升级一下
5#
maxbo 发表于 2023-8-21 21:40
期待楼主改进,手机费眼,期待电脑版的。
6#
lq2007 发表于 2023-8-21 23:06
6,有用,收下了
7#
 楼主| KhScript 发表于 2023-8-22 13:14 |楼主
LC20201314 发表于 2023-8-18 14:21
小白有点看不懂,有没有电脑版的呢

网页不行,起点电脑端因为反盗版,反脚本已经反魔怔了,简直杀红了眼
8#
 楼主| KhScript 发表于 2023-8-22 15:08 |楼主
Summer000 发表于 2023-8-21 14:55
sleep(3000);
????升级一下

3秒是个很稳定的时间了,再往后延时只会让脚本显得很呆,怀疑脚本是否运行正常。目前我自测的总结出错的原因大概有两方面1,是网络延时,2,是每个图层的按键加载出来的时间不同,导致获取时按键信息时出问题。但我解决不了,监听需要root权限,为了一个脚本大可不必,也做不到(我用的华为全家桶,系统封闭性太强)
9#
lq2007 发表于 2023-8-22 15:44
maxbo 发表于 2023-8-21 21:40
期待楼主改进,手机费眼,期待电脑版的。

手机应用哪有电脑版,而且现在起点APP在模拟器里直接闪退打不开。。。

起点网页上有签到活动?
10#
lq2007 发表于 2023-8-22 16:48
发生异常:每日视频时 78 行找不到 text 方法
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 12:12

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表