LearnWebSyn是一套针对清华大学网络学堂用户的Python脚本。可以读取学堂内相关信息设置提醒,并可根据设置将课程文件同步到电脑本地。支持增量同步,在本地输出的文件可保持网络学堂原有的目录结构。脚本内的网络请求全部采用https安全连接,避免了在Tsinghua等公开无线网络使用时密码被截获的问题。
清华大学已全面启用网络学堂2018版本,原有接口失效。暂无计划继续适配。
在电脑端使用网络学堂时,文件零散下载的精力花费一般较大。如果有归档整理的习惯,往往需要频繁选择目标文件夹,确认此文件是否被下载过,是否被更新。如果没有归档整理的习惯,则学堂的文件往往散布电脑的各个文件夹,且在需要时一般找不到文件的存放地点,经常需要重复下载。
这个脚本的初衷即是为了解决这个问题,将文件的检查、下载、归档自动化完成,只需要在需要令文件保持最新时双击同步快捷方式,十几秒后,你的文件夹中就已经获得了全部课程的最新文件。
v1.3
修复 遇到新版学堂的课程导致崩溃的问题
新增 可以识别并跳过新版学堂,但暂时未添加支持
v1.2
新增 添加代码内自动下载依赖库的功能
新增 网络状况较差时输出提示信息
新增 登陆成功输出问候语
v1.1
新增 将运行平台从macOS转换到Windows中文版(gbk系统编码)
v1.0
新增 读取课程列表
新增 下载课程文件
新增 本地目录化同步
新增 自动跳过大文件的功能
- 新版学堂尚不支持,目前会自动跳过相应课程
- 网络请求次数较多(每个文件一次http响应头请求)
- 密码明文保存在脚本目录下,有一定泄漏风险
- 脚本设置参数暂时被集中在脚本头部,不利于封装
- 采用了内置库函数读取密码,输入时没有*或·的提示,对用户不友好。
- 增加对新版学堂的支持 (important)
- 增加并行处理的支持,可大幅优化同步速度
- 采取一些措施保存密码,以免密码可被轻易读取
- 增加单文件多平台自动适配
- 增加密码指示符(*或·等)
- 增加独立的配置文件或者配置交互逻辑,修改配置可不修改源码
- 增加公告和未交作业的读取
- 未交作业的DDL自动添加到Exchange日历(或每日发送Summery到指定邮箱),需要服务器端程序
Title | Digest | Comments |
---|---|---|
lib/lib/requests-2.18.4 | Library Dependencies | requests-2.18.4 |
SyncNow.cmd | Launch Sync, also use as console output. | fix some problem with some path that includes space |
lw.py | Script entrance file | |
sysass.py | Some tools specially in Windows | |
…… |