小爱课表一键导入图文教程

前言

 因为觉得市面上的大多数课表管理软件体验不佳(广告多,臃肿,界面不美观,功能单一)在经过无数的选择后,发现小爱课程表符合预期(轻便,美观,无广告,提醒功能实用)但是这玩意并没有适配我皇家大理工【滑稽】于是只好自己开发脚本适配,方便大家使用bug反馈:QQ:2922265540

直接上结果图。。。

使用教程

软件名称:小爱课程表(小米官方出品)脚本已经通过小米官方审核,大家可放心使用以下步骤并不一定严格遵守,我会精确到每一步操作教程是为了帮助多次失败的同学【滑稽】

大致操作流程











































修改早中晚的节数









选择学校并登录









进入课表界面并导入









大功告成







详细图文教程

1同意相关条款

2.直接进入个人中心设置

3.设置课程节数

4.选择学校(懂的都懂,别选AI)

5.登录教务网站


相关代码(可进行定制开发【滑稽】)

function scheduleHtmlProvider(iframeContent = "", frameContent = "", dom = document) {if (dom.querySelector('#tb > button.btn.btn-default.btn-primary').textContent.trim() === '列表') {return '<div id="type">list</div>' + dom.querySelector('#kblist_table').outerHTML} else {return '<div id="type">table</div>' + dom.querySelector('#kbgrid_table_0').outerHTML}
}
function getSections(strarr) {var sections = [];for (var i = 0; i < strarr.length; i++) {var str2 = strarr[i].split('-')for (var j = parseInt(str2[0]); j <= parseInt(str2[1]); j++) {sections.push({section:j })}}return sections
}function getTime(str) {let reg = new RegExp(/\d?\d-\d?\d/g);let regResult = reg[Symbol.match](str)let weeks = getWeeks(regResult.pop())console.log([weeks, getSections(regResult)])return ([weeks, getSections(regResult)])
}function getWeeks(str) {var weeks = [];var str2 = str.split('-')for (var i = parseInt(str2[0]); i <= parseInt(str2[1]); i++) {weeks.push(i)}return weeks
}// 解析列表模式
// function parseList(html) {
//     let result = []
//     const $ = cheerio.load(html, {decodeEntities: false});
//     $('#kblist_table').find('tbody').each(function (weekday) {
//         if (weekday > 0) {
//             $(this).find('tr').each(function (index) {
//                 if (index > 0) {
//                     let course = {}
//                     $(this).find('td').each(function (i) {
//                         if (i == 0) {
//                             course.sections = getSections($(this).text())
//                         } else {
//                             course.name = $(this).find('.title').text()
//                             let info = []
//                             $(this).find('p font').each(function () {
//                                 let text = $(this).text().trim()
//                                 if (text.search('上课地点') != -1) {
//                                     text = text.replace('上课地点:', '')
//                                 }
//                                 info.push(text.split(':')[1])
//                             })
//                             let reg = new RegExp('周', 'g')
//                             let weekStr = info[0].replace(reg, '')
//                             course.weeks = getWeeks(weekStr)
//                             course.teacher = info[2]
//                             course.position = info[1]
//                             course.day = weekday
//                         }
//                     })
//                     result.push(course)
//                 }
//             })
//         }
//     })
//     console.log(result)
//     return result
// }// 解析表格模式
function parseTable(html) {const $ = cheerio.load(html, {decodeEntities: false});let result = []$('#kbgrid_table_0').find('td').each(function () {if ($(this).hasClass('td_wrap') && $(this).text().trim() !== '') {let info = []let weekday = parseInt($(this).attr('id').split('-')[0])$(this).find('font').each(function () {let text = $(this).text().trim()if (text !== '') {info.push(text)}})console.log(info)let hasNext = truelet index = 0while (hasNext) {let course = {}course.name = info[index].slice(0,-1)course.teacher = info[index + 3]course.position = info[index + 2].replace('申江校区(军工路1100) ', '')course.day = weekdaylet [weeks, sections] = getTime(info[index + 1])course.weeks = weekscourse.sections = sectionsresult.push(course)if (info[index + 5] !== undefined) {index += 5} else {hasNext = false}}}})return result
}function scheduleHtmlParser(html) {let result = []let finall = {}if ($('#type').text() === 'list') {result = parseList(html)} else {result = parseTable(html)}finall["courseInfos"] = resultfinall["sectionTimes"] = [{"section": 1,"startTime": "08:00","endTime": "08:45"},{"section": 2,"startTime": "08:50","endTime": "09:35"},{"section": 3,"startTime": "09:55","endTime": "10:40"},{"section": 4,"startTime": "10:45","endTime": "11:30"},{"section": 5,"startTime": "11:35","endTime": "12:20"},{"section": 6,"startTime": "13:15","endTime": "14:00"},{"section": 7,"startTime": "14:05","endTime": "14:50"},{"section": 8,"startTime": "15:05","endTime": "15:50"},{"section": 9,"startTime": "15:55","endTime": "16:40"},{"section": 10,"startTime": "18:00","endTime": "18:45"},{"section": 11,"startTime": "18:50","endTime": "19:35"},{"section": 12,"startTime": "19:40","endTime": "20:25"}]console.log(finall)return finall
}

