今天学校公布了我们下学期的课程表。唉,没想到大三的课程表居然比大二还多!好吧,我也只能乖乖地把课程表整理下,一起导入到日历里。
其实 App Store 里课程表的应用并不少,各个学校也可能有自己的教务系统爬下来做出来的课程助手,所以管理课程这件事并不是难事。但是谁叫我生来(才怪)就是不喜欢这样一些乱七八糟功能堆积的 App,反而享受做出符合自己需求的玩意儿。所以别企图用 XX 课程助手这样的应用来搞定我。
将课程表导入到日历管理的好处十分明显:
- 统一管理。将课程和其他安排统一管理,方便安排和查看
- 节省空间。在 Widget 里只需要留一个日历插件,就能一目了然
- 足够装X。嗯……是的。
于是我写了一个将课程导入日历的 Python 脚本,这个脚本是我一年前写的,一直想分享但是一直找不到点拿出来分享,今天心情好(才怪),觉得是时候分享了~下面是使用说明。
脚本概要
【Demo下载】
程序总共由两个脚本完成,最后将 ICS 导入日历即可。步骤概要:
- 1、使用 excelReader.py 将保存的 classInfo Excel 表格导出容易解析的 conf_classInfo.json
- 2、使用 main.py 将配置好的 conf_classTime.json 和生成的 conf_classInfo.json 生成一个 class.ics
- 3、将 class.ics 导入手机或者电脑
- 4、搞定!
环境要求
Python 2.7+
执行详解
1、配置 classInfo Excel 表格
在工作目录下创建一个 classInfo Excel 表格,表格表头有如下参数:
className:课程名称
startWeek:起始周
endWeek:结束周
weekday:星期
classTime:第几节。这个参数要配合 conf_classTime.json 文件,下文会讲。
classroom:教室
2、配置 conf_classTime.json
来吧,照猫画虎:
{
"classTime": [
{
"name":"第 1、2 节",
"startTime":"0830",
"endTime":"1005"
},
{
"name":"第 3、4 节",
"startTime":"1025",
"endTime":"1200"
},
{
"name":"第 5、6、7 节",
"startTime":"1350",
"endTime":"1615"
},
{
"name":"第 8、9 节",
"startTime":"1630",
"endTime":"1800"
},
{
"name":"第 10、11、12 节",
"startTime":"1830",
"endTime":"2100"
}
]
}
3、运行 excelReader.py 脚本
终端运行:
python excelReader.py
如果 classInfo 表格是按照 Demo 的样式保存的,输入 0 继续即可。如果不是……你改回来就可以。(一个小脚本而已,懒得做那么多容错啦~)
完成后生成一个 conf_classInfo.json 配置文件
4、运行 main.py 脚本
终端运行:
python main.py
回车后,需要输入两个参数:第一周的星期一日期、提醒时间。
提醒时间就是在 iOS、Mac 上创建日历时所使用的设置,不知道这样的设置在 Android 和 Windows 是否生效。待测。
完成后在工作目录下会生成一个 class.ics 文件
5、导入手机或者电脑
如果你是 Mac + iOS, 恭喜你,直接点开 class.ics 就可以导入 Mac, 然后等待 iCloud 同步就可以。
如果想单独导入 iOS,可以用邮件将 ics 发送到你的 iOS 可以收到的邮箱里,在邮箱内打开就可以。
Android 和 Windows 的导入方法我没试过,不过我觉得应该和 iOS、Mac 差不多的。
写在最后
复习,准备考试。各位大学狗,渣油。