曾神在群里分享了一个开源项目 《JMU-json2ics》 。可以用我们学校的课表生成 ics日历 文件。
这个小项目引发了我的兴趣,遂决定阅读一遍源码,顺便复习下python语法。
课程信息主要保存在 ”adminclass“ 条录下
{ "studentTableVm": { "id": 22471, "name": "陈煜晗", //学生姓名 "code": "2020*****104",//学生学号 "grade": "2020", //年级 "department": "计算机工程学院", //学院 "major": "计算机科学与技术", //专业 "adminclass": "计算2014",//班级 "credits": 25.75, //学分 "totalRetakeCredits": 0, //已确认学分 "activities": [...], //!!!课程列表!!!。 "lessonSearchVms": [...],//下列不表。 "practiceLessonSearchVms": [...], "arrangedLessonSearchVms":[...], "timeTableLayout": {"id": 1...}, "courseTablePrintConfigs": [...], "lessonNamePrint": false } }
以列表形式保存课程信息。
对于每一个课程,以字典形式保存基本信息
{ "lessonId": 62937, //课程代号? "lessonCode": "D000607-0006",//课程编号 "lessonName": "21-22-01大学英语三级综合06", //课程班名称 "courseCode": "D000607", "courseName": "大学英语 (3)", //课程名称 "weeksStr": "5~13(单)", //上课周次描述信息 "weekIndexes": [5, 7, 9, 11, 13],//上课周次 "room": "汉水0306",//教室 "building": "庄汉水楼",//教学楼 "campus": "主校区",//教学校区 "weekday": 1,//周几上课 "startUnit": 7,//第几节课开始 "endUnit": 8,//第几节课结束 "lessonRemark": null,//重修 "teachers": ["林瑞芳"],//授课教师 "courseType": null,//课程类型 默认? "credits": 2.5,//学分 "periodInfo": {"total": 40...},//进阶信息,下表。 "stdCount": 66,//学生人数 "limitCount": 80,//限制人数 "tableShowAdminclass": [...], "adminclassVms": [...], "activityRoomTypeSign": null, "activityRoomTimesOrUnits": null, "taskPeopleNum": null },
”periodInfo“ 是课程的进阶信息。 这里没有用到,仅作猜测,不保证正确性。
"periodInfo": { "total": 40, "weeks": 16, "theory": 40,//课时 "theoryUnit": "HOUR",//课时单位 "requireTheory": 40,//要求课时 "practice": null, //实践课时 "practiceUnit": null,//实践课时单位 "requirePractice": null,//需要实践课时 "focusPractice": null,//需要实践课时单位 "focusPracticeUnit": null, "dispersedPractice": null, "test": null,//小测 "testUnit": null,//小测单位 "requireTest": null,//要求小测 "experiment": null,//实验课时 "experimentUnit": null,//实验课时单位 "requireExperiment": null,//要求实验课时 "machine": null,//机器 "machineUnit": null,//机器单位 "requireMachine": null,//需要机器单位 (上机?) "design": null,//课程设计课时 "designUnit": null,//课程设计课时单位 "requireDesign": null,//要求课程设计课时 "periodsPerWeek": 0, //每周周期 "extra": null,//额外课时 "extraUnit": null,//额外课时单位 "requireExtra": null//要求额外课时 },
待更。