小爱课表一键导入教程相关推荐

  1. 使用候鸟浏览器代替Editthiscookie、Cookie Editor插件实现CK号一键导入导出登录

    做亚马逊测评和facebooke项目的朋友应该都听说过CK号,那么什么是CK呢? Cookie号,也叫CK号,也是老白号的一种,cookie号的好处就是可以直接导入cookie实现免密登陆.相对于普通 ...

  2. code block怎样导入整个文件夹_手机资讯:【爱思助手6.0】视频导入教程

    如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多知识的,这些知识很多小伙伴一般都是不知道的,就好比最近就有很多小伙伴们想要知道[爱思助手]视频导入教程,那么既然现在大家对于[爱 ...

  3. 我的世界java材质包转基岩_Minecraft我的世界基岩版材质包导入教程

    Minecraft我的世界基岩版材质包导入教程!大家好这里是千羽,今天为大家带来Minecraft基岩版材质包的导入方法,包括Win10版以及安卓版的材质包导入教程视频,不知道材质包怎么导入的同学可参 ...

  4. 爱思助手安卓能用吗_手机资讯:【爱思助手6.0】音乐铃声导入教程

    如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多知识的,这些知识很多小伙伴一般都是不知道的,就好比最近就有很多小伙伴们想要知道[爱思助手]音乐铃声导入教程,那么既然现在大家对于 ...

  5. 开源导入导出库Magicodes.IE 多sheet导入教程

    多Sheet导入教程说明 本教程主要说明如何使用Magicodes.IE.Excel完成多个Sheet数据的Excel导入. 要点 多个相同格式的Sheet数据导入 多个不同格式的Sheet数据导入 ...

  6. kax格式怎么导入不了pr_pr如何导入.mogrt文件 pr模板导入教程

    Mogrt 文件是什么,Mogrt格式的模板文件,又称之为Pr动态图形模板,是一种新型的模板格式..mogrt文件如何使用,pr如何导入.mogrt文件呢?Macw小编为大家带来了pr模板导入教程,一 ...

  7. 苹果手机怎么编辑word文档_可以一键导入word图文的微信编辑软件有什么?编辑器怎么使用?...

    工作效率的提高除了因为熟练之外,还因为各种工具的辅助.自古以来都有工欲善其事必先利其器的教诲,好的工具能让我们工作时事半功倍.今天我们来聊聊什么工具可以提高公众号运营效率?什么微信编辑器可以讲word ...

  8. win10英文系统一键装机教程

    当使用的win10系统出现卡顿,经常蓝屏等情况的时候,我们可以考虑给电脑重装win10系统了.有网友想了解如何安装win10英文版系统,我们可以借助工具一键重装win10系统,下面小编就教下大家win ...

  9. IDEA的常用配置一键导入及优化内存

    IDEA的常用配置一键导入 一.在https://www.cnblogs.com/zyx110/p/10799387.html中下载如图的压缩包 下载完成后解压缩,点击settings_bak,你会看 ...

最新文章

  1. 【Infragistics教程】在javascript类中添加静态成员属性
  2. centos 6.x 升级内核
  3. 天气小工具新增风格-默认无背景,感谢欧阳兄制作
  4. ffmpeg在windows下的编译
  5. Java进阶day03继承
  6. java策略文件_[讨论]java类文件保护策略
  7. 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
  8. C++监控注册表信息
  9. Java 网络编程(三) 创建和使用URL访问网络上的资源
  10. 拓端tecdat|R语言中的copula GARCH模型拟合时间序列并模拟分析
  11. java response 输出word_java导出数据到word(一)
  12. 日期抽象数据类型设计与实现作业总结
  13. 物联网项目开发实战案例
  14. 飞腾桌面腾锐D2000 核心板
  15. 瑞吉外卖项目实践(个人精简升级版)
  16. cpu、内存、磁盘关系
  17. vue3 ts import时报错An import path cannot end with a ‘.ts‘ extension
  18. 基于java的保险业务管理系统的设计与实现
  19. matlab实现动态规划算法
  20. ZYNQ7000 SDK开发使用

热门文章

  1. IDEA运行JavaWeb服务器图片无法加载
  2. windows找不到文件卸载程序,请确认文件名是否正确,再试一次
  3. Nacos心跳检测原理
  4. Fedora 14下的yum源
  5. BugKu CTF(Crypto篇)---where is flag 5
  6. 计算机毕业设计ssm力高灯饰线上交易平台4d59n系统+程序+源码+lw+远程部署
  7. python代码变成手机软件_三款可以在安卓手机上运行Python代码的软件
  8. 招商银行周天虹:AI时代的分布式数据库是什么样的?
  9. mysql 连接字符串 c#_C#版mysql连接字符串
  10. python画企鹅_python如何绘制降水图