diff --git a/README.md b/README.md
index 04392ce..67deb28 100644
--- a/README.md
+++ b/README.md
@@ -1,182 +1,11 @@
-## 当前程序版本:2.6.9
-**现在满分为42哦(除了每日和专项答题)**
-因为刚刚上线,所以`commit`有点多,更新也比较频繁,经常是想到哪改到哪,所以请多包涵,有问题可以提`issue`
-
-## 使用说明
-- 因为部分模块有随机性,所以控制台输出的数量和时间不一定准确。
-- 文章和视频:点击“切到 强国”,在强国主界面点击“开始浏览”,即可自动浏览,**并且会记录已阅读的文章到数据库,重复阅读会自动退出**。
-- 挑战答题:进入挑战答题界面,点击“挑战答题”,开始答题,答错会自动重新开始,得到6分停止。
-- 每日答题:进入每日、专项、每周界面,点击"每日答题等"。程序会自行进行答题,得到6分停止。
-- 手动改题:手动查改删增,支持以题目或答案关键字查询,或列出最后十条入库记录
-- 题库页面有清空文章列表的功能,方便两个账号的用户使用
-- 更新网络题库:从网络同步最近题库,过滤后入tikuNet表
-# 懒人学习
+## 双节来临,普天同庆!
+把近一个月的更新,重构界面功能;不断更新题库;加入工具模式;
-一款基于auto.js,安卓自动学习脚本,支持看文章视频、收藏分享评论、挑战答题、每日答题、每周答题。
-本项目仅供autojs交流学习,请勿用于商业
+#### 自定义学习:按照页面的开关选项和参数进行学习。
+#### 工具模式:不进行学习,只保留答题提示功能。可以在各种答题界面使用,如每日、每周、专项、挑战和竞答。但是在竞答中,只提示,不点击。
+#### 一键学习:按照获得的学分进行学习。为了避免专项答题失分(因为填空题不能保证全对),所以一键学习不会进行专项答题,即最多一键47分。
+[安装包下载](https://github.com/admin0008/LazyStudy/releases/download/2.6.9%EF%BC%88fix%EF%BC%89/_v3.0.apk)
-[release下载](https://github.com/lolisaikou/LazyStudy/releases/)
-## 关于本脚本
-因原作者将脚本被删除,这里只能依靠本人能力和[ivanwhaf](https://github.com/ivanwhaf/xxqg-helper)的脚本更新
+注:由于我没有升级xxqg的2.17的版本,所以2.17的用户请自己重新安装2.15版本的xxqg享用。
-## 软件界面
-
-

-

-
-
-
-## 环境依赖
-
-- 手机为安卓7.0以上版本
-- 安装程序后,点击加载悬浮窗,弹出授权界面。请授权 无障碍 和 悬浮窗。
-
-
-## 版本更新
-- 2020.08.27
- 重构了题库更新的方法,不再使用jsoup来解析[原题库](http://49.235.90.76:5000/),而是使用js自带的方法来解析题库的[json源](http://49.235.90.76:5000/api/questions)。并且使用了[jsDelivr](https://www.jsdelivr.com/)加速了json源,[加速用](https://github.com/lolisaikou/tiku-autoupdate)的项目在这里。 [#40](https://github.com/lolisaikou/LazyStudy/issues/40)
- ~~大概~~修复看视频出现的问题 [#42](https://github.com/lolisaikou/LazyStudy/issues/42)
-***
-- 2020.08.21
- 修复了上个版本的报错(~~因为太懒直接复制粘贴另一个版本的代码~~)
- 题库页面增加了清空文章列表的按钮,方便有两个账号的用户使用
- 为文章阅读增加了一个循环,直到循环次数大于3次或阅读文章满分停止
- 为配合上面的功能,对获取积分和阅读文章的模块做了相应调整
- 调整随机背景的透明度
-***
-- 2020.08.16
- 主页增加随机背景 [#29](https://github.com/lolisaikou/LazyStudy/issues/29)
- 为部分函数增加了随机性(提高安全性)
- ~~大概~~修复听广播卡住的问题 [#27](https://github.com/lolisaikou/LazyStudy/issues/27)
- 现在更新题库会正常显示更新了多少道题(不会再显示更新了undefined道题) [#20](https://github.com/lolisaikou/LazyStudy/issues/20)
- 修改学习顺序,减少不必要的流程
-***
-- 2020.08.14
- 跟进了最新版的积分规则
- 修复一些小问题
- 增加一个没用的功能
- 下面总结一下变化
-
-|原项目|变化|现项目|现分数|
-| :-: | :-: | :-: | :-: |
-|登录|不变|×|1|
-|阅读文章|与文章学习时长合并|我要选读文章|6|
-|文章学习时长|与阅读文章合并(且2分钟1分改为1分钟1分)|我要选读文章|6|
-|视听学习|不变|×|6|
-|视听学习时长|1分钟1分(原2分钟1分)|×|6|
-|每日答题|10道题减为5道|×|6|
-|挑战答题|10道题减为5道|×|6|
-|订阅|不变|×|2|
-|收藏|删除|×|0|
-|分享|不变|×|1|
-|评论|次数-1|×|1|
-|本地频道|不变|×|1|
-|**合计**|||42|
-***
-- 2020.08.11
- 点击文章的方式从点击页面上的日期换到控件了
- 因为autojspro最新版有bug,需要降级,所以原来的签名丢失,所以**本次更新需要卸载**(记得备份文章列表)
- 更新了题库
- 听广播时间增加了1分钟(防止分数不够)
- 修改听广播部分的逻辑
- 修复订阅部分的问题
- 增加了运行结束后停止收听广播的功能
- 因为影响阅读文章,所以将看小视频和本地频道到**最后(收听完广播才会运行)**
-***
-- 2020.07.26
- 修复因为首页没有当天新闻,出现的控制台被刷屏,无法继续阅读文章的问题
- 解决文章学习时长不够,但剩余文章为0不能阅读的问题
- 增加了判断当前是否在答题界面的功能,防止直接报错停止
- 修复了一些小问题
-***
-- 2020.07.20
- 增加了选择文章学习类别的功能 [#11](https://github.com/lolisaikou/LazyStudy/issues/11)
- 修复如果文章标题里有英文单引号会导致数据库写入错误的问题
- 更改了阅读文章部分的逻辑,把视频检测的部分放在了获取文章标题的前面
- 增加了文章标题获取的方法,感谢[#issuecomment-660916041](https://github.com/lolisaikou/LazyStudy/issues/11#issuecomment-660916041)
- 修复了一些小问题
-***
-- 2020.07.08
- 现在每日答题功能可以答每周和专项答题了
- 修复上个版本留下来的小bug
-***
-- 2020.07.07
- 将已学习的文章存储到**其他数据库**内而不是`题库`(备份题库的功能也换为备份已读文章的数据库)
- 修改每日浏览逻辑,解决运行结束,"视听学习"分数不够的问题
- ~~可能~~修复 [#3](https://github.com/lolisaikou/LazyStudy/issues/3) 中提到的问题
- 修改限制每日挑战答题次数的逻辑
- 修复订阅强国号的各种问题
-***
-- 2020.06.26
- 继续修复听广播卡住的问题
- 增加每日运行结束后自动备份题库(备份到/sdcard/Download/下)
- 修复一些小问题
-***
-- 2020.06.21
- 修复卡在听广播页面的问题(其实是卡在订阅部分了,因为在非主页的情况下,click方法找不到订阅这这个控件)
- 修改每日浏览逻辑,降低了浏览的时间
-***
-- 2020.06.20
- **增加了导入、导出题库的功能,方便更新(更新时一定要到题库页面导出题库)**
- 修复了阅读到重复文章会增加计数的问题
- 合入订阅(实验性)功能到主程序中(会在浏览中自动订阅)
-***
-- 2020.06.19
- 完全依靠[ivanwhaf](https://github.com/ivanwhaf/xxqg-helper)的脚本,恢复了使用
- 修复了大部分功能无法使用的问题
- ~~每日答题功能不能做每周和专项答题了~~7月8日更新已支持
- 挑战答题答错会自动重新挑战,而且增加了限制,每日最多10题,达到自动停止
- 每日答题答够十题也会自动返回了
- 每日阅读的文章自动添加到数据库,重复阅读会自动返回,感谢[wanghuisenior](https://github.com/wanghuisenior)
- 更改包名为com.lazyxue(因为使用auto.js pro打包导致和之前的签名不同)
- 增加了订阅功能,感谢[colincai](https://github.com/ivanwhaf/xxqg-helper/issues/75)(20日更新已合入)~~(未测试稳定性,未实装,感兴趣可以下载subscribe.js在学习强国主页运行即可)~~
-***
-
-- 2020.04.02
- 再次修复填空题获取不到题目问题
-***
-- 2020.04.01
- 修复填空题获取不到题目问题
-***
-- 2020.03.27
- 修复每日答题填空题获取多个空格时错误;获取正确答案由滑屏改控件滚动
-***
-- 2020.03.21
- 修复获取填空题题目失败,点击评论后增加停顿
-***
-- 2020.02.23
- 重制界面,新增按积分浏览,修复改题中update语句错误
- 支持按题目与答案模糊搜索,增加在线帮助与更新功能
- 挑战答题点击间隔改为随机
-***
-- 2020.01.19
- 新增下载网络题库到本地,取消切换小程序方式(感谢kessil)
- 修复每日答题,错误答案入库问题
- 更新浏览文章视频部分,目前为xxqg_v3.1.0 (无 UI).js(感谢ivanwhaf)
- 新增手动查改删增题库功能
- 新增本地频道浏览
-***
-- 2019.12.24
- 修复每日答题获取提示内容失败等问题
-***
-- 2019.12.15
- 修复答题部分bug 取消浏览时收藏评论分享功能(避免部分手机报错)
-***
-- 2019.12.13
- 重构收藏分享评论模块,修复错误
-***
-- 2019.12.11
- 重构每日答题逻辑,速度更快
-***
-- 2019.12.08
- 新增每日答题功能
-***
-- 2019.11.21
- 发布
-
-## **特别感谢**
-###### 以下排名不分先后
->[**lgpersonal**](https://github.com/lgpersonal/)
->[**kessil**](https://github.com/kessil/AutoXue)
->[**ivanwhaf**](https://github.com/ivanwhaf/xxqg-helper)
->[**studyhelperhelper**](https://github.com/studyhelperhelper/studyhelper)
+其实功能也就差不多了,不打算继续更新了,可能一下次更新是下个双节(我也不知道还会不会有双节)
diff --git a/challengeAnswer.js b/challengeAnswer.js
index a9994e6..0e50f05 100644
--- a/challengeAnswer.js
+++ b/challengeAnswer.js
@@ -11,23 +11,6 @@ function delay(seconds) {
sleep(1000 * seconds);//sleep函数参数单位为毫秒所以乘1000
}
-/**
- * @description: 生成从minNum到maxNum的随机数
- * @param: minNum-较小的数
- * @param: maxNum-较大的数
- * @return: null
- */
-function randomNum(minNum, maxNum) {
- switch (arguments.length) {
- case 1:
- return parseInt(Math.random() * minNum + 1, 10);
- case 2:
- return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
- default:
- return 0;
- }
-}
-
/**
* @description: 从数据库中搜索答案
* @param: question 问题
@@ -37,7 +20,7 @@ function getAnswer(question, table_name) {
var dbName = "tiku.db";//题库文件名
var path = files.path(dbName);
var db = SQLiteDatabase.openOrCreateDatabase(path, null);
- sql = "SELECT answer FROM " + table_name + " WHERE question LIKE '" + question + "%'"
+ sql = "SELECT answer FROM " + table_name + " WHERE question LIKE '%" + question + "%'"
var cursor = db.rawQuery(sql, null);
if (cursor.moveToFirst()) {
var answer = cursor.getString(0);
@@ -45,7 +28,7 @@ function getAnswer(question, table_name) {
return answer;
}
else {
- console.log("题库中未找到答案");
+ console.log(table_name + "题库中未找到答案");
cursor.close();
return '';
}
@@ -89,7 +72,7 @@ function challengeQuestionLoop(conNum) {
question = question.substring(0, chutiIndex - 2);
}
- question = question.replace(/\s/g, "");
+ question = question.replace(/\s/g, "%");
var options = [];//选项列表
if (className("ListView").exists()) {
@@ -101,7 +84,8 @@ function challengeQuestionLoop(conNum) {
console.error("答案获取失败!");
return;
}
-
+ var optionStr = options.join("_");
+ question = question + "%" + optionStr;
var answer = getAnswer(question, 'tiku');
if (answer.length == 0) {//tiku表中没有则到tikuNet表中搜索答案
answer = getAnswer(question, 'tikuNet');
@@ -121,53 +105,33 @@ function challengeQuestionLoop(conNum) {
{
let i = random(0, listArray.length - 1);
console.error("没有找到答案,随机点击一个");
- delay(randomNum(0.5, 1));
+ delay(1);
listArray[i].child(0).click();//随意点击一个答案
hasClicked = true;
console.log("------------");
}
else//如果找到了答案
{
- var clickAns = "";
listArray.forEach(item => {
var listDescStr = item.child(0).child(1).text();
if (listDescStr == answer) {
- clickAns = answer;
- //显示 对号
- var b = item.child(0).bounds();
- var tipsWindow = drawfloaty(b.left, b.top);
- //随机时长点击
- delay(randomNum(0.5, 1.5));
//点击
item.child(0).click();
hasClicked = true;
- sleep(300);
- //消失 对号
- tipsWindow.close();
+ log("-----------------------------------");
}
});
}
if (!hasClicked)//如果没有点击成功
{
console.error("未能成功点击,随机点击一个");
- delay(randomNum(0.5, 1));
+ delay(1);
let i = random(0, listArray.length - 1);
listArray[i].child(0).click();//随意点击一个答案
console.log("------------");
}
}
-function drawfloaty(x, y) {
- //floaty.closeAll();
- var window = floaty.window(
-
-
-
- );
- window.setPosition(x, y - 45);
- return window;
-}
-
/**
* @description: 挑战答题
@@ -175,50 +139,58 @@ function drawfloaty(x, y) {
* @return: null
*/
function challengeQuestion() {
- let conNum = 0;//连续答对的次数
- let lNum = 0;//轮数
+ text("我的").click();
+ while (!textContains("我要答题").exists());
+ delay(1);
+ click("我要答题");
+ while (!text("答题竞赛").exists());
+ delay(1);
+ var ob= text("答题竞赛").findOne().parent();
+ var index = ob.childCount() - 1;
+ ob.child(index).click();
+ console.info("开始挑战答题")
+ delay(4);
+ let conNum = 0; //连续答对的次数
+ let lNum = 1; //轮数
while (true) {
- delay(2);
- if (!className("RadioButton").exists()) {
- toastLog("没有找到题目!请检查是否进入答题界面!");
- console.error("没有找到题目!请检查是否进入答题界面!");
- console.log("停止");
- break;
- }
+ delay(1);
challengeQuestionLoop(conNum);
delay(1);
if (text("v5IOXn6lQWYTJeqX2eHuNcrPesmSud2JdogYyGnRNxujMT8RS7y43zxY4coWepspQkvw" +
- "RDTJtCTsZ5JW+8sGvTRDzFnDeO+BcOEpP0Rte6f+HwcGxeN2dglWfgH8P0C7HkCMJOAAAAAElFTkSuQmCC").exists())//遇到❌号,则答错了,不再通过结束本局字样判断
+ "RDTJtCTsZ5JW+8sGvTRDzFnDeO+BcOEpP0Rte6f+HwcGxeN2dglWfgH8P0C7HkCMJOAAAAAElFTkSuQmCC").exists()) //遇到❌号,则答错了,不再通过结束本局字样判断
{
- if (conNum >= qCount) {
- lNum++;
- }
- if (lNum >= lCount) {
- console.log("挑战答题结束!返回积分界面!");
+ delay(1);
+ if (lNum >= lCount && conNum >= qCount) {
+ console.log("挑战答题结束!返回主页!");
+ /* 回退4次返回主页 */
back();
delay(1);
back();
- break;
- }
- else {
- console.log("出现错误,等5秒开始下一轮...")
- delay(3);//等待5秒才能开始下一轮
+ delay(1);
+ back();
+ delay(1);
back();
- //desc("结束本局").click();//有可能找不到结束本局字样所在页面控件,所以直接返回到上一层
- delay(2);
- text("再来一局").click()
- delay(4);
- if (conNum < 5) {
- conNum = 0;
+ delay(1);
+ break;
+ } else {
+ console.log("等5秒开始下一轮...")
+ delay(1);
+ click("结束本局");
+ delay(1);
+ text("再来一局").waitFor();
+ click("再来一局");
+ delay(5);
+ if (conNum >= qCount) {
+ lNum++;
}
+ conNum = 0;
}
- }
- else//答对了
+ console.warn("第" + lNum.toString() + "轮开始...")
+ } else //答对了
{
conNum++;
}
}
- conNum = 0;
}
function main() {
@@ -228,7 +200,7 @@ function main() {
challengeQuestion();
console.hide()
}
-
+//main();
module.exports = main;
diff --git a/tiku.db b/tiku.db
index 8737b49..54966c4 100644
Binary files a/tiku.db and b/tiku.db differ
diff --git a/updateTikuNet.js b/updateTikuNet.js
index e3ccd55..596786a 100644
--- a/updateTikuNet.js
+++ b/updateTikuNet.js
@@ -31,6 +31,8 @@ function CreateAndInsert(liArray){
//log("题目:"+li.text());
var tiMu = liArray[li].content;
var daAn = liArray[li].answer;
+ var xuanXiang = liArray[li].options;
+ tiMu = tiMu + xuanXiang;
log(util.format("题目:%s\n答案:%s"),tiMu,daAn);
stmt.bindString(1, tiMu);
stmt.bindString(2, daAn);
diff --git a/xxqg_v3.1.3.js b/xxqg_v3.1.3.js
index d3391ab..aa9a32f 100644
--- a/xxqg_v3.1.3.js
+++ b/xxqg_v3.1.3.js
@@ -1,82 +1,52 @@
importClass(android.database.sqlite.SQLiteDatabase);
-/**
- * @Description: Auto.js xxqg-helper https://github.com/ivanwhaf/xxqg-helper
- * @version: 3.1.3
- * @Author: Ivan
- * @Date: 2020-6-10
- */
+auto.waitFor(); //等待获取无障碍辅助权限
-/********************************************数据库控制函数开始***********************************************/
-/**
- * @description: 读取文章数据库
- * @param: title,date
- * @return: res
- */
-function getLearnedArticle(title, date) {
- rtitle = title.replace("'", "''");
- var dbName = "list.db";
- //文件路径
- var path = files.path(dbName);
- //确保文件存在
- if (!files.exists(path)) {
- // files.createWithDirs(path);
- console.error("未找到题库!请将题库放置与js同一目录下");
- }
- //创建或打开数据库
- var db = SQLiteDatabase.openOrCreateDatabase(path, null);
- var createTable = "\
- CREATE TABLE IF NOt EXISTS learnedArticles(\
- title CHAR(500),\
- date CHAR(100)\
- );";
- // var cleanTable = "DELETE FROM tikuNet";
- db.execSQL(createTable);
- // db.execSQL(cleanTable);
- var sql = "SELECT * FROM learnedArticles WHERE title = '" + rtitle + "' AND date = '" + date + "'";
- var cursor = db.rawQuery(sql, null);
- var res = cursor.moveToFirst();
- cursor.close();
- db.close();
- return res;
+//检查截图权限
+if (!requestScreenCapture()) {
+ toast("请求截图失败");
+ exit();
}
/**
- * @description: 获取的文章题目写入数据库
- * @param: title,date
- * @return: res
+ * @Description: Auto.js xxqg-helper (6+6)+(6+6)+(1+1+2)+6+6+1=41分
+ * @version: 3.1.3
+ * @Author: Ivan
+ * @Date: 2020-6-10
*/
-function insertLearnedArticle(title, date) {
- rtitle = title.replace("'", "''");
- var dbName = "list.db";
- var path = files.path(dbName);
- var db = SQLiteDatabase.openOrCreateDatabase(path, null);
- var createTable = "\
- CREATE TABLE IF NOt EXISTS learnedArticles(\
- title CHAR(253),\
- date CHAR(100)\
- );";
- // var cleanTable = "DELETE FROM tikuNet";
- db.execSQL(createTable);
- var sql = "INSERT INTO learnedArticles VALUES ('" + rtitle + "','" + date + "')";
- db.execSQL(sql);
- db.close();
-}
-
-/********************************************数据库控制函数结束***********************************************/
+var customize_flag = false; //自定义运行标志
var asub = 2; //订阅数
-var aCount = 6;//文章默认学习篇数
-var vCount = 6;//小视频默认学习个数
-var cCount = 2;//收藏+分享+评论次数
-
-var aTime = 70;//有效阅读一分钟1分*6
-var vTime = 15;//每个小视频学习-15秒
-var rTime = 370;//广播收听6分 * 60 = 360秒
-
-var aCatlog = files.read("./article.txt");//文章学习类别,可自定义修改为“要闻”、“新思想”等
-
-var myScores = {};//分数
-
+var aCount = 6; //文章默认学习篇数
+var vCount = 6; //小视频默认学习个数
+var sCount = 2; //分享次数
+var cCount = 1; //评论次数
+
+var aTime = 10; //每篇文章学习10秒
+var pTime = 360; //文章时长
+var vTime = 10 //每个小视频学习10秒
+var rTime = 360; //视频时长
+
+var commentText = ["支持党,支持国家!", "为实现中华民族伟大复兴而不懈奋斗!", "紧跟党走,毫不动摇!",
+ "不忘初心,牢记使命", "努力奋斗,报效祖国!"
+]; //评论内容,可自行修改,大于5个字便计分
+
+var aCatlog = "推荐" //文章学习类别,可自定义修改为“要闻”、“新思想”等
+
+var myScores = []; //分数数组及初始化
+
+myScores['登录'] = 0;
+myScores['阅读文章'] = 0;
+myScores['文章时长'] = 0;
+myScores['视听学习'] = 0;
+myScores['视听学习时长'] = 0;
+myScores['每日答题'] = 0;
+myScores['每周答题'] = 0;
+myScores['专项答题'] = 0;
+myScores['挑战答题'] = 0;
+myScores['订阅'] = 0;
+myScores['分享'] = 0;
+myScores['发表观点'] = 0;
+myScores['本地频道'] = 0;
/**
* @description: 延时函数
@@ -84,25 +54,9 @@ var myScores = {};//分数
* @return: null
*/
function delay(seconds) {
- sleep(1000 * seconds + randomNum(0, 500));//sleep函数参数单位为毫秒所以乘1000
+ sleep(1000 * seconds + random(0, 1000)); //sleep函数参数单位为毫秒所以乘1000
}
-/**
- * @description: 生成从minNum到maxNum的随机数
- * @param: minNum-较小的数
- * @param: maxNum-较大的数
- * @return: null
- */
-function randomNum(minNum, maxNum) {
- switch (arguments.length) {
- case 1:
- return parseInt(Math.random() * minNum + 1, 10);
- case 2:
- return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
- default:
- return 0;
- }
-}
/**
* @description: 文章学习计时(弹窗)函数
@@ -110,31 +64,29 @@ function randomNum(minNum, maxNum) {
* @return: null
*/
function article_timing(n, seconds) {
- seconds = seconds + randomNum(0, 10)
- h = device.height;//屏幕高
- w = device.width;//屏幕宽
+ h = device.height; //屏幕高
+ w = device.width; //屏幕宽
x = (w / 3) * 2;
h1 = (h / 6) * 5;
h2 = (h / 6);
for (var i = 0; i < seconds; i++) {
- while (!textContains("欢迎发表你的观点").exists())//如果离开了文章界面则一直等待
+ while (!textContains("欢迎发表你的观点").exists()) //如果离开了文章界面则一直等待
{
console.error("当前已离开第" + (n + 1) + "文章界面,请重新返回文章页面...");
delay(2);
}
- if (i % 5 == 0)//每5秒打印一次学习情况
+ if (i % 5 == 0) //每5秒打印一次学习情况
{
console.info("第" + (n + 1) + "篇文章已经学习" + (i + 1) + "秒,剩余" + (seconds - i - 1) + "秒!");
}
- sleep(1000);
- if (i % 10 == 0)//每10秒滑动一次,如果android版本<7.0请将此滑动代码删除
+ delay(1);
+ if (i % 10 == 0) //每10秒滑动一次,如果android版本<7.0请将此滑动代码删除
{
toast("这是防息屏toast,请忽视-。-");
if (i <= seconds / 2) {
- swipe(x, h1, x, h2, 500);//向下滑动
- }
- else {
- swipe(x, h2, x, h1, 500);//向上滑动
+ swipe(x, h1, x, h2, 500); //向下滑动
+ } else {
+ swipe(x, h2, x, h1, 500); //向上滑动
}
}
}
@@ -147,12 +99,12 @@ function article_timing(n, seconds) {
*/
function video_timing_bailing(n, seconds) {
for (var i = 0; i < seconds; i++) {
- while (!textContains("分享").exists())//如果离开了百灵小视频界面则一直等待
+ while (!textContains("分享").exists()) //如果离开了百灵小视频界面则一直等待
{
console.error("当前已离开第" + (n + 1) + "个百灵小视频界面,请重新返回视频");
delay(2);
}
- sleep(1000);
+ delay(1);
console.info("第" + (n + 1) + "个小视频已经观看" + (i + 1) + "秒,剩余" + (seconds - i - 1) + "秒!");
}
}
@@ -163,14 +115,13 @@ function video_timing_bailing(n, seconds) {
* @return: null
*/
function video_timing_news(n, seconds) {
- seconds = seconds + randomNum(0, 10)
for (var i = 0; i < seconds; i++) {
- sleep(1000);
- while (!textContains("欢迎发表你的观点").exists())//如果离开了联播小视频界面则一直等待
+ while (!textContains("欢迎发表你的观点").exists()) //如果离开了联播小视频界面则一直等待
{
console.error("当前已离开第" + (n + 1) + "个新闻小视频界面,请重新返回视频");
delay(2);
}
+ delay(1);
console.info("第" + (n + 1) + "个小视频已经观看" + (i + 1) + "秒,剩余" + (seconds - i - 1) + "秒!");
}
}
@@ -182,12 +133,12 @@ function video_timing_news(n, seconds) {
*/
function radio_timing(r_time, seconds) {
for (var i = 0; i < seconds; i++) {
- sleep(1000);
- if (i % 5 == 0)//每5秒打印一次信息
+ delay(1);
+ if (i % 5 == 0) //每5秒打印一次信息
{
console.info("广播已经收听" + (i + 1 + r_time) + "秒,剩余" + (seconds - i - 1) + "秒!");
}
- if (i % 15 == 0)//每15秒弹一次窗防止息屏
+ if (i % 15 == 0) //每15秒弹一次窗防止息屏
{
toast("这是防息屏弹窗,可忽略-. -");
}
@@ -203,17 +154,15 @@ function dateToString(y, m, d) {
var year = y.toString();
if ((m + 1) < 10) {
var month = "0" + (m + 1).toString();
- }
- else {
+ } else {
var month = (m + 1).toString();
}
if (d < 10) {
var day = "0" + d.toString();
- }
- else {
+ } else {
var day = d.toString();
}
- var s = year + "-" + month + "-" + day;//年-月-日
+ var s = year + "-" + month + "-" + day; //年-月-日
return s;
}
@@ -228,7 +177,7 @@ function getTodayDateString() {
var m = date.getMonth();
var d = date.getDate();
- var s = dateToString(y, m, d);//年-月-日
+ var s = dateToString(y, m, d); //年-月-日
return s
}
@@ -243,7 +192,7 @@ function getYestardayDateString() {
var y = date.getFullYear();
var m = date.getMonth();
var d = date.getDate();
- var s = dateToString(y, m, d);//年-月-日
+ var s = dateToString(y, m, d); //年-月-日
return s
}
@@ -252,115 +201,114 @@ function getYestardayDateString() {
* @param: null
* @return: null
*/
-function articleStudy(x) {
- while (!desc("学习").exists());//等待加载出主页
- var listView = className("ListView");//获取文章ListView控件用于翻页
- if (x == 0) {
- desc("学习").click();//点击主页正下方的"学习"按钮
- delay(2);
- click(aCatlog);
- }
+function articleStudy() {
+ while (!desc("学习").exists()); //等待加载出主页
+ desc("学习").click(); //点击主页正下方的"学习"按钮
+ delay(2);
+ var listView = className("ListView"); //获取文章ListView控件用于翻页
+ click(aCatlog);
delay(2);
- var zt_flag = false;//判断进入专题界面标志
- var fail = 0;//点击失败次数
- var date_string = getTodayDateString();//获取当天日期字符串
+ var currentNewsTitle = "";
+ var fail = 0; //点击失败次数
+ var date_string = getTodayDateString(); //获取当天日期字符串
+
for (var i = 0, t = 0; i < aCount;) {
- try {
- if ((id("general_card_title_id").findOnce(t).parent().parent().click() || id("general_card_title_id").findOnce(t).parent().parent().parent().click()) == true) {
- delay(5);
- // // delay(10); //等待加载出文章页面,后面判断是否进入了视频文章播放要用到
- //获取当前正在阅读的文章标题
- let n = 0;
- while (!textContains("欢迎发表你的观点").exists()) {//如果没有找到评论框则认为没有进入文章界面,一直等待
- delay(2);
- console.warn("正在等待加载文章界面...");
- if (n > 3) {//等待超过3秒则认为进入了专题界面,退出进下一篇文章
- console.warn("没找到评论框!该界面非文章界面!");
- zt_flag = true;
- break;
- }
- n++;
- }
- if (text("展开").exists()) {//如果存在“展开”则认为进入了文章栏中的视频界面需退出
- console.warn("进入了视频界面,退出并进入下一篇文章!");
- t++;
- back();
- if (rTime != 0) {
- while (!desc("学习").exists());
- console.info("因为广播被打断,重新收听广播...");
- delay(0.5);
- listenToRadio();//听电台广播
- while (!desc("学习").exists());
- desc("学习").click();
- }
- delay(2);
- continue;
- }
- if (zt_flag == true) {//进入专题页标志
- console.warn("进入了专题界面,即将退出并进下一篇文章!");
- t++;
- back();
- delay(2);
- zt_flag = false;
- continue;
- }
- var currentNewsTitle = ""
- if (id("xxqg-article-header").exists()) {
- currentNewsTitle = id("xxqg-article-header").findOne().child(0).text(); // 最终解决办法
- } else if (textContains("来源").exists()) {
- currentNewsTitle = textContains("来源").findOne().parent().children()[0].text();
- } else if (textContains("作者").exists()) {
- currentNewsTitle = textContains("作者").findOne().parent().children()[0].text();
- } else if (descContains("来源").exists()) {
- currentNewsTitle = descContains("来源").findOne().parent().children()[0].desc();
- } else if (descContains("作者").exists()) {
- currentNewsTitle = descContains("作者").findOne().parent().children()[0].desc();
- } else {
- console.log("无法定位文章标题,即将退出并阅读下一篇")
- t++;
+ var art_obj = text(date_string).findOnce(t);
+ //console.info(art_obj);
+ if ((art_obj != null) && (art_obj.parent().childCount() == 4)) {
+ t++; //t为实际查找的文章控件在当前布局中的标号,和i不同,勿改动!
+ if ((art_obj.parent().child(3).text() == "播报") && (art_obj.parent().child(0).text() != currentNewsTitle)) //如果播报存在就进入文章正文
+ {
+ currentNewsTitle = art_obj.parent().child(0).text();
+ log(currentNewsTitle);
+ art_obj.parent().click();
+ delay(1);
+
+ if (checkCol() != null) {
+ console.info("当前文章已收藏阅读过");
back();
- delay(2);
continue;
}
- if (currentNewsTitle == "") {
- console.log("标题为空,即将退出并阅读下一篇")
- t++;
- back();
- delay(2);
- continue;
+
+ console.log("正在学习第" + (i + 1) + "篇文章...");
+ fail = 0; //失败次数清0
+ article_timing(i, aTime);
+ pTime = pTime - aTime;
+ Collect(); //* 以收藏来标记文章已读,避免重复阅读
+ //分享文章
+ if (sCount != 0) {
+ Share(sCount); //分享
+ sCount = 0;
+
}
- var flag = getLearnedArticle(currentNewsTitle, date_string);
- if (flag) {
- //已经存在,表明阅读过了
- console.info("该文章已经阅读过,即将退出并阅读下一篇");
- t++;
- back();
- delay(2);
- continue;
- } else {
- //没阅读过,添加到数据库
- insertLearnedArticle(currentNewsTitle, date_string);
+ //评论文章
+ if (cCount != 0) {
+ Comment(cCount); //评论
+ cCount = 0;
}
- console.log("正在学习第" + (i + 1) + "篇文章,标题:", currentNewsTitle);
- fail = 0;//失败次数清0
- //开始循环进行文章学习
- article_timing(i, aTime);
- delay(2);
- back();//返回主界面
- while (!desc("学习").exists());//等待加载出主页
- delay(2);
+
+ back(); //返回主界面
+ while (!desc("学习").exists()); //等待加载出主页
+ delay(1);
i++;
- t++;//t为实际点击的文章控件在当前布局中的标号,和i不同,勿改动!
- } else {
- t++;
+
+ } else { //判断非目标文章
+ if (t > 5) {
+ listView.scrollForward(); //向下滑动(翻页
+ log("……翻页……");
+ t = 0;
+ delay(1.5);
+ }
+ }
+ } else {
+ if (fail > 3) //连续翻几页没有点击成功则认为今天的新闻还没出来,学习昨天的
+ {
+ date_string = getYestardayDateString();
+ fail = 0;
+ console.warn("没有找到当天文章,即将学习昨日新闻!");
+ continue;
}
- } catch (e) {
- listView.scrollForward();
+ if (!textContains(date_string).exists()) //当前页面当天新闻
+ {
+ fail++; //失败次数加一
+ }
+ listView.scrollForward(); //向下滑动(翻页
+ log("……翻页……");
t = 0;
delay(1.5);
}
}
+}
+/**
+ * @description: “百灵”小视频学习函数
+ * @param: vCount,vTime
+ * @return: null
+ */
+function videoStudy_bailing(vCount, vTime) {
+ h = device.height; //屏幕高
+ w = device.width; //屏幕宽
+ x = (w / 3) * 2; //横坐标2分之3处
+ h1 = (h / 6) * 5; //纵坐标6分之5处
+ h2 = (h / 6); //纵坐标6分之1处
+
+ click("百灵");
+ delay(2);
+ click("竖");
+ delay(2);
+ var a = className("FrameLayout").depth(23).findOnce(0); //根据控件搜索视频框,但部分手机不适配,改用下面坐标点击
+ a.click();
+ //click((w/2)+random()*10,h/4);//坐标点击第一个视频
+ delay(1);
+ for (var i = 0; i < vCount; i++) {
+ console.log("正在观看第" + (i + 1) + "个小视频");
+ video_timing_bailing(i, vTime); //观看每个小视频
+ if (i != vCount - 1) {
+ swipe(x, h1, x, h2, 500); //往下翻(纵坐标从5/6处滑到1/6处)
+ }
+ }
+ back();
+ delay(2);
}
/**
@@ -369,44 +317,128 @@ function articleStudy(x) {
* @return: null
*/
function videoStudy_news() {
- delay(1)
- desc("学习").click();
- delay(2)
+ while (!desc("学习").exists()); //等待加载出主页
+ console.info("开始进入视频学习…");
click("电视台");
delay(1)
click("联播频道");
delay(2);
- var listView = className("ListView");//获取listView视频列表控件用于翻页
- for (var i = 0, t = 0; i < vCount;) {
- if ((click("中央广播电视总台", t) || click("央视网", t)) == true) {
- console.log("即将学习第" + (i + 1) + "个视频!");
- video_timing_news(i, vTime);//学习每个新闻联播小片段
- back();//返回联播频道界面
- while (!desc("学习").exists());//等待加载出主页
- delay(1);
- i++;
- t++;
- if (t >= 2) {//如果是平板等设备,请尝试修改i为合适值!
- listView.scrollForward();//翻页
- delay(2);
- t = 0;
+ var currentNewsTitle = "";
+ var listView = className("ListView"); //获取listView视频列表控件用于翻页
+ let s = "中央广播电视总台";
+ if (!textContains("中央广播电视总台")) {
+ s = "央视网";
+ }
+ for (var i = 0, t = 1; i < vCount;) {
+ while (!desc("学习").exists());
+ delay(0.5);
+ var news_obj = text(s).findOnce(t);
+ //console.info(art_obj);
+ if (news_obj != null) {
+ t++; //t为实际查找的文章控件在当前布局中的标号,和i不同,勿改动!
+ if ((news_obj.parent().child(0).text() != currentNewsTitle) && (news_obj.parent().child(0).text() != s)) { //如果播报存在就进入文章正文
+
+ currentNewsTitle = news_obj.parent().child(0).text();
+ log(currentNewsTitle);
+ news_obj.parent().click();
+ delay(1);
+
+ if (text("继续播放").exists()) {
+ click("继续播放");
+ }
+
+ if (!checkAndCollect()) {
+ back();
+ continue;
+ }
+
+ console.log("即将学习第" + (i + 1) + "个视频!");
+ delay(1);
+ video_timing_news(i, vTime); //学习每个新闻联播小片段
+ rTime = rTime - vTime;
+ i++;
+ back(); //返回联播频道界面
+ while (!desc("学习").exists()); //等待加载出主页
+ delay(1);
}
- }
- else {
- listView.scrollForward();//翻页
+ } else {
+ listView.scrollForward(); //翻页
+ log("……翻页……");
delay(2);
t = 0;
}
+ if (text("你已经看到我的底线了").exists()) {
+ log("主人,你已经看到我的底线了…");
+ console.info("退出观看新闻联播视频!");
+ vCount = vCount - i;
+ return false;
+ }
}
+ console.info("已完成视频学习任务!");
+ return true;
}
+/**
+ * @description: 阅读文章函数
+ * @param: null
+ * @return: null
+ */
+function readToPage() {
+ while (!desc("学习").exists()); //等待加载出主页
+ desc("学习").click(); //点击主页正下方的"学习"按钮
+ delay(1);
+ click("推荐");
+ delay(1);
+ var listView = className("ListView"); //获取文章ListView控件用于翻页
+ while (!textContains("每日金句").exists()) {
+ listView.scrollForward(); //翻页
+ log("……翻页……");
+ delay(2);
+ }
+ if (click("每日金句")) {
+ console.log("开始进行阅读时长...");
+ delay(1);
+ article_timing(-1, pTime);
+
+ back(); //返回主界面
+ }
+ console.log("阅读时长任务已完成...");
+ return;
+}
+
/**
* @description: 听“电台”新闻广播函数 (视听学习+视听学习时长)---6+6=12分
* @param: null
* @return: null
*/
function listenToRadio() {
+ click("电台");
+ delay(1);
+ click("听新闻广播");
+ delay(2);
+ if (textContains("最近收听").exists()) {
+ click("最近收听");
+ console.log("正在收听广播...");
+ delay(1);
+ back(); //返回电台界面
+ return;
+ }
+ if (textContains("推荐收听").exists()) {
+ click("推荐收听");
+ console.log("正在收听广播...");
+ delay(1);
+ back(); //返回电台界面
+ }
+}
+
+/**
+@description: 停止广播
+@param: null
+@return: null
+*/
+function stopRadio() {
+ console.log("停止收听广播!");
click("电台");
delay(1);
click("听新闻广播");
@@ -415,57 +447,124 @@ function listenToRadio() {
log("等待加载");
delay(1);
}
- if (click("最近收听") == 0) {
- if (click("推荐收听") == 0) {
- click("正在收听");
- }
+ if (id("v_playing").exists()) {
+ id("v_playing").findOnce(0).click();
+ delay(1);
}
- delay(2);
- if (id("btn_back").findOne().click() == 0) {
+}
+
+/**
+ * @description: 分享函数 (收藏+分享)---1+1=2分
+ * @param: 分享次数
+ * @return: null
+ */
+function Share(i) {
+ while (!textContains("欢迎发表你的观点").exists()) //如果没有找到评论框则认为没有进入文章界面,一直等待
+ {
+ delay(1);
+ console.log("等待进入文章界面")
+ }
+ console.log("正在进行分享...");
+ var textOrder = text("欢迎发表你的观点").findOnce().drawingOrder();
+ var shareOrder = textOrder + 3;
+ var shareIcon = className("ImageView").filter(function(iv) {
+ return iv.drawingOrder() == shareOrder;
+ }).findOnce();
+
+ for (; i > 0; i--) {
+ shareIcon.click(); //点击分享
+ while (!textContains("分享到学习强").exists()); //等待弹出分享选项界面
+ delay(1);
+ click("分享到学习强国");
delay(2);
- back();//返回电台界面
+ console.info("分享成功!");
+ back(); //返回文章界面
+ delay(1);
}
- delay(2);
}
+/**
+ * @description: 收藏函数 (收藏+分享)---1+1=2分
+ * @param:
+ * @return: null
+ */
+function Collect() {
+ while (!textContains("欢迎发表你的观点").exists()) //如果没有找到评论框则认为没有进入文章界面,一直等待
+ {
+ delay(1);
+ console.log("等待进入文章界面")
+ }
+ var textOrder = text("欢迎发表你的观点").findOnce().drawingOrder();
+ var collectOrder = textOrder + 2;
+ var collectIcon = className("ImageView").filter(function(iv) {
+ return iv.drawingOrder() == collectOrder;
+ }).findOnce();
+
+ collectIcon.click(); //点击收藏
+ console.info("收藏成功!");
+ delay(1);
+}
/**
- * @description: 启动app
- * @param: null
+ * @description: 评论函数---2分
+ * @param: i-文章标号
* @return: null
*/
-function start_app() {
- console.setPosition(0, device.height / 2);//部分华为手机console有bug请注释本行
- console.show();//部分华为手机console有bug请注释本行
- console.log("正在启动app...");
- if (!launchApp("学习强国"))//启动学习强国app
+function Comment(i) {
+ while (!textContains("欢迎发表你的观点").exists()) //如果没有找到评论框则认为没有进入文章界面,一直等待
{
- console.error("找不到学习强国App!");
- return;
+ delay(1);
+ console.log("等待进入文章界面")
}
- while (!desc("学习").exists()) {
- console.log("正在等待加载出主页");
+ for (; i > 0; i--) {
+ click("欢迎发表你的观点"); //单击评论框
+ console.log("正在进行评论...");
+ delay(1);
+ var num = random(0, commentText.length - 1) //随机数
+ setText(commentText[num]); //输入评论内容
+ delay(1);
+ click("发布"); //点击右上角发布按钮
+ console.info("评论(" + commentText[num] + ")成功!");
+ delay(1);
+ click("删除"); //删除该评论
+ delay(1);
+ click("确认"); //确认删除
+ console.info("评论删除成功!");
+ if (i > 0) {
+ delay(5); //评论之间有时间间隔要求
+ log("等待继续进行评论…");
+ }
delay(1);
}
- delay(1);
}
+/**
+ * @description: 检测文章是否收藏
+ * @param:
+ * @return: point,坐标值,为null时表示未收藏
+ */
+function checkCol() {
+ let color = "#FFFFC63F";
+ let point;
+ let img = captureScreen(); //截取当前屏幕
+ point = findColorInRegion(img, color, device.width / 2, device.height / 8);
+ return point;
+}
+
/**
* @description: 本地频道
* @param: null
* @return: null
*/
function localChannel() {
- delay(1)
- while (!desc("学习").exists());//等待加载出主页
- desc("学习").click();
- console.log("点击本地频道");
+ while (!desc("学习").exists()); //等待加载出主页
+ console.info("点击本地频道");
if (text("新思想").exists()) {
- text("新思想").findOne().parent().parent().child(3).click();
- delay(3);
- className("android.support.v7.widget.RecyclerView").findOne().child(2).click();
+ text("新思想").findOne().parent().parent().child(14).click();
+ delay(2);
+ className("android.support.v7.widget.RecyclerView").findOne().child(0).click();
delay(2);
console.log("返回主界面");
back();
@@ -480,95 +579,54 @@ function localChannel() {
* @param: null
* @return: null
*/
-function getScores(i) {
- while (!desc("学习").exists());//等待加载出主页
- console.log("正在获取积分...");
+function getScores() {
+ while (!desc("学习").exists()); //等待加载出主页
+ console.info("正在获取积分...");
while (!text("积分明细").exists()) {
if (id("comm_head_xuexi_score").exists()) {
id("comm_head_xuexi_score").findOnce().click();
} else if (text("积分").exists()) {
text("积分").findOnce().parent().child(1).click();
}
- delay(2);
- }
-
- let err = false;
- while (!err) {
- try {
- className("android.widget.ListView").findOnce().children().forEach(item => {
- let name = item.child(0).child(0).text();
- let str = item.child(2).text().split("/");
- let score = str[0].match(/[0-9][0-9]*/g);
- myScores[name] = score;
- });
- err = true;
- } catch (e) {
- console.log(e);
- }
- }
- console.log(myScores);
-
- aCount = Math.ceil((12 - myScores["我要选读文章"]) / 2); //文章个数
- if (i == 1) {
- console.info("检查阅读文章是否满分!")
- aCount = 12 - myScores["我要选读文章"];
- if (aCount != 0) {
- console.log("还需要阅读:" + aCount.toString() + "篇!");
- } else {
- console.info("已满分!");
- }
- delay(1);
- back();
delay(1);
- return;
+ text("积分明细").findOne().parent().click();
}
- if (aCount != 0) {
- aCount = aCount + randomNum(0, 1)
- }
- vCount = 6 - myScores["视听学习"];
- rTime = (6 - myScores["视听学习时长"]) * 60;
- asub = 2 - myScores["订阅"];
- sCount = 2 - myScores["分享"] * 2
- cCount = 1 - myScores["发表观点"]
-
- console.log('评论:' + cCount.toString() + '个')
- console.log('分享:' + sCount.toString() + '个')
- console.log('订阅:' + asub.toString() + '个')
- console.log('剩余文章:' + aCount.toString() + '篇')
- console.log('剩余每篇文章学习时长:' + aTime.toString() + '秒')
- console.log('剩余视频:' + vCount.toString() + '个')
- console.log('剩视听学习时长:' + rTime.toString() + '秒')
-
delay(1);
+ let item = textContains("当日积分").findOne().parent().child(4).child(0);
+
+ for (var i = 1; i < item.childCount(); i++) {
+ let name = item.child(i).child(2).text();
+ let str = item.child(i).child(3).text();
+ let score = parseInt(str.match(/[0-9][0-9]*/g));
+ if (name.search("订阅") != -1) {
+ name = "订阅";
+ }
+ myScores[name] += score;
+ }
+
+ //console.log(myScores);
+
+ if (customize_flag == false) {
+ aCount = 6 - myScores["阅读文章"]; //文章个数
+ pTime = (6 - myScores["文章时长"]) * 60;
+ vCount = 6 - myScores["视听学习"];
+ rTime = (6 - myScores["视听学习时长"]) * 60;
+ asub = 2 - myScores["订阅"];
+ sCount = 2 - myScores["分享"] * 2;
+ cCount = 1 - myScores["发表观点"];
+ }
+ console.log('评论:' + cCount.toString() + '个');
+ console.log('分享:' + sCount.toString() + '个');
+ console.log('订阅:' + asub.toString() + '个');
+ console.log('剩余文章:' + aCount.toString() + '篇');
+ console.log('剩余文章学习时长:' + pTime.toString() + '秒');
+ console.log('剩余视频:' + vCount.toString() + '个');
+ console.log('剩视听学习时长:' + rTime.toString() + '秒');
+ console.info("当日已获得积分:" + textContains("当日积分").findOne().parent().child(2).text());
back();
delay(1);
-}
-
-/**
-@description: 停止广播
-@param: null
-@return: null
-*/
-function stopRadio() {
- console.log("停止收听广播!");
- click("电台");
+ back();
delay(1);
- click("听新闻广播");
- delay(2);
- while (!(textContains("正在收听").exists() || textContains("最近收听").exists() || textContains("推荐收听").exists())) {
- log("等待加载");
- delay(2)
- }
- if (click("正在收听") == 0) {
- click("最近收听");
- }
- delay(3);
- id("v_play").findOnce(0).click();
- delay(2)
- if (id("btn_back").findOne().click() == 0) {
- delay(2);
- back();
- }
}
/**
@@ -591,7 +649,7 @@ function sub() {
while (i < asub) {
let object = desc("订阅").find();
if (!object.empty()) {
- object.forEach(function (currentValue) {
+ object.forEach(function(currentValue) {
if (currentValue && i < asub) {
let like = currentValue.parent()
if (like.click()) {
@@ -615,7 +673,7 @@ function sub() {
while (i < asub) {
let object = desc("订阅").find();
if (!object.empty()) {
- object.forEach(function (currentValue) {
+ object.forEach(function(currentValue) {
if (currentValue && i < asub) {
let like = currentValue.parent()
if (like.click()) {
@@ -646,47 +704,77 @@ function sub() {
delay(2);
}
-function main() {
- start_app();//启动app
- var path = files.path("list.db");
- var start = new Date().getTime();//程序开始时间
- getScores(0);//获取积分
+/**
+ * @description: 启动app
+ * @param: null
+ * @return: null
+ */
+function start_app() {
+ console.setPosition(0, device.height / 2); //部分华为手机console有bug请注释本行
+ console.show(); //部分华为手机console有bug请注释本行
+ console.log("正在启动app...");
+ if (!launchApp("学习强国")) //启动学习强国app
+ {
+ console.error("找不到学习强国App!");
+ return;
+ }
+ while (!desc("学习").exists()) {
+ console.log("正在等待加载出主页");
+ delay(1);
+ }
+ delay(1);
+}
+
+/**
+ * @description: 检测分数并学习
+ * @param: null
+ * @return: null
+ */
+
+function checkedToStudy() {
+ getScores(); //获取积分
+
+ if (myScores['本地频道'] != 1) {
+ localChannel(); //本地频道
+ }
+
if (rTime != 0) {
- listenToRadio();//听电台广播
+ listenToRadio(); //听电台广播
}
- var r_start = new Date().getTime();//广播开始时间
+ var r_start = new Date().getTime(); //广播开始时间
+
if (myScores['订阅'] != 2) {
- sub();//订阅
- }
- while (aCount != 0) {
- var x = 0;
- articleStudy(x);//学习文章,包含点赞、分享和评论
- console.info("等待十秒,然后确认文章是否已满分。");
- delay(10);
- getScores(1);
- x++;
- if (x > 2) {//尝试三次
- console.info("尝试3次未满分,暂时跳过。");
- break;
- }
+ sub(); //订阅
}
- var end = new Date().getTime();//广播结束时间
- var radio_time = (parseInt((end - r_start) / 1000));//广播已经收听的时间
- radio_timing(parseInt((end - r_start) / 1000), rTime - radio_time);//广播剩余需收听时间
- if (rTime != 0) {
- stopRadio();
+
+ if (aCount != 0) {
+ articleStudy(); //学习文章,包含点赞、分享和评论
}
- if (myScores['本地频道'] != 1) {
- localChannel();//本地频道
+
+ if (pTime > 0) {
+ readToPage(); //文章挂时长
}
+
if (vCount != 0) {
- videoStudy_news();//看视频
+ videoStudy_news(); //看视频
}
+ var end = new Date().getTime(); //广播结束时间
+ var radio_time = (parseInt((end - r_start) / 1000)); //广播已经收听的时间
+ radio_timing(parseInt((end - r_start) / 1000), rTime - radio_time); //广播剩余需收听时间
+ if (rTime != 0) {
+ stopRadio();
+ }
+}
+
+//主函数
+function main() {
+ start_app(); //启动app
+ var start = new Date().getTime(); //程序开始时间
+ checkedToStudy();
end = new Date().getTime();
console.log("运行结束,共耗时" + (parseInt(end - start)) / 1000 + "秒");
- files.copy(path, "/sdcard/Download/list.db");
- console.warn("自动备份已学文章列表到/sdcard/Download!!!");
}
-module.exports = main;
+//main();
+module.exports = main;