目录
注:由于官方目前仍未解决X-Request-Width问题,暂时无法进行E2E测试,源码可供学习参考。
官方开发文档
开发思路
参考官方文档,AISchedule工具为我们提供了provider和parser函数,其中provider函数用于提取课程表整个HTML页面,parser函数用于解析提取出的HTML页面,将其中包含的信息按照官方提供的JSON格式封装返回即可。
provider.js
对于provider函数中要编写的内容,我们只需要使用F12工具定位课程表元素,填入id即可。
parser.js
官方内置了cheerio环境,并非jQuery,但两者语法相似,可参考Cheerio官方文档翻译 (juejin.cn)学习使用。
通过对上一步中提取出的HTML元素遍历,提取出课程名程、课程时间、教室等相关信息。由于课表中包含了单双周的情况导致课程时间不同,此处作以处理,数据封装等完整代码详见源码部分。
for (let i = 0; i < weeksData.length; i++) {
let temp = weeksData[i];
let str = temp.replace('单', '').replace('双', '').split('-');
let addition = 1;
if (temp.indexOf('单') != -1 || temp.indexOf('双') != -1) {
addition = 2;
} else if (temp.length == 1) {
week.push(parseInt(temp));
}
let begin = parseInt(str[0]);
let end = parseInt(str[1]);
for (; begin <= end;) {
week.push(begin);
begin += addition;
}
}
最终在浏览器课表页面右键运行函数,出现以下结果则表示开发完成。
provider提取页面完成
parser解析完成
控制台输出如表示测试通过
至此开发工作完成,上传代码进行E2E测试无误后,通过审核即可使用。