美高梅4858-美高梅4858mgm-[官方网站]

小爱课程表 新版正方教务系统通用代码

Snipaste_2020-06-10_20-10-18.png
Snipaste_2020-06-10_20-10-18.png

代码

function scheduleHtmlParser(html) {
    //除函数名外都可编辑
    //传入的参数为上一步函数获取到的html
    //可使用正则匹配
    //可使用解析dom匹配,工具内置了$,跟jquery使用方法一样,直接用就可以了,参考:https://juejin.im/post/5ea131f76fb9a03c8122d6b9
    //以下为示例,您可以完全重写或在此基础上更改

    let course = $('#table1 .timetable_con');

    var courseInfos = [];//课程信息
    var sectionsTimes = [];//节次信息,非必须

    for (let i = 0; i < course.length; i++) {
        var _name = $(course[i]).find("p[class=title]").text();//课程名
        var _day_session = $(course[i]).parent().attr("id").split("-");
        var day = _day_session[0];//星期几的课
        var _postion = '',//上课地点
            _teacher = '',//教师
            sectionsTmp = [],//临时储存节次 array
            weeksTmp = [];////临时存储周次  array

        $(course[i]).find("p").each(function (index, item) {
            var _typeName = $(this).children("span").attr("data-original-title");//类别名。节/周、上课地点、教师、教学班名...
            if(_typeName !== undefined) _typeName = _typeName.trim();

            var _text = $(this).text().trim();

            if (_typeName === '节/周') {
                var _length = _text.match(/\((.+?)节\)/);

                //判断是否存在节次
                if (_length === null) {
                    return 0;//不存在就跳出本次循环
                }

                //当前课程节次信息
                sectionsTmp = function () {
                    let num = _length[1].split("-");
                    
                    let tmp = [];
                    for (let i = parseInt(num[0]); i <= parseInt(num[1]); i++) {
                        tmp.push({
                            section: parseInt(i)
                        });
                    }

                    return tmp;
                }();

                //临时存储周次
                weeksTmp = function () {
                    var tmp = [],
                        _week = _text.replace(_length[0], "").split("周")[0],//周次
                        _weekRange = _week.split("-"),
                        _weeekType = -1;//-1:不分单双周,1:单周,0:双周

                    if (_text.indexOf("(单)") !== -1) {
                        _weeekType = 1;
                    } else if (_text.indexOf("(双)") !== -1) {
                        _weeekType = 0;
                    }

                    for (let i = parseInt(_weekRange[0].trim()); i <= parseInt(_weekRange[1]); i++) {
                        if (i % 2 === _weeekType && _weeekType !== -1) tmp.push(i);//特殊单双周压入
                        if (_weeekType === -1) tmp.push(i);//部分单双周压入
                    }

                    return tmp;
                }();
            } else if (_typeName === '上课地点') {
                _position = _text;
            } else if (_typeName === '教师') {
                _teacher = _text;
            }
        });

        courseInfos.push({
            name: _name,//课程名
            position: _position,//位置
            teacher: _teacher,//教师名
            day: day,
            weeks: weeksTmp,//哪几周有课
            sections: sectionsTmp,//哪几节次
        })
    }

    console.info(courseInfos);

    return {
        courseInfos: courseInfos
    }
}

如无特别声明,该文章均为 美高梅4858官方网站NowTime.cc)原创,转载请遵循 署名-非商业性使用 4.0 国际(CC BY-NC 4.0) 协议,即转载请注明文章来源。


标签: 小爱同学, 课程表

赞 (0)

添加新评论

XML 地图 | Sitemap 地图