├── config.txt ├── list.db ├── tiku.db ├── 更新题库.jpg ├── 更新主程序.jpg ├── res └── logo.png ├── list.db-journal ├── tiku.db-journal ├── upmain.js ├── help.md ├── project.json ├── updated.js ├── README.md ├── tikuCommon.js ├── update.js └── main.js /config.txt: -------------------------------------------------------------------------------- 1 | 12 30 1 7 60 1 2 -------------------------------------------------------------------------------- /list.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LailuoA77/ly-auto-xuexiqiangguo/HEAD/list.db -------------------------------------------------------------------------------- /tiku.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LailuoA77/ly-auto-xuexiqiangguo/HEAD/tiku.db -------------------------------------------------------------------------------- /更新题库.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LailuoA77/ly-auto-xuexiqiangguo/HEAD/更新题库.jpg -------------------------------------------------------------------------------- /更新主程序.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LailuoA77/ly-auto-xuexiqiangguo/HEAD/更新主程序.jpg -------------------------------------------------------------------------------- /res/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LailuoA77/ly-auto-xuexiqiangguo/HEAD/res/logo.png -------------------------------------------------------------------------------- /list.db-journal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LailuoA77/ly-auto-xuexiqiangguo/HEAD/list.db-journal -------------------------------------------------------------------------------- /tiku.db-journal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LailuoA77/ly-auto-xuexiqiangguo/HEAD/tiku.db-journal -------------------------------------------------------------------------------- /upmain.js: -------------------------------------------------------------------------------- 1 | let url = "https://www.lynuo.cn:449/main.js"; 2 | let res = http.get(url); 3 | if(res.statusCode = 200){ 4 | files.writeBytes(files.path("main.js"), res.body.bytes()); 5 | toastLog("更新成功"); 6 | } 7 | exit(); -------------------------------------------------------------------------------- /help.md: -------------------------------------------------------------------------------- 1 | 〇程序需要 悬浮窗 和 无障碍权限(设置→辅助功能→无障碍→本 APP) 2 | 〇程序工作原理为模拟点击,基于Auto.js框架+JavaScript脚本执行 3 | 〇程序不支持每周答题,专项答题,订阅。正常执行完毕42分(可执行前手动答题,答题完毕学习强国请返回主界面;也可执行中手动辅助答题,以手动点击为准) 4 | 〇积分判断执行:读取今日积分确定需执行任务,任务精准,但部分手机可能不支持(积分获取正常推荐使用) 5 | 〇循序依次执行:预置每日积分所需执行任务数,不判断积分,依次执行所有任务(积分获取返回null或报错使用) 6 | ◎请确保进入学习强国时位于 主界面,模拟点击从主界面开始 7 | ◎因存在文章误点击视频,多次重复点击同一文章视频问题,有概率造成循环执行,请手动补学 8 | ◎安卓版本低于安卓7,无法执行收藏评论转发,文章界面模拟滑动" 9 | -------------------------------------------------------------------------------- /project.json: -------------------------------------------------------------------------------- 1 | { 2 | "assets": [], 3 | "build": { 4 | "build_id": "C38FDD86-179", 5 | "build_number": 179, 6 | "build_time": 1620219370773, 7 | "release": false 8 | }, 9 | "encryptLevel": 0, 10 | "useFeatures": [], 11 | "icon": "res/logo.png", 12 | "launchConfig": { 13 | "displaySplash": true, 14 | "hideLogs": false, 15 | "splashText": "Powered by Auto.js Pro", 16 | "stableMode": false 17 | }, 18 | "main": "main.js", 19 | "name": "影自强国", 20 | "optimization": { 21 | "removeOpenCv": false, 22 | "unusedResources": false 23 | }, 24 | "packageName": "lynuo.auto.xxqg", 25 | "scripts": {}, 26 | "versionCode": 2, 27 | "versionName": "ds01" 28 | } -------------------------------------------------------------------------------- /updated.js: -------------------------------------------------------------------------------- 1 | console.show(); 2 | log("检查更新..."); 3 | var r = http.get("https://www.lynuo.cn:449/xxqg-ds.html"); 4 | if(r.statusCode != 200){ 5 | log("更新失败"); exit(); 6 | } 7 | else{ 8 | var update = r.body.string(); 9 | if (update != "ds01") { 10 | alert("检测到有更新 "+update, "检测到新版本,请前往\n https://www.lynuo.cn:449 \n 下载新版本!\n"); 11 | } 12 | else{ 13 | log("已是最新版本"); 14 | } 15 | } 16 | //--------------检查更新软件:来源为萘落小站--------------// 17 | 18 | 19 | /** 20 | */ 21 | function updateTikunet() { 22 | console.show(); 23 | var dbName = "tiku.db"; //文件路径 24 | var path = files.path(dbName); //确保文件存在 25 | var url = "https://www.lynuo.cn:449/tiku.db"; 26 | var res = http.get(url); 27 | 28 | log(path); 29 | if(res.statusCode != 200){ 30 | toast("请求失败");exit(); 31 | } 32 | files.writeBytes(path, res.body.bytes()); 33 | toast("更新成功"); 34 | console.hide(); 35 | } 36 | //updateTikunet(); 37 | exports = updateTikunet(); -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 免责声明: 2 | 3 | 本程序只供个人学习Auto.js使用,不得盈利传播,不得用于违法用途,否则造成的一切后果自负! 4 | 5 | ## 重要、重要、十分重要: 6 | 如果继续使用此应用即代表您同意此协议 7 | 8 | ## 说明: 9 | 1、此应用仅适用于Android7.0以上的版本。 10 | 11 | 2、打开应用后请先点击第一个按钮打开无障碍和悬浮窗权限,如果没有反应则是已经开启。 12 | 13 | 3、随后点击默认执行按钮,程序会自动检测当前分数智能执行 14 | 15 | 4、如果您要使用自定义执行及单个任务执行功能,请先在数据配置页配置数据 16 | 17 | 5、由于题库的题目收录问题,一些答题项目无法做到全部正确,敬请谅解🙂🙂🙂🙂 18 | 19 | 6、更新方法 20 | 21 | ### ![更新主程序](https://secure.wostatic.cn/static%2F91QMZub4NA3AK5ZGdX2XpZ%2F%E6%9B%B4%E6%96%B0%E4%B8%BB%E7%A8%8B%E5%BA%8F.jpg?auth_key=1624008139-b2FHeAc4qm4fLMx4kET2mV-0-d9430f97824cf20b240d1133f6f7ef5c&image_process=resize,w_720) 22 | ### ![更新题库](https://secure.wostatic.cn/static%2Fh9pf7CdsiBKMgXH5QPrH5v%2F%E6%9B%B4%E6%96%B0%E9%A2%98%E5%BA%93.jpg?auth_key=1624008139-tBRrk5ZLXY872QdjkDrUKN-0-a8ca8b8bedc21adff796130b2582babb&image_process=resize,w_720) 23 | 24 | 25 | ## 关于 26 | 本软件基于autojs v7.0框架制作,感谢以下兄弟提供代码,并且是基于他们代码加以修改 27 | 28 | ## 特别鸣谢: 29 | 晴天、翻滚的茄子、AIQiangguo、徐子越、xyz 30 | ## 基于 31 | https://github.com/zhuxuedefeng 32 | https://github.com/Gingmzmzx 33 | 34 | 正常执行可得50+分,具体看情况 35 | 请确保进入学习强国时位于主界面,模拟点击从主界面开始" 36 | -------------------------------------------------------------------------------- /tikuCommon.js: -------------------------------------------------------------------------------- 1 | importClass(android.database.sqlite.SQLiteDatabase); 2 | 3 | function searchTiku(keyw) { 4 | //表名 5 | var tableName = "tiku"; 6 | var ansArray = searchDb(keyw, tableName, ""); 7 | return ansArray; 8 | } 9 | 10 | function searchDb(keyw, _tableName, queryStr) { 11 | var tableName = _tableName; //数据文件名 12 | var dbName = "tiku.db"; //文件路径 13 | var path = files.path(dbName); //确保文件存在 14 | if (!files.exists(path)) { 15 | files.createWithDirs(path); 16 | } 17 | 18 | //创建或打开数据库 19 | var db = SQLiteDatabase.openOrCreateDatabase(path, null); 20 | var query = ""; 21 | if (queryStr == "") { 22 | query = "SELECT question,answer FROM " + tableName + " WHERE question LIKE '" + keyw + "%'";//前缀匹配 23 | } else { 24 | query = queryStr; 25 | } 26 | 27 | log(query); 28 | //query="select * from tiku" 29 | //db.execSQL(query); 30 | 31 | var cursor = db.rawQuery(query, null); 32 | cursor.moveToFirst(); 33 | var ansTiku = []; 34 | if (cursor.getCount() > 0) { 35 | do { 36 | var timuObj={"question" : cursor.getString(0),"answer":cursor.getString(1)}; 37 | ansTiku.push(timuObj); 38 | } while (cursor.moveToNext()); 39 | } else { 40 | log("题库中未找到: " + keyw); 41 | } 42 | cursor.close(); 43 | return ansTiku; 44 | 45 | } 46 | 47 | function executeSQL(sqlstr) { //数据文件名 48 | var dbName = "tiku.db"; //文件路径 49 | var path = files.path(dbName); //确保文件存在 50 | if (!files.exists(path)) { 51 | files.createWithDirs(path); 52 | } 53 | //创建或打开数据库 54 | var db = SQLiteDatabase.openOrCreateDatabase(path, null); 55 | db.execSQL(sqlstr); 56 | toastLog(sqlstr); 57 | db.close(); 58 | } 59 | 60 | 61 | function indexFromChar(str) { 62 | return str.charCodeAt(0) - "A".charCodeAt(0); 63 | } 64 | 65 | function searchNet(keyw) { 66 | var tableName = "tikuNet"; 67 | var ansArray = searchDb(keyw, tableName, ""); 68 | return ansArray; 69 | } 70 | 71 | exports.searchTiku = searchTiku; 72 | exports.searchNet = searchNet; 73 | exports.searchDb = searchDb; 74 | exports.indexFromChar = indexFromChar; 75 | exports.executeSQL = executeSQL; 76 | -------------------------------------------------------------------------------- /update.js: -------------------------------------------------------------------------------- 1 | console.show(); 2 | log("检查更新..."); 3 | var r = http.get("https://www.lynuo.cn:449/xxqg-ds.html"); 4 | if(r.statusCode != 200){ 5 | log("更新失败"); 6 | } 7 | else{ 8 | var update = r.body.string(); 9 | if (update != "ds01") { 10 | alert("检测到有更新 "+update, "检测到新版本,请前往\n https://www.lynuo.cn:449 \n 下载新版本!\n"); 11 | } 12 | else{ 13 | log("已是最新版本"); 14 | } 15 | } 16 | //--------------检查更新软件:来源为萘落小站--------------// 17 | 18 | //---题库更新---// 19 | importClass(android.database.sqlite.SQLiteDatabase); 20 | /** 21 | * @description: 更新数据库tikuNet表 22 | * @param {} liArray li列表,包含题目和答案 23 | */ 24 | 25 | function CreateAndInsert(liArray){ 26 | var dbName = "tiku.db"; //文件路径 27 | var path = files.path(dbName); //确保文件存在 28 | //创建或打开数据库 29 | var db = SQLiteDatabase.openOrCreateDatabase(path, null); 30 | var createTable = "\ 31 | CREATE TABLE IF NOT EXISTS tikuNet(\ 32 | question CHAR(253),\ 33 | answer CHAR(100)\ 34 | );"; 35 | var cleanTable = "DELETE FROM tikuNet"; 36 | db.execSQL(createTable); 37 | db.execSQL(cleanTable); 38 | log("创建打开清空表tikuNet!"); 39 | 40 | var sql = "INSERT INTO tikuNet (question, answer) VALUES (?, ?)"; 41 | db.beginTransaction(); 42 | var stmt = db.compileStatement(sql); 43 | for (var li = 0, len = liArray.length; li < len; li++) { 44 | //log("题目:"+li.text()); 45 | var tiMu = liArray[li].content; 46 | var daAn = liArray[li].answer; 47 | log(util.format("题目:%s\n答案:%s"),tiMu,daAn); 48 | stmt.bindString(1, tiMu); 49 | stmt.bindString(2, daAn); 50 | stmt.executeInsert(); 51 | stmt.clearBindings(); 52 | } 53 | db.setTransactionSuccessful(); 54 | db.endTransaction(); 55 | db.close(); 56 | return true; 57 | } 58 | 59 | 60 | /** 61 | */ 62 | function updateTikunet() { 63 | log("检测题库是否存在") 64 | var dbName = "tiku.db"; //文件路径 65 | var path = files.path(dbName); //确保文件存在 66 | if (!files.exists(path)) { 67 | alert("题库文件不存在,将创建题库"); 68 | files.createWithDirs(path); 69 | files.write("./if.txt", "0"); 70 | } 71 | log("开始更新题库,请先不要进行操作!!!"); 72 | log("开始下载题库json数据..."); 73 | var htmlArray = http.get("https://www.lynuo.cn:449/questions.json"); 74 | var liArray = htmlArray.body.json(); 75 | log(util.format("题库下载完毕,题目总数:%s"), liArray.length); 76 | var iff = files.read("./if.txt"); 77 | if (iff != liArray.length){ 78 | files.write("./if.txt", liArray.length); 79 | //执行更新 80 | log("开始更新数据库..."); 81 | if (CreateAndInsert(liArray)) { 82 | log("数据库更新完毕!"); 83 | sleep(3000); 84 | console.hide(); 85 | return liArray.length; 86 | } else { 87 | log("更新失败"); 88 | sleep(3000); 89 | return -1; 90 | } 91 | }else{ 92 | log("题目数量相同,无需更新"); 93 | sleep(3000); 94 | console.hide(); 95 | return 0; 96 | } 97 | } 98 | //updateTikunet(); 99 | exports = updateTikunet(); -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | "ui"; 2 | 3 | importClass(android.view.View); //db操作 4 | importClass(android.database.sqlite.SQLiteDatabase); //检查题库 5 | 6 | var tikuCommon = require("./tikuCommon.js"); 7 | 8 | var dw = device.width; 9 | var dh = device.height; 10 | var margin = parseInt(dw * 0.02); 11 | 12 | //开屏提示 萘落修改 13 | //var readme = files.read("./README.md"); 14 | //if (!files.exists(files.path("list.db-journal"))) { 15 | // alert("必读说明", readme); 16 | //} 17 | //启动后自动更新 18 | //var r = http.get("https://www.lynuo.cn:449/xxqg-ds.html"); 19 | //if(r.statusCode = 200) { 20 | // var update = r.body.string(); 21 | // if (update != "ds01") engines.execScriptFile("upmain.js"); 22 | //} 23 | 24 | //载入配置 萘落修改于2021-6-15; 25 | var confi = files.read("./config.txt"); 26 | var conf = confi.split(" "); 27 | 28 | lCount+" "+qCount+" "+zCount; 29 | var aCount = conf[0];//文章默认学习篇数 30 | var vCount = conf[3];//小视频默认学习个数 31 | var cCount = 2;//收藏+分享+评论次数 32 | 33 | var aTime = conf[1];//每篇文章学习-30秒 30*12≈360秒=6分钟 34 | var vTime = conf[4];//每个小视频学习60秒 35 | var rTime = 360;//音视频时长-6分钟 36 | 37 | // var dyNum = 2;//订阅 2 38 | var commentText = ["支持党,支持国家!", "为实现中华民族伟大复兴而不懈奋斗!", "不忘初心,牢记使命", "为实现中华民族伟大复兴而不懈奋斗!"];//评论内容,可自行修改,大于5个字便计分 39 | var num = random(0, commentText.length - 1) ;//随机数 40 | 41 | var aCat = ["推荐","要闻","综合","新思想"]; 42 | var aCatlog = aCat[num] ;//文章学习类别,随机取"推荐""要闻"、"新思想" 43 | var aZX = conf[2];//文章执行1或2脚本 44 | var date_string = getTodayDateString();//获取当天日期字符串 45 | var vCat = ["第一频道", "学习视频", "联播频道"]; 46 | var vCatlog = vCat[num] ;//视频学习类别,随机取 "第一频道"、"学习视频"、"联播频道" 47 | if (num == 0){ 48 | var s = "央视网"; 49 | }else if (num == 1){ 50 | var s = "央视新闻"; 51 | }else { 52 | var s = "中央广播电视总台"; 53 | } 54 | var lCount = conf[5];//挑战答题轮数 55 | var qCount = random(9, 12);//挑战答题每轮答题数(5~7随机) 56 | var zCount = conf[6];//四人赛轮数 57 | var zsyzd =1;//争上游和双人对战是否自动做,1,2 默认自动1 58 | var color = "#006688"; //不要删除,否则无法运行 59 | var oldaquestion;//争上游和对战答题循环,定义旧题目对比新题目用20201022 60 | var zxzd =1;//每周和专项是否自动做,1,2 默认自动1 61 | var myScores = {};//分数 62 | //特殊题,特点:题目一样,答案不同 63 | var ZiXingTi = "选择词语的正确词形。";//字形题 64 | var DuYinTi = "选择正确的读音。";//读音题 20201211 65 | var ErShiSiShi ="下列不属于二十四史的是。";//二十四史 66 | var customize_flag = false;//自定义运行标志 67 | //初始化题库,数据库 68 | var db = SQLiteDatabase.openOrCreateDatabase(files.path("tiku.db"),null); 69 | // // db.beginTransaction();//数据库开始事务s 70 | // var sql = "SELECT * FROM tikuNet;"; 71 | // var cursor = db.rawQuery(sql, null); 72 | // if (cursor.moveToFirst()) { 73 | // var answer = cursor.getString(0); 74 | // cursor.close(); 75 | // toastLog("题库初始化完成"); 76 | // } 77 | // db.endTransaction();//数据结束事务 78 | /* 79 | <---------------UI部分开始---------------> 80 | lynuo更新 81 | */ 82 | ui.layout( 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 |