Generate CQU timetable iCalendar (ics) file
Project description
ICS 课程表文件生成脚本
适用于最新选课站点生成的 xlsx
格式的课表转换为日历软件能认到的 ICS
格式文件.
使用说明
使用 pip 安装依赖:
pip install .
直接运行 (demo)
准备从新选课网站下载的 课表.xlsx
或者 json 文件,放置于任意目录。
配置文件格式如下:
[config]
debug = False
base_dir = /home/ddqi/kb.xlsx
start_date = 20210301
file_name = timetable.ics
配置项 | 类型 | 示例 | 注释 |
---|---|---|---|
debug | boolean | True | 控制是否为调试模式,可选值:True False |
base_dir | str | /home/ddqi/kb.xlsx | 指向课表文件的路径 |
start_date | str | 20210301 | 行课日期 |
file_name | str | timetable.ics | 生成的 ics 文件名(为避免编码问题不要用中文),扩展名请勿更改,文件名不可包含中文 |
将配置文件 config.txt
放置在工作目录下,终端执行:
cqu_timetable_new
将生成指定文件名的 iCalendar 格式文件
tkinter 前端
使用 pip 安装依赖:
pip install .[tk]
之后可运行
cqu_timetable_new-tk
启动 tkinter 前端。
作为库来使用
使用时需要先生成课表数据,再从课表数据中生成日历
-
生成课表数据
- 可通过
loadIO_from_json
或loadIO_from_xlsx
函数从文件或数据流中读取 json 或 xlsx,返回解析出的课表数据 - 也可通过
load_from_json
或load_from_xlsx
函数读取str
或bytes
格式的 json 或 xlsx 数据,返回解析出的课表数据
- 可通过
-
生成日历数据
使用
mkical
函数,第一个参数是上一步得到的课表数据,第二个参数是datetime.date
类型的开学日期,返回icalendar.Calendar
类型的日历数据,可通过其to_ical
得到 ics 文件的内容。
demo 可见于 main.py 中的 main
函数
FAQ
Q: 为什么不带有登录功能?
A: 因为我懒。如果你能做出带有登录功能的脚本请随意 pr 。我只信得过可以下载的自动生成的课表。
(主要还是依赖项少一些)
姊妹项目
cm-http-api (开发中)
LICENSES
AGPLv3
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cqu_timetable_new-0.3.2.8.tar.gz
(29.8 kB
view hashes)
Built Distribution
Close
Hashes for cqu_timetable_new-0.3.2.8.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92524c7bf843ad6fdddad0bc880ed479573554f3b2a9ff2750356eec5690392a |
|
MD5 | 6a0a637c116d13ea806328585f96ca5f |
|
BLAKE2b-256 | 92f66e29f47c9213239b66f96159cfc5ef259a90bfe590627e440b2684389171 |
Close
Hashes for cqu_timetable_new-0.3.2.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56bedfe92b22ce5287741bc5a8d3f8d22a9e9e75916ca851e0f8cbab8121a0f9 |
|
MD5 | 3ff74f035e2cf3af48a39f4baa619e8f |
|
BLAKE2b-256 | 1a7b5d042fb9ef6c360cf606526ec5ad0050182ef6cf7a09b5180b993ae0626a |