一个学XXX挂机脚本思路

一、
最开始只是想做一个自动挂视频时长和挂文章时长的模块,毕竟这俩货一个耗时25分钟,一个耗时16分钟(活跃时段加倍情况下),早上6点开始是活跃时段,6点开始挂的话到我闹钟响大概就差不多挂好了。试过了用tasker直接做,但老婆也要学这货,她的机子没root,给她找个不用root也能用的自动化app,最后决定使用Autojs。然后第一步自然是解锁,这里就卡住了。小米和华为的手机如果用匀速的手势,居然是不能弹出输入密码界面的。大概是对人和机器人的识别?我觉得意义不大,不过程序员就是喜欢写这些没屌用意义不大但自己又觉得很牛逼的代码。还好最后找到了群里一个大佬的解锁脚本。

大体是一个加速滑动的脚本,tan还能这样用实在思路广阔,膜拜膜拜。解锁后就没什么障碍,启动APP,点击已经转发的视频或者文章,挂够时间就好,done。

二、
然后打击外挂的消息就出来了,于是加了点随机数做等待。这里就出现个问题,关屏状态下华为的随机数居然不动,延时3秒启动屏幕解锁,命好他给你延时15秒,命不好他就直接不动了。折腾了好久没办法,后台不杀进程,忽略电池优化都做过了,并没什么屌用。最后向黑恶势力屈服,先解锁,输入屏幕常亮代码,随机等待一段时间再启动APP完成挂机任务。期间emui8也是bug多多,没办法定时启动脚本,最后更新AUTOjs新版本,及用tasker定时启动解决。建议有tasker做定时的用tasker,autojs的定时器总是有问题。

三、
做完基本款,瞎鸡巴折腾的精神发作,同时觉得每天挂3个视频很烦,干脆交给autojs吧,于是打算加入自动挂视频个数模块,这他妈真是个恶梦。一开始是最简单的在短视频栏目下划5次,然后点击就成,难题是点击怎么计数呢,我要知道自己点击有没有到位,是不是有效点击。经过观察,每个视频必然是带有日期的,偶尔会有奇葩不带,不过很少数,不影响,于是使用了正则的方式查找,格式为\d+\-\d+\-\d+,最高可以匹配到9999-12-31,嗯,侧面证实我在祝愿我D健康长寿。然后,既然能抓到日期,我能不能特定抓取看距今天多少天前的视频,于是写了个识别时间和输出特别格式日期的函数。这下子就作死了,因为有些日子短视频栏目的视频居然是没更新的,脚本一下子卡住了。这里的想法是如果找到了比这天前一天的视频就复位,找后一天的视频,然后前一天的格式得重新输出,好像好麻烦,后来我再想要是前一天也没视频呢?于是我写了个把文字日期格式转回数值的函数,这样就可以方便比较日期大小,只要找到小于特定天数的视频,就自动把要找的日期减一天。嗯,这个想法实在太愚蠢,睡醒后我把这个傻逼想法改为向下滚动多少次自动减一天……但做好后还是有问题,毕竟如果特定日子没有视频,那今天读的视频很可能就是将来几天的视频,尤其是春节期间,几天都没有新视频更新,而视频个数必须没有重复。这是要折腾死人,我试过特定日期往下找,也试过特定日期往上找,结果都不尽如人意。最后我不得不使用了外部文件储存数据方式,把已读视频的标题保存下来,然后每天通过找到第一个已读视频往上读特定数量视频方式解决这个问题。这个脚本不够绿色了,惭愧。期间还解决了诸如视频卡住了咋办,视频放完了咋办,页面加载不出咋办诸如此类莫名其妙的问题。这其中特别神奇的是autojs查找控件的时候,在0,0,1080,1920屏幕范围里面找控件,居然会找出坐标为45,500,-230,520这样的控件,感觉是app本身bug,没有判断控件右侧有没有可能小于范围左侧。

四、
解决了自动阅读视频基本上就全解决了,基于自动读视频的思路写了自动阅读文章,文章和视频不同的是文章每天都更新不少,基本不会用尽,所以下划5次,计数读取就好……你看简洁的思路才是正解,年轻人别没事瞎鸡巴折腾。这期间搞了一次积分改版,文章视频时长减少了,每天只需要半小时就满,但取消了活跃时段,导致个数要分别读满6个,这样导致文章也不怎么够数了。再次引入随机数思路,点击进入订阅列表,通过随机数每天选择一个随机公众号,下划5次然后阅读计数,基本可以做到不重复。为了对抗外挂检测,每天视频时长也引入随机数,随机5种情况,对应5个不同连续剧,输入连续剧名字和随机数,随机看不同集数。针对行为检测,再引入随机数,通过日期时间组合的加减乘除再开方然后用3作为余数,随机每天3个不同时段启动。嗯这样应该可以了。这期间还写了自动转发、自动收藏、自动答题,都是些小的就不说了,自动答题因为官方对题库进行了大量更新,现在也没什么用了。据说线上的pandalearning支持网页版自动答题,还可以挂在vps运行,有兴趣可以关注下。一度还想写自动回复,后来想想还是算了,没啥思路。

五、
最后一个以b计数的脚本暴涨到了25kb,我的编程水平还是堪忧,有机会大概要补一补正规教程,靠看文档和别人的例子来写脚本始终有点不得要领。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据