咪咕自动翻页打卡(免费得kindle)

文章目录

  • 前言
  • 思路
  • 完整代码
  • 后言

前言

首先呢,咪咕的这个获取是在手机上打卡的,平时看书都喜欢在kindle上面看,毕竟现在眼睛没以前好了,就想着用auto.js写个自动翻页的,每次打开就直接放那里就行了

思路

思路很简单,直接用定时器使用click模拟点击右下角就可以了

setInterval(() => {
    if (flag) {
        click(800, 1500);
    }
}, 10000);

但是这样呢好没技术含量,优化一下,加个随机数,随机随时点击屏幕右下角,这样就能更好的模拟点击了,就算咪咕后面直接检测是否机器,随机随时的自动点击,他也检测不出来了

//拿一下屏幕宽度和高度,定位一下右下角区域
let clickX = device.width - 200;
let clickY = device.height - 200;
setInterval(() => {
    if (flag) {
        ;
        let random = Math.floor(Math.random() * 100);
        sleep(random*20);
        click(clickX - random, clickY - random);
    }
}, 10000);

由于咪咕打卡有个时间限制,就是15分钟就可以了,所以再加个时间显示,再加个微信推送,那样上班时候,电脑微信收到通知,就知道手机打完卡,再去点一下签到,一天就搞完了,微信推送用的是server酱

setInterval(() => {
    if (flag) {
        let endStamp = (new Date()).getTime();
        costStamp = endStamp - staStamp + costStamp;
        staStamp = endStamp;
        let costTime = parseInt(costStamp / 1000 / 60) + "分" + (parseInt(costStamp / 1000) % 60) + "秒";
        //对控件的操作需要在UI线程中执行
        ui.run(function() {
            window.msy_time.setText("执行时长:" + costTime);
        });
        if (costStamp > 16 * 60 * 1000 && !tuisongFlag) {
            tuisongFlag = true;
            Tools.ServerMessage.sendMessage("咪咕阅读时长已达标", "");
        };
    }
}, 500);

还有些其他的小功能,例如说有开始执行,暂停执行,中止执行的按钮那些,就不累赘了,自己看完整代码吧

完整代码

//const Tools = require("./comm/utils/Tools.js");
log("声明:");
log("1、版权归MoyAiTing所有,未经允许,请勿传播使用。");
log("2、此软件仅做技术分享演示使用,请勿用作其他用途。");
log("说明:");
log("1、获取文件权限可以拒绝,auto.js打包的,会自动获取");
log("2、需要获取无障碍和浮窗权限,软件会自动打开,同意即可,同意后,没有显示浮窗,重启软件即可");
log("3、重启可以解决大部分问题");
log("4、点击开始执行,在屏幕右下角部分,每隔10s到12s左右,随机点击屏幕区域");
auto();
//设置辅助显示内容
var window = floaty.window(
    <vertical>
      <text id="msy_begin" padding="10" margin="5" bg="#00B400" alpha="0.8" text="开始运行" textSize="16sp" textStyle="bold" textColor="#FFFFFF" />
      <text id="msy_suspend" padding="10" margin="5" bg="#00B400" alpha="0.8" text="暂停运行" textSize="16sp" textStyle="bold" textColor="#FFFFFF" />
      <text id="msy_over" padding="10" margin="5" bg="#00B400" alpha="0.8" text="终止运行" textSize="16sp" textStyle="bold" textColor="#FFFFFF" />
      <text id="msy_time" padding="10" margin="5" bg="#00B400" alpha="0.8" text="执行时长:0分0秒" textSize="16sp" textStyle="bold" textColor="#FFFFFF" />
  </vertical>
)

let flag = false;
let staStamp = (new Date()).getTime();
let costStamp = 0;
let tuisongFlag = false;
//拿一下屏幕宽度和高度,定位一下右下角区域
let clickX = device.width - 200;
let clickY = device.height - 200;
window.msy_begin.click(() => {
    toast('脚本开始执行啦');
    staStamp = (new Date()).getTime();
    flag = true;
})
window.msy_suspend.click(() => {
    toast('脚本暂停执行啦');
    flag = false;
})
window.msy_over.click(() => {
    toast('脚本终止执行啦');
    window.close();
    exit();
})

setInterval(() => {
    if (flag) {
        let endStamp = (new Date()).getTime();
        costStamp = endStamp - staStamp + costStamp;
        staStamp = endStamp;
        let costTime = parseInt(costStamp / 1000 / 60) + "分" + (parseInt(costStamp / 1000) % 60) + "秒";
        //对控件的操作需要在UI线程中执行
        ui.run(function() {
            window.msy_time.setText("执行时长:" + costTime);
        });
        if (costStamp > 16 * 60 * 1000 && !tuisongFlag) {
            tuisongFlag = true;
            //Tools.ServerMessage.sendMessage("咪咕阅读时长已达标", "");
        };
    }
}, 500);
setInterval(() => {
    if (flag) {
        //toast(device.getAndroidId());
        let random = Math.floor(Math.random() * 100);
        sleep(random*20);
        click(clickX - random, clickY - random);
        //sleep(500);
        //swipe(180, 1790, 900, 1790, 150);
    }
}, 10000);

后言

  1. 开发用的是auto.js可以自己下载,然后把源码导进去就可以了,或者直接下载这个apk,auto.js是支持导出apk的
    百度云盘:https://pan.baidu.com/s/10fq9vDYj6HIZyDgCW9kcjg
    提取码:k1ak
  2. 我还有一个支付宝自动偷能量的,那个比较复杂一点,而且涉及多个模块,然后auto.js的打包有点bug,竟然不支持多个js打包,所以打不成apk,这个后续有时间再写一篇吧,还有一个年会抢红包的
  3. auto,js还是挺好玩的,有点js基础的,都可以很快上手,建议玩一下

你可能感兴趣的:(javascript,auto.js)