Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rewired-gh/hitsz_course_schedule_ics_converter
将哈工大(深圳)教务平台的课表转换为 ICS 文件
https://github.com/rewired-gh/hitsz_course_schedule_ics_converter
calendar course hitsz ics jupyter-notebook python schedule
Last synced: 3 months ago
JSON representation
将哈工大(深圳)教务平台的课表转换为 ICS 文件
- Host: GitHub
- URL: https://github.com/rewired-gh/hitsz_course_schedule_ics_converter
- Owner: rewired-gh
- License: gpl-3.0
- Created: 2024-03-24T13:03:00.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-05-22T08:35:27.000Z (6 months ago)
- Last Synced: 2024-05-22T09:27:15.770Z (6 months ago)
- Topics: calendar, course, hitsz, ics, jupyter-notebook, python, schedule
- Language: Jupyter Notebook
- Homepage:
- Size: 112 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 哈工大(深圳)ICS 课表生成
> 本项目无任何质量保障与技术支持,请您确保自己能读懂本项目的源码,方可使用。
## 功能介绍
- 支持使用用户名与密码便捷登录,并自动获取所有课表生成需要的信息。
- 支持自动推断学期开始日期。
- 支持手动填写部分参数,当自动获取失败时仍可生成。
- 支持考试日程。
- 无隐私泄露顾虑,且源代码开放易读。## 前置条件
- Python 3
- Poetry:## 初始化项目
1. 执行 `poetry install`。
2. 将 Jupyter Notebook 的内核指定为 Poetry 环境。## 配置
请修改 `exp.ipynb` 笔记本,并选择下面任意一种方法,设置参数:
### 方法 A:自动推断
- `SHOULD_INFER_SEMESTER`:是否将学期自动设置为当前学期,请设置成 `True`。
#### (推荐)方法 A1:用户名和密码
- `USERNAME`:统一身份认证用户名(学号)。
- `PASSWORD`:统一身份认证密码。#### 方法 A2:Cookie
- `COOKIE`:访问 `http://jw.hitsz.edu.cn` 时使用的 cookie 字段,获取方法此处不作教学。
### 方法 B:手动指定
自己使用浏览器抓包,将对于路径 `http://jw.hitsz.edu.cn/xszykb/queryxszykbzong` 的请求进行捕获或回放,然后把得到的 JSON 文件放在 `./general_schedule.json`。
- `REQUEST_DATA`:指定学年和学期,请仿照 `REQUEST_DATA_EXAMPLE` 进行设置。
- `START_DATE`:该学期开始日期。
- `SHOULD_INFER_SEMESTER`:请设置成 `False`。
- `CALENDAR_NAME`:ICS 文件名。
- `ALARMS`:日程提醒,如不需要提醒可设置为空列表。## 运行
打开 Jupyter Notebook `exp.ipynb`,然后运行所有 cells,最终会在项目目录下生成一个 ICS 文件。关于 Jupyter Notebook 的使用方法此处不作教学。